com.poscoict.glueframework.biz.activity
Class GlueMessageParse

java.lang.Object
  extended by com.poscoict.glueframework.biz.activity.GlueActivity<GlueContext>
      extended by 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 Summary
static int DEFAULT_MSG_ID_LENGTH
           
 
Fields inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
dynamicProperties, logger
 
Constructor Summary
GlueMessageParse()
           
 
Method Summary
 String runActivity(GlueContext ctx)
          Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다.
 
Methods inherited from class com.poscoict.glueframework.biz.activity.GlueActivity
commitTransaction, commitTransaction, getDao, getEventList, getName, getProperty, getPropertyNames, getTransition, rollbackTransaction, rollbackTransaction, setEventList, setName, setProperty, setTransition
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_MSG_ID_LENGTH

public static final int DEFAULT_MSG_ID_LENGTH
See Also:
GlueHttpReceiverAdapter, Constant Field Values
Constructor Detail

GlueMessageParse

public GlueMessageParse()
Method Detail

runActivity

public String runActivity(GlueContext ctx)
Description copied from class: GlueActivity
Sub Class에서 반드시 구현하여야 하는 Abstract Method 이며 이 Method는 F/W에서 호출한다. 결과 값은 GlueContext에 담아서 다음 Activity 또는 F/W에 전달하게 된다. 필요한 모든 Data는 GlueContext에서 호출하여 사용하게 된다.

Specified by:
runActivity in class GlueActivity<GlueContext>
Parameters:
ctx - GlueContext
Returns:
String 정상적이면 "success"를 Return 하고 비정상 처리를 원하면 "failure"를 Return 한다.
 예) 
 <transition name="success" value="BizLogic"/>
 <transition name="failure" value="ErrorHandle"/>
 ==> return "success"이면 BizLogic Activity 를 실행함.
 


Copyright © 2013–2016 POSCO ICT. All rights reserved.