glue-ucube 모듈 추가
glue-xplatform 모듈 추가
glue-schema 모듈 수정
glue-core 모듈 수정
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false" name="__DEFAULT__"> <cache name="_default-region" maxElementsInMemory="500" eternal="true" /> <cache name="_sql-region" maxElementsInMemory="500" eternal="true" /> <cache name="_message-definition-region" maxElementsInMemory="500" eternal="true" /> <cache name="_service-region" maxElementsInMemory="500" eternal="true" /> <cache name="_column-region" maxElementsInMemory="500" eternal="true" /> </ehcache>
GlueCacheManager cacheManager = . . . String cacheKey = . . . Object data = null; if ( cacheManager.isPresent( cacheKey ) ) { data = cacheManager.getCacheObject( cacheKey ); } else { data = loadData( cacheKey ); cacheManager.putCacheObject( cacheKey, data ); }
GlueCacheManager cacheManager = . . . GlueCacheLoader cacheLoader = . . . String cacheKey = . . . String cacheRegion = . . . Object data = cacheManager.getCacheObject( cacheKey, cacheRegion, bizLoader );
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <listener> <listener-class>com.poscoict.glueframework.web.GlueServletContextListener</listener-class> </listener> </web-app>
. | type | ifd | message |
case#1 | F | IF-FILE-FILE | MSGFW002_/APP/CHAIN/MSGFW002_20130201.dat |
case#2 | F | IF-FILE-FILE | MSGFW002/APP/CHAIN/MSGFW002_20130201.dat |
case#3 | F | IF-FILE-FILE | /APP/CHAIN/MSGFW002_20130201.dat |
case#4 | T | IF-TC-TC | MSGFW00110abcde_________seoul________S________ |
. | type | ifd | message |
case#1 | T | IF-TC-TC | MSGFW00110abcde_________seoul________S________ |
case#2 | T | IF-TC-TC | MSGFW00510abcde_________seoul________S________ |
<activity name="Parse" class="com.poscoict.glueframework.biz.activity.GlueMessageParse"> <transition name="success" value="SetMessageKey" /> <property name="layout" value="layout" /> <property name="message-id" value="MSGFW001" /> </activity>
<activity name="ParseFile" class="com.poscoict.glueframework.biz.activity.GlueMessageParse"> <transition name="success" value="SetMessageKey" /> <property name="layout" value="layout" /> <property name="charset" value="UTF-8" /> </activity>
중략 . . [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver: SQLiteJDBC [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver Version: native [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Name: SQLite [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Version: 3.7.2 [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS URL: jdbc:sqlite:/C://eclipse/workspace-glue-4-sample/sample-parent/layout.db [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Batch Update: true 중략 . . com.poscoict.glueframework.message.layout.GlueMessageDefinitionException: Message Definition loading error!! at com.poscoict.glueframework.message.layout.GlueDBMessageLayout.getAttributesDefinition(GlueDBMessageLayout.java:195) ~[glue-core-4.2.2-RELEASE.jar:na] at com.poscoict.glueframework.message.layout.GlueAbstractFixedLengthMessageLayout.getAttributes(GlueAbstractFixedLengthMessageLayout.java:309) ~[glue-core-4.2.2-RELEASE.jar:na] at com.poscoict.glueframework.biz.activity.GlueMessageParse.runActivity(GlueMessageParse.java:191) ~[glue-core-4.2.2-RELEASE.jar:na] at com.poscoict.glueframework.biz.control.GlueService$GlueActivityHandler.runActivity(GlueService.java:166) ~[glue-core-4.2.2-RELEASE.jar:na] at com.poscoict.glueframework.biz.control.GlueBizControllerImpl.doAction(GlueBizControllerImpl.java:288) ~[glue-core-4.2.2-RELEASE.jar:na] at test.Test_MSGFW001.main(Test_MSGFW001.java:30) [test-classes/:na] Caused by: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.math.BigDecimal at com.poscoict.glueframework.message.layout.GlueDBMessageLayout.getAttributesDefinition(GlueDBMessageLayout.java:163) ~[glue-core-4.2.2-RELEASE.jar:na] ... 5 common frames omitted 중략 . .
Class.forName( "org.sqlite.JDBC" ); Connection conn = DriverManager.getConnection( "jdbc:sqlite:layout.db" ); Statement stmt = conn.createStatement(); StringBuilder sb = new StringBuilder(); sb.append( "create table LAYOUT(" ); sb.append( "MDL_DEFINE_NM text not null" ); sb.append( ", MDL_DEFINE_DT_NM_SEQ integer not null" ); sb.append( ", MDL_DEFINE_DT_NM_GROUP_TP text not null" ); sb.append( ", STANDARD_ENGLISH_ID text not null" ); sb.append( ", STANDARD_KOREAN_NAME text not null" ); sb.append( ", MDL_DEFINE_DT_NM_DATA_TP integer not null" ); sb.append( ", MDL_DEFINE_DT_NM_LEN integer not null" ); sb.append( ", MDL_DEFINE_DT_NM_V_DECI_PREC integer" ); sb.append( ", CONSTRAINT LAYOUT_PK PRIMARY KEY (MDL_DEFINE_NM, MDL_DEFINE_DT_NM_SEQ))" ); stmt.executeUpdate( sb.toString() ); stmt.execute( "PRAGMA foreign_keys = ON" ); stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',1,'E','TRANSACTION_CODE','TransactionCode',1,8,null)" ); stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',2,'E','DEPTNO','부서번호',2,2,0)" ); stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',3,'E','DNAME','부서명',1,14,null)" ); stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',4,'E','DLOC','부서위치',1,13,null)" ); stmt.executeUpdate( "insert into LAYOUT values('MSGFW001',5,'E','CRUD','CRUD',1,1,null)" ); stmt.close(); conn.close();
중략 . . [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver: Postgres Plus Advanced Server Native Driver [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Loaded JDBC Driver Version: Postgres Plus Advanced Server 9.3 (9.3.3.8) [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Name: EnterpriseDB [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS Version: 9.3.5.14 [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - DBMS URL: jdbc:edb://localhost:5444/edb [main] DEBUG com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - Batch Update: true [main] WARN com.poscoict.glueframework.dao.jdbc.GlueJdbcDao - No Suitable Driver: Not support a sequence incrementer: EnterpriseDB 중략 . . Exception in thread "main" com.poscoict.glueframework.GlueException: Cannot get sequence: sequence object is null at com.poscoict.glueframework.dao.jdbc.GlueJdbcDao.getSequence(GlueJdbcDao.java:223) at sample.activity.GetSequenceFromEDB.runActivity(GetSequenceFromEDB.java:13) at com.poscoict.glueframework.biz.control.GlueService$GlueActivityHandler.runActivity(GlueService.java:166) at com.poscoict.glueframework.biz.control.GlueBizControllerImpl.doAction(GlueBizControllerImpl.java:287) at test.Test.main(Test.java:51) 중략 . .
<bean id="biz-dao" class="com.poscoict.glueframework.dao.jdbc.GlueJdbcDao"> <property name="dataSource" ref="biz-dataSource"/> <property name="queryManager" ref="queryManager"/> </bean> <bean id="biz-dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.edb.Driver"/> <property name="url" value="jdbc:edb://localhost:5444/edb"/> <property name="username" value="enterprisedb"/> <property name="password" value="password!"/> <property name="defaultAutoCommit" value="false"/> <property name="minIdle" value="0"/> <property name="maxActive" value="-1"/> <property name="maxIdle" value="1000"/> </bean>
String SEQ = . . .; GlueGenericJdbcDao dao = . . .; GlueSequence sequence = dao.getSequence(); Object value = sequence.getNextIntValue( SEQ )