Class GlueMessageParse

java.lang.Object
com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
com.poscoict.glueframework.biz.activity.GlueMessageParse

public class GlueMessageParse extends GlueActivity<GlueContext>
MessageParse Activity. GlueMessageParse Activity는 TC(String) 또는 File에 담긴 TC(String) 를 Layout으로 Parse하여 GlueMessage Instance를 생성하는 기능을 수행한다.
byte parsing 시 Encoding 우선순위는 다음과 같다.
1. charset-name property
2. charset property
3. jvm default
 Activity Property

 - layout : (필수) applicationContext.xml의 GlueLayoutManager bean id.

 - message-id : (선택) msg key. layout/{message-id}-msg.xml 참고 근거.
      [ default ] ctx.get("ReceiveTC")의 값에서 추출함.
      String s = (String)ctx.get("ReceiveTC");
      String msg_id = s.substring(0, id_length);

 - id-length : (선택) "ReceiveTC"에 해당하는 String의 substring 기준. message-id가 정의되어 있는 경우, id-length는 사용되지 않음.
          [ default ] : 8

 - charset : (선택) ParseType이 byte 일 경우 사용됨. 고정값.

 - charset-name : (선택) ParseType이 byte 일 경우 사용됨. 동적값.



 예제
 
 사용 예# 1
 - 최소사용

     <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
         <property name="layout" value="layoutInXml" />
         <transition name="success" value="BizLogic" />
     </activity>


 사용 예# 2
 - message-id 가 수신Data["ReceiveTC"] 에서 추출하는 것과 다를 경우

     <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
         <property name="layout" value="layoutInXml" />
         <property name="message-id" value="MSGFW001" />
         <transition name="success" value="BizLogic" />
     </activity>


 사용 예# 3
 - message-id 가 주어지지 않아 수신Data["ReceiveTC"] 에서 추출해야하는 경우.

     <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
         <property name="layout" value="layout" />
         <property name="id-length" value="8" />
         <transition name="success" value="BizLogic" />
     </activity>


 사용 예# 4
 - charset-name 사용시.. ctx.get(this.getProperty("charset-name")) 의 값이 사용됨.

     <activity name="Custom" class="...">
         <transition name="success" value="Parse" />
     </activity>
     <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
         <property name="layout" value="layout" />
         <property name="charset-name" value="encoding" />
         <transition name="success" value="BizLogic" />
     </activity>


 사용 예# 5
 - charset 사용시 activity property value가 사용됨.

     <activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse">
         <transition name="success" value="SetMessageKey" />
         <property name="layout" value="layout" />
         <property name="charset" value="UTF-8" />
     </activity>



 참고 : applicationContext.xml

     <bean id="layoutInXml" class="com.poscoict.glueframework.message.layout.GlueXmlMessageLayout">
         <property name="cacheManager" ref="cacheManager"/>
     </bean>
     <bean id="layoutInDB" class="com.poscoict.glueframework.message.layout.GlueDBMessageLayout">
         <property name="dao" ref="layout-dao"/>
         <property name="cacheManager" ref="cacheManager"/>
     </bean>
     <bean id="cacheManager" class="..."/>
     <bean id="layout-dao" class="..."/>


 참고 : Java Code (Custom)

     ctx.put("encoding", "UTF-8");


 참고 : glue.properties

     msg.parsing.type=byte


 참고 : GlueConText 구성 - ReceiveTC, ReceiveTCType은 필수.

     ctx.put("ReceiveTC", "MSGFW001R10aaa           seoul        ");
     ctx.put("ReceiveTCMsg", "MSGFW001R10aaa           seoul        ");
     ctx.put("ReceiveTCType", "T")
     //ctx.put("ReceiveTC", new File("/APP/CHAIN/MSGFW002_20130201.dat"));
     //ctx.put("ReceiveTCMsg", "MSGFW002/APP/CHAIN/MSGFW002_20130201.dat");
     //ctx.put("ReceiveTCType", "F")
 
  • Field Details

  • Constructor Details

    • GlueMessageParse

      public GlueMessageParse()
  • Method Details

    • runActivity

      public String runActivity(GlueContext ctx)
      Description copied from class: GlueActivity
      Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.
      
       예)
       <transition name="success" value="BizLogic"/>
       <transition name="failure" value="ErrorHandle"/>
       ==> return "success"이면 BizLogic Activity 를 실행함.
       
      Specified by:
      runActivity in class GlueActivity<GlueContext>
      Parameters:
      ctx - GlueContext
      Returns:
      String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.