| 목차 >> 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 |