목차 >> Core +- Glue Service +- GlueContext +- GlueActivity ----+- Activity Property ----+- Activity 분기 : <transition> ----+- Reuse Activity |
GlueActivity 는 추상 Class로써, 모든 Activity가 상속해야 할 Class입니다 (GlueAPI 참고).
Activity는 다음과 같이 정의 할 수 있습니다. <activity>는 name 속성과 class 속성 갖습니다.
class 속성에 해당하는 것은 GlueActivity를 상속받은 클래스여야 합니다.
<activity name="HelloActivity" class="sample.activity.HelloActivity"> <transition name="success" value="end"/> </activity>
//GlueActivity를 extends 한다. public class HelloActivity extends GlueActivity<GlueContext> { //Member 변수를 선언하지 않는다. //runActivity에 business logic를 구현한다. public String runActivity( GlueContext ctx ) { . . . 중략 : Biz Logic . . . // service.xml 에 지정된 transition name return GlueBizControlConstants.SUCCESS; } }
<activity>는 name 속성과 class 속성 외에 <property>와 <transition>을 갖을 수 있습니다.
Activity의 정의에는 transition 외에 property를 포함할 수 있으며, 다음과 같은 Field와 Method를 사용할 수 있습니다 (GlueAPI 참고).
Map<String,String> dynamicProperties : Glue Service에 정의되지 않는 property입니다.
String getProperty(String key) : 아래 예제 참고
Set<String> getPropertyNames()
<activity name="HelloActivity" class="sample.activity.CustomActivity"> <property name="city" value="Seoul"/> <property name="flower" value="choice"/> <transition name="success" value="end"/> </activity>
public class CustomActivity extends GlueActivity<GlueContext> { @Override public String runActivity( GlueContext ctx ) { String city = this.getProperty( "city" ); System.out.println( "city : " + city ); Object flower = ctx.get( this.getProperty( "flower" ) ); System.out.println( "flower : " + flower ); return GlueBizControlConstants.SUCCESS; } }
다음 Activity가 없을 경우 <transition>의 value 속성 값은 "end" 라는 예약어를 사용합니다. 그외의 값은 다음 Activity의 name 속성 값 입니다.
다음은 <transition>이 여러개인 분기 Activity의 예입니다.
<activity name="CustomRouter" class="sample.activity.CustomRouter"> <transition name="add" value="Add"/> <transition name="update" value="Update"/> <transition name="remove" value="Remove"/> <transition name="send" value="Send"/> <transition name="success" value="end"/> </activity> <activity name="Add" class= . . . /> <activity name="Update" class= . . . /> <activity name="Remove" class= . . . /> <activity name="Send" class= . . . />
public class CustomActivity extends GlueActivity<GlueContext> { @Override public String runActivity( GlueContext ctx ) { Object choice = ctx.get( "choice" ); // choice's value에 따른 분기 if( "C".equals( choice's value ) ) { return "add"; }else if( "U".equals( choice's value ) ){ return "update"; }else if( "D".equals( choice's value ) ){ return "remove"; }else if( "S".equals( choice's value ) ){ return "send"; } return GlueBizControlConstants.SUCCESS; } }
Activity를 재사용할 수 있도록 제공하고 있으며, 제공되는 Reuse Activity는 GlueAPI 에서 확인할 수 있습니다.
Reuse Activity는 향후 추가 삭제 될 수 있으며 각 Site에서 별도의 Reuse Activity를 만들어 사용할 수도 있습니다. 제공되는 Reuse Activity의 사용법은 GlueAPI를 참고하십시요.
그림 : Reuse Activity list |
Prev | Home | Next |