Merge branch 'jenkins_with_weblogic' into master

This commit is contained in:
curry772
2026-03-11 10:34:29 +09:00
32 changed files with 645 additions and 3936 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,7 +2,7 @@ package com.eactive.eai.transformer;
public class SystemKeys {
public static final String TRANSFROMER_BYTESMESSAGE_CHARSET = "transformer.bytesmessage.charset";
public static final String TRANSFROMER_BYTESMESSAGE_CHARSET_DEFAULT = "utf-8";
public static final String TRANSFROMER_BYTESMESSAGE_CHARSET_DEFAULT = "euc-kr";
public static final String TRANSFROMER_STRING_TRIMEND = "transformer.string.trimend";
public static final String TRANSFROMER_VALIDATION = "transformer.validation";
@@ -86,7 +86,7 @@ public class SystemKeys {
}
public static boolean isValidationEnabled() {
return validationEnabled;
return false;
}
public static boolean isAddDecimalPointEnabled() {
@@ -110,7 +110,8 @@ public class Parser implements Serializable {
if (funcDef == null) continue;
String functionClass = funcDef.getFunctionClass();
if (functionClass == null) continue;
if(!functionClass.startsWith("com.eactive.eai.transformer.function")) {
if(!(functionClass.startsWith("com.eactive.eai.transformer.function")
|| functionClass.startsWith("com.eactive.eai.custom.transformer.function"))) {
continue;
}
@@ -94,7 +94,10 @@ public class Transformer {
}
if(!isChanged) {
throw new NullPointerException("변환인자 '[*]' 가 존재하지 않습니다. - "+src);
// 현재 아래 예외처리를 통해 Grid -> Grid만 되도록 cnvsnrsultitempathname 안에 path에 [*]있는지 체크하고 예외 발생.
// Grid to Group 맵핑 해야할 경우가 생겨, 예외 주석처리.
// throw new NullPointerException("변환인자 '[*]' 가 존재하지 않습니다. - "+src);
logger.debug("타겟 변환인자에 '[*]' 가 존재하지 않습니다. - "+src);
}
return sb.toString();
}
@@ -421,7 +424,19 @@ public class Transformer {
" | Item (" + itemPath + ") can not be found in Target Message. Check conversion rules - ");
errors.add(targetMessage.toString());
return;
}
}
//변환에서 src->target으로 값이 맵핑된적이 있나? Grid to Group 같은 경우에는 첫그리드 index 항목에서 맵핑후,
//같은 path의 Group 항목에 중첩될것이니 flag는 true. 그렇다면 PASS 왜냐하면 고객요건이 Grid to Group에서 Grid 첫번째 항목만 맵핑되었으면 함.
//해당 로직없으면 계속 덮어씌기가 되며 맨 마지막 index 항목이 맵핑됨.
if ( resultItem.isMappingFlag() ) {
return;
}
resultItem.mapped();
/**
*
@@ -81,14 +81,14 @@ public class ADDPOINT extends PostfixMathCommand {
}
public static void main(String[] args) throws Exception{
ADDPOINT point = new ADDPOINT();
System.out.println(new String(point.addPoint("000000000100",12,0)));
// System.out.println(new String(point.addPoint("000000000100",12,0)));
try{
System.out.println(Long.valueOf(new String(point.addPoint("000000000100",12,0))));
// System.out.println(Long.valueOf(new String(point.addPoint("000000000100",12,0))));
}catch(Exception e){
e.printStackTrace();
}
try{
System.out.println(new BigDecimal(new String(point.addPoint("000000000100",12,0))));
// System.out.println(new BigDecimal(new String(point.addPoint("000000000100",12,0))));
}catch(Exception e){
e.printStackTrace();
}
@@ -118,8 +118,8 @@ public class REMOVEPOINT extends PostfixMathCommand {
// System.out.println(new String(point.addStack(new String("1.2"), 6, 0)));
// System.out.println(new String(point.addStack(new String("1.2"), 12, 2)));
// System.out.println(new String(point.addStack(new BigDecimal("1000000000000000000.2"), 20, 2)));
System.out.println(new String(point.addStack(new Double("1000000000000000.2"), 20, 2))); // 16 decimal digits available
System.out.println(new String(point.addStack(new Double("1.0000000000000002"), 1, 20))); // 16 decimal digits available
// System.out.println(new String(point.addStack(new Double("1000000000000000.2"), 20, 2))); // 16 decimal digits available
// System.out.println(new String(point.addStack(new Double("1.0000000000000002"), 1, 20))); // 16 decimal digits available
}
/**
@@ -120,11 +120,11 @@ public class REMOVEPOINTS extends PostfixMathCommand {
public static void main(String[] args) throws Exception{
REMOVEPOINTS point = new REMOVEPOINTS();
System.out.println(new String(point.addStack(new String("-1.2"), 6, 2)));
System.out.println(new String(point.addStack(new String("-1.2"), 6, 0)));
System.out.println(new String(point.addStack(new String("-1.2"), 12, 2)));
System.out.println(new String(point.addStack(new BigDecimal("-1000000000000000000.2"), 20, 2)));
System.out.println(new String(point.addStack(new Double("-1000000000000000000.2"), 20, 2)));
// System.out.println(new String(point.addStack(new String("-1.2"), 6, 2)));
// System.out.println(new String(point.addStack(new String("-1.2"), 6, 0)));
// System.out.println(new String(point.addStack(new String("-1.2"), 12, 2)));
// System.out.println(new String(point.addStack(new BigDecimal("-1000000000000000000.2"), 20, 2)));
// System.out.println(new String(point.addStack(new Double("-1000000000000000000.2"), 20, 2)));
}
/**
@@ -0,0 +1,58 @@
package com.eactive.eai.transformer.function.crypto;
import java.util.Stack;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
import com.eactive.eai.common.property.PropManager;
import com.initech.inisafenet.KeyFixManager;
public class IniSafeNetKJDecrypt extends PostfixMathCommand {
public IniSafeNetKJDecrypt() {
numberOfParameters = 1;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
Object param = inStack.pop();
byte[] value = null;
KeyFixManager keyMgr = null;
byte[] decData = null;
PropManager propManager = PropManager.getInstance();
String sConf = propManager.getProperty("IniSafeNet","properties.path");
String iniSafeKey = propManager.getProperty("IniSafeNet","key.value");
if (param instanceof String) {
value = ((String) param).getBytes();
} else if (param instanceof byte[]) {
value = (byte[]) param;
} else if (param instanceof Double) {
if (((Double) param).doubleValue() == Math.round(((Double) param).doubleValue())) {
value = new Long(Math.round(((Double) param).doubleValue())).toString().getBytes();
} else {
value =((Number) param).toString().getBytes();
}
} else if (param instanceof Number) {
value = ((Number) param).toString().getBytes();
} else if (param == null) {
inStack.push(null);
return;
} else {
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
}
try {
keyMgr = new KeyFixManager(sConf);
decData = keyMgr.decrypt(value);
inStack.push(decData);
} catch (Exception e) {
//throw new ExecutionException(e.getMessage(), parameters, e);
throw new ParseException(e.getMessage(), e);
}
}
}
@@ -1,35 +1,30 @@
package com.eactive.eai.transformer.function.crypto;
// not completed source jwhong
import java.util.Stack;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
import com.eactive.eai.common.property.PropManager;
import java.nio.charset.StandardCharsets;
import com.eactive.eai.common.seed.SeedKJ;
import com.eactive.eai.common.seed.SeedCipher;
import org.apache.commons.lang3.StringUtils;
import java.util.Base64;
import com.initech.inisafenet.KeyFixManager;
public class IniSafeNetKJEncrypt extends PostfixMathCommand {
public IniSafeNetKJEncrypt() {
numberOfParameters = 2;
numberOfParameters = 1;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
// USER FUNCTION에서 Parameter 에서 가져옴
Object param2 = inStack.pop();
String param2Str = String.valueOf(param2); // null 안전 처리
String encryptKey = StringUtils.leftPad(param2Str, 16, '0');
Object param = inStack.pop();
byte[] value = null;
KeyFixManager keyMgr = null;
byte[] encData = null;
PropManager propManager = PropManager.getInstance();
String sConf = propManager.getProperty("IniSafeNet","properties.path");
String iniSafeKey = propManager.getProperty("IniSafeNet","key.value");
if (param instanceof String) {
value = ((String) param).getBytes();
@@ -49,11 +44,12 @@ public class IniSafeNetKJEncrypt extends PostfixMathCommand {
} else {
throw new ParseException("Function의 파라미터 인수가 byte[] 또는 String이 아닙니다. : " + param);
}
try {
String encryptedData = SeedKJ.encrypt(new String(value, StandardCharsets.UTF_8), encryptKey);
inStack.push(encryptedData);
keyMgr = new KeyFixManager(sConf);
//encData = keyMgr.encrypt(iniSafeKey, value);
encData = keyMgr.encrypt(value);
inStack.push(encData);
} catch (Exception e) {
//throw new ExecutionException(e.getMessage(), parameters, e);
throw new ParseException(e.getMessage(), e);
@@ -4,29 +4,25 @@ import java.util.Stack;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
import com.eactive.eai.common.property.PropManager;
import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.StringUtils;
// kj bank import 2025-09-23 jwhong
//import org.kjbank.simple.core.crypto.seed.SeedUtil;
import com.eactive.eai.common.seed.SeedKJ;
//import com.eactive.eai.common.seed.SeedKJ;
//security-1.0.0.jar 사용으로 변경 2026-01-05
import com.eactive.eai.security.seed.Seed;
import com.eactive.eai.common.context.ElinkTransactionContext;
public class SeedKJDecrypt extends PostfixMathCommand {
public SeedKJDecrypt() {
numberOfParameters = 2;
numberOfParameters = 1;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
// USER FUNCTION에서 Parameter 에서 가져옴
Object param2 = inStack.pop();
String param2Str = String.valueOf(param2); // null 안전 처리
String decryptKey = StringUtils.leftPad(param2Str, 16, '0');
String seedKey = ElinkTransactionContext.getSeedKey();
String decryptKey = StringUtils.leftPad(seedKey, 16, '0');
Object param = inStack.pop();
@@ -52,8 +48,8 @@ public class SeedKJDecrypt extends PostfixMathCommand {
}
try {
String decryptedData = SeedKJ.decrypt(new String(value, StandardCharsets.UTF_8), decryptKey);
String decryptedData = Seed.decrypt(decryptKey, new String(value, StandardCharsets.UTF_8));
inStack.push(decryptedData);
} catch (Exception e) {
//throw new ExecutionException(e.getMessage(), parameters, e);
@@ -5,29 +5,27 @@ import java.util.Stack;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
import com.eactive.eai.common.property.PropManager;
import java.nio.charset.StandardCharsets;
// kj bank import 2025-09-23 jwhong
import com.eactive.eai.common.seed.SeedKJ;
import com.eactive.eai.common.seed.SeedCipher;
// security-1.0.0.jar 사용으로 변경 2026-01-05
import com.eactive.eai.security.seed.Seed;
//kj bank import 2025-09-23 jwhong
//import com.eactive.eai.common.seed.SeedKJ;
import org.apache.commons.lang3.StringUtils;
import java.util.Base64;
//import org.kjbank.simple.core.crypto.seed.SeedUtil;
import com.eactive.eai.common.context.ElinkTransactionContext;
public class SeedKJEncrypt extends PostfixMathCommand {
public SeedKJEncrypt() {
numberOfParameters = 2;
numberOfParameters = 1;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
// USER FUNCTION에서 Parameter 에서 가져옴
Object param2 = inStack.pop();
String param2Str = String.valueOf(param2); // null 안전 처리
String encryptKey = StringUtils.leftPad(param2Str, 16, '0');
String seedKey = ElinkTransactionContext.getSeedKey();
String encryptKey = StringUtils.leftPad(seedKey, 16, '0');
Object param = inStack.pop();
@@ -53,7 +51,7 @@ public class SeedKJEncrypt extends PostfixMathCommand {
}
try {
String encryptedData = SeedKJ.encrypt(new String(value, StandardCharsets.UTF_8), encryptKey);
String encryptedData = Seed.encrypt(encryptKey, new String(value, StandardCharsets.UTF_8));
inStack.push(encryptedData);
} catch (Exception e) {
@@ -0,0 +1,37 @@
package com.eactive.eai.transformer.function.generic;
import java.util.Stack;
import org.apache.commons.lang3.StringUtils;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
public class Concat extends PostfixMathCommand {
public Concat() {
numberOfParameters = 2;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
Object p2 = inStack.pop();
if (p2 instanceof String) {
String str2 = (String) p2;
Object p1 = inStack.pop();
if (p1 instanceof String) {
String str1 = (String) p1;
inStack.push(str1 + str2);
} else {
throw new ParseException("Invalid parameter type, p1 is not string");
}
} else {
throw new ParseException("Invalid parameter type, p2 is not string");
}
}
}
@@ -32,6 +32,6 @@ public class LeftTrim extends PostfixMathCommand {
inStack.add(" abd ");
t.run(inStack);
String data = (String)inStack.pop();
System.out.println("["+data+"]");
// System.out.println("["+data+"]");
}
}
@@ -32,6 +32,6 @@ public class RightTrim extends PostfixMathCommand {
inStack.add(" abd ");
t.run(inStack);
String data = (String)inStack.pop();
System.out.println("["+data+"]");
// System.out.println("["+data+"]");
}
}
@@ -8,13 +8,15 @@ import org.nfunk.jep.function.PostfixMathCommand;
public class Trim extends PostfixMathCommand {
public Trim() {
numberOfParameters = 1;
numberOfParameters = 2;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
Object p1 = inStack.pop();
Object p2 = inStack.pop();
if (p1 instanceof byte[]) {
inStack.push(new String((byte[]) p1).trim());
@@ -0,0 +1,49 @@
package com.eactive.eai.transformer.function.validate;
import java.util.Stack;
import org.apache.commons.lang3.StringUtils;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
public class ifblank extends PostfixMathCommand {
public ifblank() {
numberOfParameters = 2;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
Object p1 = inStack.pop();
Object p2 = inStack.pop();
if ( p2 instanceof String ) {
String str1 = (String) p1;
if ( StringUtils.isBlank(str1) ){
inStack.push(p2);
}else {
inStack.push(p1);
}
} else {
throw new ParseException("Invalid parameter type, p2 is not string");
}
}
public static void main(String[] args) throws ParseException {
Stack sk = new Stack<Object>();
sk.push("default");
sk.push("asdf");
new ifblank().run(sk);
// System.out.println(sk.pop());
}
}
@@ -0,0 +1,31 @@
package com.eactive.eai.transformer.function.validate;
import java.util.Stack;
import org.apache.commons.lang3.StringUtils;
import org.nfunk.jep.ParseException;
import org.nfunk.jep.function.PostfixMathCommand;
public class isBlank extends PostfixMathCommand {
public isBlank() {
numberOfParameters = 1;
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
Object p1 = inStack.pop();
if (p1 instanceof String) {
String str1 = (String) p1;
inStack.push(StringUtils.isBlank(str1));
} else {
throw new ParseException("Invalid parameter type, p1 is not string");
}
}
}
@@ -58,6 +58,16 @@ abstract public class Item implements Serializable, Cloneable {
protected String multiLang = ""; // multi language 관련
boolean mappingFlag = false;
public boolean isMappingFlag() {
return mappingFlag;
}
public void mapped() {
mappingFlag = true;
}
/**
* reference item
*/
@@ -194,7 +194,8 @@ public abstract class Leaf extends Item {
public Object clone() {
Item clone = (Item) super.clone();
clone.initDefaultValue();
clone.setMappedValue(false);
clone.setMappedValue(false); //반복횟수 참조변수가 맵핑 되었는지
clone.mappingFlag = false; //SRC->TGT 전문으로 값이 맵핑된적이 있는지에 대한 플래그 위에 flag(mappedValue) 헷갈리면 안됨.
return clone;
}
@@ -514,7 +514,7 @@ abstract public class Message extends Composite {
public String toXMLString() {
StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>");
// sb.append("<?xml version=\"1.0\" encoding=\"euc-kr\"?>");
// if (layout != null) {
// sb.append(layout.toXMLString(Constants.TAB));
// }
@@ -229,44 +229,44 @@ public class ByteUtil {
//System.out.println("sub="+new String(data));
}
stopWatch.stop();
System.out.println(" elapsed : " + stopWatch.toString());
// System.out.println(" elapsed : " + stopWatch.toString());
byte[] data = null;
//merge
data = ByteUtil.merge("12345".getBytes(), "67890".getBytes());
System.out.println("merge="+new String(data));
// System.out.println("merge="+new String(data));
//copy
data = ByteUtil.copy("12345".getBytes());
System.out.println("copy="+new String(data));
// System.out.println("copy="+new String(data));
data = ByteUtil.paddingleft("12345".getBytes(), 10, (byte)0x30);
System.out.println("paddingleft="+new String(data));
// System.out.println("paddingleft="+new String(data));
data = ByteUtil.paddingleft("12345".getBytes(), 5, (byte)0x30);
System.out.println("paddingleft="+new String(data));
// System.out.println("paddingleft="+new String(data));
data = ByteUtil.paddingleft("12345".getBytes(), 10, (byte)0x30);
System.out.println("paddingleft="+new String(data));
// System.out.println("paddingleft="+new String(data));
data = ByteUtil.paddingleft("12345".getBytes(), 5, (byte)0x30);
System.out.println("paddingleft="+new String(data));
// System.out.println("paddingleft="+new String(data));
int length = 10;
data = ByteUtil.padding("12345".getBytes(), length, (byte)0x30);
System.out.println("padding="+new String(data));
// System.out.println("padding="+new String(data));
data = ByteUtil.paddingright("12345".getBytes(), length, (byte)0x30);
System.out.println("paddingright="+new String(data));
// System.out.println("paddingright="+new String(data));
length = 5;
data = ByteUtil.padding("12345".getBytes(), length, (byte)0x30);
System.out.println("padding="+new String(data));
// System.out.println("padding="+new String(data));
data = ByteUtil.paddingright("12345".getBytes(), length, (byte)0x30);
System.out.println("paddingright="+new String(data));
// System.out.println("paddingright="+new String(data));
length = 4;
data = ByteUtil.padding("12345".getBytes(), length, (byte)0x30);
System.out.println("padding="+new String(data));
// System.out.println("padding="+new String(data));
data = ByteUtil.paddingright("12345".getBytes(), length, (byte)0x30);
System.out.println("paddingright="+new String(data));
// System.out.println("paddingright="+new String(data));
}
}
@@ -9,7 +9,7 @@ public class ConcatFunction extends PostfixMathCommand {
public ConcatFunction() {
numberOfParameters = 2;
}
}
public void run(Stack inStack) throws ParseException {
checkStack(inStack);
@@ -20,5 +20,6 @@ public class ConcatFunction extends PostfixMathCommand {
String value = param1 + param2;
inStack.push(value);
}
}
}
@@ -1,59 +1,243 @@
package com.eactive.eai.transformer.transform;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.junit.Assert;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.jdbc.Sql;
import com.eactive.eai.common.lifecycle.LifecycleException;
import com.eactive.eai.transformer.engine.TransformEngine;
import com.eactive.eai.transformer.engine.Transformer;
import com.eactive.eai.transformer.function.jpa.TransformJPATestConfiguration;
import com.eactive.eai.transformer.layout.LayoutManager;
import com.eactive.eai.transformer.layout.LayoutTypeManager;
import com.eactive.eai.transformer.message.JSONMessage;
import com.eactive.eai.transformer.message.Message;
import com.eactive.eai.transformer.message.MessageFactory;
@DataJpaTest
@ContextConfiguration(classes = { TransformJPATestConfiguration.class })
@Sql({ "/com/eactive/eai/transformer/init_tseaitr06.sql", "/com/eactive/eai/transformer/init_tseaitr07.sql",
"/com/eactive/eai/transformer/init_tseaitr08.sql", "/com/eactive/eai/transformer/init_tseaitr01.sql",
"/com/eactive/eai/transformer/init_tseaitr02.sql", "/com/eactive/eai/transformer/init_tseaitr03.sql" })
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TransformManagerTest {
@Autowired
TransformManager transformManager;
TransformManager transformManager;
@Autowired
LayoutManager layoutManager;
@Autowired
LayoutManager layoutManager;
@Autowired
LayoutTypeManager layoutTypeManager;
@Autowired
LayoutTypeManager layoutTypeManager;
TransformEngine engine;
boolean initialized = false;
@BeforeEach
void initOnceAfterSql() throws LifecycleException {
if (!initialized) {
layoutTypeManager.start();
layoutManager.start();
transformManager.reload();
engine = TransformEngine.getInstance();
initialized = true;
}
}
@Test
void testReload() throws LifecycleException {
// given
layoutTypeManager.start();
layoutManager.start();
// when
transformManager.reload();
void testCase01() throws LifecycleException {
engine = TransformEngine.getInstance();
// then
Assert.assertTrue(transformManager.getAllTransformName().length > 0);
for (String transformName : transformManager.getAllTransformName()) {
System.out.println("====================================================================================");
System.out.println(transformName);
Transform transform = transformManager.getTransform(transformName);
System.out.print("Source Layouts : ");
transform.getSourceLayouts().forEachRemaining(System.out::print);
System.out.println();
String data ="{\r\n"
+ " \"data\" : {\r\n"
+ " \"cino\" : \"cino_src\",\r\n"
+ " \"code\" : \"code\",\r\n"
+ " \"listCount\" : 1,\r\n"
+ " \"list\" : [\r\n"
+ " { \"item1\" : \"1111\", \"item2\" : \"2222\" , \"item3\" : \"3333\"},\r\n"
+ " { \"item1\" : \"1111\", \"item2\" : \"2222\" , \"item3\" : \"3333\"},\r\n"
+ " { \"item1\" : \"1111\", \"item2\" : \"2222\" , \"item3\" : \"3333\"}\r\n"
+ " ]\r\n"
+ " }\r\n"
+ " \r\n"
+ "}\r\n"
+ "";
System.out.println("Target Layout : " + transform.getTargetLayout());
Message source = MessageFactory.getFactory().getMessage("TST_TOSSTEST1_SRC");
String rootItemName = ((JSONMessage) source).getLayout().getRootItem().getName();
transform.getTransformItemList().forEach(System.out::println);
System.out.println("====================================================================================");
JSONObject value = (JSONObject) JSONValue.parse(data);
JSONObject root = new JSONObject();
root.put(rootItemName, value);
source.setData(root.toJSONString());
System.out.println(source.getData());
Transformer transformer = engine.getTransformer();
Message target = transformer.transform("TRANSFORM_TST_TEST1_REQ", new Message[] { source });
System.out.println(target.toString());
String testResult = new String((byte[])target.getData());
String expectedResult = "cino_code 000031111 2222 3333 1111 2222 3333 1111 2222 3333 ";
Assert.assertArrayEquals(expectedResult.getBytes(), testResult.getBytes());
}
@Test
void testCase02() throws LifecycleException {
// then
Assert.assertTrue(transformManager.getTransform(transformName).getTransformItemList().size() > 0);
}
engine = TransformEngine.getInstance();
Assert.assertTrue(transformManager.getAllTransformName().length > 0);
String data = "{ \"cino\" : \"cino\",\r\n"
+ " \"list\" : [\r\n"
+ " { \"str\" : \"11111\", \"num\" : 11111 },\r\n"
+ " { \"str\" : \"22222\", \"num\" : 22222 },\r\n"
+ " { \"str\" : \"33333\", \"num\" : 33333 }\r\n"
+ " ],\r\n"
+ " \"data\" : 1234\r\n"
+ "}\r\n"
+ "";
Message source = MessageFactory.getFactory().getMessage("TST_TOSSTEST2_SRC");
String rootItemName = ((JSONMessage) source).getLayout().getRootItem().getName();
JSONObject value = (JSONObject) JSONValue.parse(data);
JSONObject root = new JSONObject();
root.put(rootItemName, value);
source.setData(root.toJSONString());
System.out.println(source.getData());
Transformer transformer = engine.getTransformer();
Message target = transformer.transform("TRANSFORM_TST_TEST2_REQ", new Message[] { source });
System.out.println(target.toString());
String testResult = (String) target.getData();
String expectedResult = "{\"data\":1234,\"list\":{\"str\":\"11111\",\"num\":\"11111\"},\"cino\":\"cino\"}";
Assert.assertArrayEquals(expectedResult.getBytes(), testResult.getBytes());
}
@Test
void testCase03() throws LifecycleException {
engine = TransformEngine.getInstance();
Assert.assertTrue(transformManager.getAllTransformName().length > 0);
String data = "{ \"cino\" : \"cino\",\r\n"
+ " \"list\" : [\r\n"
+ " { \"str\" : \"11111\", \"num\" : 11111 },\r\n"
+ " { \"str\" : \"22222\", \"num\" : 22222 },\r\n"
+ " { \"str\" : \"33333\", \"num\" : 33333 }\r\n"
+ " ],\r\n"
+ " \"data\" : 1234\r\n"
+ "}\r\n"
+ "";
Message source = MessageFactory.getFactory().getMessage("TST_TOSSTEST3_SRC");
String rootItemName = ((JSONMessage) source).getLayout().getRootItem().getName();
JSONObject value = (JSONObject) JSONValue.parse(data);
JSONObject root = new JSONObject();
root.put(rootItemName, value);
source.setData(root.toJSONString());
System.out.println(source.getData());
Transformer transformer = engine.getTransformer();
Message target = transformer.transform("TRANSFORM_TST_TEST3_REQ", new Message[] { source });
System.out.println(target.toString());
String testResult = new String((byte[])target.getData());
String expectedResult = "012341111111111cino ";
Assert.assertArrayEquals(expectedResult.getBytes(), testResult.getBytes());
}
@Test
void testCase04() throws LifecycleException {
engine = TransformEngine.getInstance();
Assert.assertTrue(transformManager.getAllTransformName().length > 0);
String data = "{ \"cino\" : \"cino\",\r\n"
+ " \"list\" : \r\n"
+ " { \"str\" : \"11111\", \"num\" : 11111 },\r\n"
+ " \"data\" : 1234\r\n"
+ "}\r\n"
+ "";
Message source = MessageFactory.getFactory().getMessage("TST_TOSSTEST4_SRC");
String rootItemName = ((JSONMessage) source).getLayout().getRootItem().getName();
JSONObject value = (JSONObject) JSONValue.parse(data);
JSONObject root = new JSONObject();
root.put(rootItemName, value);
source.setData(root.toJSONString());
System.out.println(source.getData());
Transformer transformer = engine.getTransformer();
Message target = transformer.transform("TRANSFORM_TST_TEST4_REQ", new Message[] { source });
System.out.println(target.toString());
String testResult = (String) target.getData();
String expectedResult = "{\"data\":1234,\"list\":{\"str\":\"11111\",\"num\":\"11111\"},\"cino\":\"cino\"}";
Assert.assertArrayEquals(expectedResult.getBytes(), testResult.getBytes());
}
@Test
void testCase05() throws LifecycleException {
engine = TransformEngine.getInstance();
Assert.assertTrue(transformManager.getAllTransformName().length > 0);
String data = "{ \"cino\" : \"cino\",\r\n"
+ " \"list\" : \r\n"
+ " { \"str\" : \"11111\", \"num\" : 11111 },\r\n"
+ " \"data\" : 1234\r\n"
+ "}\r\n"
+ "";
Message source = MessageFactory.getFactory().getMessage("TST_TOSSTEST5_SRC");
String rootItemName = ((JSONMessage) source).getLayout().getRootItem().getName();
JSONObject value = (JSONObject) JSONValue.parse(data);
JSONObject root = new JSONObject();
root.put(rootItemName, value);
source.setData(root.toJSONString());
System.out.println(source.getData());
Transformer transformer = engine.getTransformer();
Message target = transformer.transform("TRANSFORM_TST_TEST5_REQ", new Message[] { source });
System.out.println(target.toString());
String testResult = new String((byte[])target.getData());
String expectedResult = "012341111111111cino ";
Assert.assertArrayEquals(expectedResult.getBytes(), testResult.getBytes());
}
}
@@ -1,5 +1,8 @@
INSERT INTO tseaitr01 (cnvsnname,cnvsndesc,lastamndhms,eaisevrdstcd,modfimgtstusdstcd,useyn,verinfo,author) VALUES
('TRANSFORM_TST_ETSTTST00000002S1_REQ','BASIC_TEST_001','20220810165406 ','E',' ','1','00000',NULL),
('TRANSFORM_TST_ETSTTST00000002S1_RES','BASIC_TEST_001','20220810165406 ','E',' ','1','00000',NULL),
('TRANSFORM_TST_BASICTEST002_RES','BASIC_TEST_002','20230522163339 ','E',' ','1','0',NULL),
('TRANSFORM_TST_BASICTEST002_REQ','BASIC_TEST_002','20230522163528 ','E',' ','1','0',NULL);
('TRANSFORM_TST_TEST1_REQ', 'grid-to-grid', '20241226104652 ','E',' ','1','0',NULL),
('TRANSFORM_TST_TEST2_REQ', 'grid-to-group', '20241226104652 ','E',' ','1','0',NULL),
('TRANSFORM_TST_TEST3_REQ', 'grid-to-group(byte)', '20241226104652 ','E',' ','1','0',NULL),
('TRANSFORM_TST_TEST4_REQ', 'group-to-group 기본값 테스트', '20241226104652 ','E',' ','1','0',NULL),
('TRANSFORM_TST_TEST5_REQ', 'group-to-group(byte) 기본값 테스트', '20241226104652 ','E',' ','1','0',NULL)
;
@@ -1,9 +1,12 @@
INSERT INTO tseaitr02 (cnvsnname,loutname,sourcrsultdstcd) VALUES
('TRANSFORM_TST_ETSTTST00000002S1_REQ','TST_STST00000002_REQ','SRC_LAYOUT'),
('TRANSFORM_TST_ETSTTST00000002S1_REQ','TST_TTST00000002_REQ','TGT_LAYOUT'),
('TRANSFORM_TST_ETSTTST00000002S1_RES','TST_STST00000002_RES','TGT_LAYOUT'),
('TRANSFORM_TST_ETSTTST00000002S1_RES','TST_TTST00000002_RES','SRC_LAYOUT'),
('TRANSFORM_TST_BASICTEST002_RES','TST_TTST10000003_RES','SRC_LAYOUT'),
('TRANSFORM_TST_BASICTEST002_RES','TST_STST10000003_RES','TGT_LAYOUT'),
('TRANSFORM_TST_BASICTEST002_REQ','TST_STST10000003_REQ','SRC_LAYOUT'),
('TRANSFORM_TST_BASICTEST002_REQ','TST_TTST10000003_REQ','TGT_LAYOUT');
('TRANSFORM_TST_TEST1_REQ', 'TST_TOSSTEST1_TGT', 'TGT_LAYOUT'),
('TRANSFORM_TST_TEST1_REQ', 'TST_TOSSTEST1_SRC', 'SRC_LAYOUT'),
('TRANSFORM_TST_TEST2_REQ', 'TST_TOSSTEST2_TGT', 'TGT_LAYOUT'),
('TRANSFORM_TST_TEST2_REQ', 'TST_TOSSTEST2_SRC', 'SRC_LAYOUT'),
('TRANSFORM_TST_TEST3_REQ', 'TST_TOSSTEST3_TGT', 'TGT_LAYOUT'),
('TRANSFORM_TST_TEST3_REQ', 'TST_TOSSTEST3_SRC', 'SRC_LAYOUT'),
('TRANSFORM_TST_TEST4_REQ', 'TST_TOSSTEST4_TGT', 'TGT_LAYOUT'),
('TRANSFORM_TST_TEST4_REQ', 'TST_TOSSTEST4_SRC', 'SRC_LAYOUT'),
('TRANSFORM_TST_TEST5_REQ', 'TST_TOSSTEST5_TGT', 'TGT_LAYOUT'),
('TRANSFORM_TST_TEST5_REQ', 'TST_TOSSTEST5_SRC', 'SRC_LAYOUT')
;
File diff suppressed because it is too large Load Diff
@@ -1,10 +1,12 @@
INSERT INTO tseaitr07 (loutname,loutptrnname,loutdesc,lastamndhms,eaibzwkdstcd,uapplname,sysintfacname,eaisevrdstcd,modfimgtstusdstcd,useyn,verinfo,author) VALUES
('STD_HNCPHEADER_REQ','BYTES','하나캐피탈_HEADER','2022081016492819','IIA',' ',' ','E',' ','1','00001','SI210210'),
('TST_STST00000002_REQ','BYTES','BASIC_TEST_001','2022081016540565','TST',' ',' ','E',' ','1','00002','admin'),
('TST_STST00000002_RES','BYTES','BASIC_TEST_001','2022081016540567','TST',' ',' ','E',' ','1','00002','admin'),
('TST_TTST00000002_REQ','JSON','BASIC_TEST_001','2022081016540569','TST',' ',' ','E',' ','1','00002','admin'),
('TST_TTST00000002_RES','JSON','BASIC_TEST_001','2022081016540570','TST',' ',' ','E',' ','1','00002','admin'),
('TST_STST10000003_RES','BYTES','BASIC_TEST_001','2023051815523876','TST',' ',' ','E',' ','1','00002','admin'),
('TST_TTST10000003_REQ','JSON','BASIC_TEST_001','2023051815524814','TST',' ',' ','E',' ','1','00002','admin'),
('TST_TTST10000003_RES','JSON','BASIC_TEST_001','2023051815525581','TST',' ',' ','E',' ','1','00002','admin'),
('TST_STST10000003_REQ','BYTES','BASIC_TEST_001','2023052210512676','TST',' ',' ','E',' ','1','00002','admin');
('TST_TOSSTEST1_SRC', 'JSON', 'bigInteger 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST1_TGT', 'BYTES', 'bigInteger 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST2_SRC', 'JSON', '토스 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST2_TGT', 'JSON', '토스 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST3_SRC', 'JSON', '토스 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST3_TGT', 'BYTES', '토스 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST4_SRC', 'JSON', '기본값 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST4_TGT', 'JSON', '기본값 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST5_SRC', 'JSON', '기본값 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin'),
('TST_TOSSTEST5_TGT', 'BYTES', '기본값 테스트', '2026011010051131', 'TST', ' ', ' ', 'E', ' ', '1', '00002', 'admin')
;
File diff suppressed because it is too large Load Diff