This commit is contained in:
Rinjae
2025-09-05 18:57:45 +09:00
commit aacc1a389e
1229 changed files with 167963 additions and 0 deletions
@@ -0,0 +1,100 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.bizkey.BizKeyManager;
import com.eactive.eai.common.bizkey.BizKeyVO;
import com.eactive.eai.common.util.Logger;
public class BizKeyServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String key = request.getContext();
if (key.lastIndexOf('/') == -1) {
key = "";
} else {
key = key.substring(key.indexOf('/')+1);
}
String result = "";
try {
result = show(key);
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
public String show(String key) {
StringBuffer sb = new StringBuffer();
BizKeyManager manager = BizKeyManager.getInstance();
String[] bizkeys = manager.getAllKeyNames();
sb.append(SCRIPT);
sb.append("bizkey | keyword = " + key);
sb.append("<br>");
int count = 0;
for(int i=0; i<bizkeys.length; i++) {
if ("".equals(key.trim()) || bizkeys[i].indexOf(key) != -1) {
count++;
}
}
int resultCount = 0;
for(int i=0; i<bizkeys.length; i++) {
if ("".equals(key.trim()) || bizkeys[i].indexOf(key) != -1) {
if (count > 1) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
}
try {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
BizKeyVO bizkey = manager.getBizKey(bizkeys[i]);
sb.append(bizkey.getEaiSvcCd() + "\n");
sb.append("</pre>");
} catch(Exception e) {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append("(<a href='/message/" + bizkeys[i] + "/reload'>reload</a>)&nbsp;");
sb.append(ExceptionStackTrace.dump(e));
sb.append("</pre>");
}
if (count > 1) {
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
/**
* 100개 까지만 뿌려준다.
*/
if (resultCount++ >= 100)
break;
}
}
return sb.toString();
}
}
@@ -0,0 +1,72 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.transformer.function.FunctionManager;
public class FunctionServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String key = request.getContext();
if (key.lastIndexOf('/') == -1) {
key = "";
} else {
key = key.substring(key.indexOf('/')+1);
}
String result = "";
try {
result = show(key);
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
public String show(String key) {
StringBuffer sb = new StringBuffer();
FunctionManager manager = FunctionManager.getInstance();
String[] functionNames = manager.getAllFunctionNames();
if(functionNames == null) return "";
if(key == null) key = "";
sb.append(SCRIPT);
sb.append("message | key = " + key + "<br>");
for(int i=0; i<functionNames.length; i++) {
if(functionNames[i] == null) continue;
if ("".equals(key.trim()) || functionNames[i].indexOf(key) != -1) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append(manager.getFunctionDefinition(functionNames[i]));
sb.append("</pre>");
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
}
return sb.toString();
}
}
@@ -0,0 +1,119 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.transformer.layout.Layout;
import com.eactive.eai.transformer.layout.LayoutManager;
public class LayoutServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String key = request.getContext();
boolean isReload = false;
if (key.endsWith("/reload")) {
isReload = true;
key = key.substring(0, key.lastIndexOf('/'));
}
if (key.lastIndexOf('/') == -1) {
key = "";
} else {
key = key.substring(key.indexOf('/')+1);
}
String result = "";
try {
if (isReload) {
result = reload(key);
} else {
result = show(key);
}
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
public String show(String key) {
StringBuffer sb = new StringBuffer();
LayoutManager manager = LayoutManager.getManager();
String[] messageNames = manager.getAllLayoutName();
sb.append(SCRIPT);
sb.append("message | key = " + key);
sb.append("<br>");
int count = 0;
for(int i=0; i<messageNames.length; i++) {
if ("".equals(key.trim()) || messageNames[i].indexOf(key) != -1) {
count++;
}
}
int resultCount = 0;
for(int i=0; i<messageNames.length; i++) {
if ("".equals(key.trim()) || messageNames[i].indexOf(key) != -1) {
if (count > 1) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
}
Layout l = manager.getLayoutByName(messageNames[i]);
if(l != null) {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append("(<a href='/message/" + messageNames[i] + "/reload'>reload</a>)&nbsp;");
sb.append(l.getRootItem().toString());
sb.append("</pre>");
}
else {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append("(<a href='/message/" + messageNames[i] + "/reload'>reload</a>)&nbsp;");
sb.append("Layout not found!");
sb.append("</pre>");
}
if (count > 1) {
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
/**
* 10개 까지만 뿌려준다.
*/
if (resultCount++ >= 100)
break;
}
}
return sb.toString();
}
public String reload(String key) throws Exception {
if (LayoutManager.getManager().getLayoutByName(key) == null)
return "layout '" + key + "' does not exist";
LayoutManager.getManager().reload(key);
return "reload message '" + key + "' successfully";
}
}
@@ -0,0 +1,103 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.message.EAIMessage;
import com.eactive.eai.common.message.EAIMessageManager;
import com.eactive.eai.common.util.Logger;
import java.net.URLDecoder;
public class ServiceServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String key = request.getContext();
if (key.lastIndexOf('/') == -1) {
key = "";
} else {
key = key.substring(key.indexOf('/')+1);
}
String result = "";
try {
result = show(URLDecoder.decode(key,"UTF-8"));
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
public String show(String key) {
StringBuffer sb = new StringBuffer();
EAIMessageManager manager = EAIMessageManager.getInstance();
String[] serviceCodes = manager.getAllEAISvcCd();
sb.append(SCRIPT);
sb.append("message | key = " + key);
sb.append("<br>");
int count = 0;
for(int i=0; i<serviceCodes.length; i++) {
if ("".equals(key.trim()) || serviceCodes[i].indexOf(key) != -1) {
count++;
}
}
int resultCount = 0;
for(int i=0; i<serviceCodes.length; i++) {
if ("".equals(key.trim()) || serviceCodes[i].indexOf(key) != -1) {
if (count > 1) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
}
try {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
EAIMessage message = manager.getEAIMessage(serviceCodes[i]);
sb.append(message.getEAISvcCd() + " - " + message.getEAISvcDesc() + "\n");
sb.append("response error message : " + message.getRspErrMsg() + "\n");
sb.append("</pre>");
} catch(Exception e) {
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append("(<a href='/message/" + serviceCodes[i] + "/reload'>reload</a>)&nbsp;");
sb.append(ExceptionStackTrace.dump(e));
sb.append("</pre>");
}
if (count > 1) {
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
/**
* 100개 까지만 뿌려준다.
*/
if (resultCount++ >= 100)
break;
}
}
return sb.toString();
}
}
@@ -0,0 +1,119 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.transformer.transform.Transform;
import com.eactive.eai.transformer.transform.TransformManager;
public class TransformServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String key = request.getContext();
boolean isReload = false;
if (key.endsWith("/reload")) {
isReload = true;
key = key.substring(0, key.lastIndexOf('/'));
}
if (key.lastIndexOf('/') == -1) {
key = "";
} else {
key = key.substring(key.indexOf('/')+1);
}
String result = "";
try {
if (isReload) {
result = reload(key);
} else {
result = show(key);
}
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
public String show(String key) {
StringBuffer sb = new StringBuffer();
TransformManager manager = TransformManager.getManager();
String[] transformNames = manager.getAllTransformName();
sb.append(SCRIPT);
sb.append("transform | key = " + key);
sb.append("<br>");
int count = 0;
for(int i=0; i<transformNames.length; i++) {
if ("".equals(key.trim()) || transformNames[i].indexOf(key) != -1) {
count++;
}
}
int resultCount = 0;
for(int i=0; i<transformNames.length; i++) {
if ("".equals(key.trim()) || transformNames[i].indexOf(key) != -1) {
if (count > 1) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
}
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append("(<a href='/transform/" + transformNames[i] + "/reload'>reload</a>)&nbsp;");
Transform t = manager.getTransform(transformNames[i]);
if(t == null) {
sb.append("NULL");
}
else {
sb.append(t.toString());
}
sb.append("</pre>");
if (count > 1) {
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
/**
* 100개 까지만 뿌려준다.
*/
if (resultCount++ >= 100)
break;
}
}
return sb.toString();
}
public String reload(String key) throws Exception {
if (TransformManager.getManager().getTransform(key) == null)
return "transform '" + key + "' does not exist";
TransformManager.getManager().reload(key);
return "reload transform '" + key + "' successfully";
}
}
@@ -0,0 +1,124 @@
package com.eactive.eai.transformer.servlet;
import com.eactive.eai.adapter.socket2.common.ExceptionStackTrace;
import com.eactive.eai.adapter.socket2.config.SocketAdapterManager;
import com.eactive.eai.adapter.socket2.config.SocketLoggerManager;
import com.eactive.eai.adapter.socket2.protocol.http.HttpServlet;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpRequest;
import com.eactive.eai.adapter.socket2.protocol.http.codec.HttpResponse;
import com.eactive.eai.common.util.Logger;
import com.eactive.eai.transformer.engine.TransformEngine;
import com.eactive.eai.transformer.util.MemoryLogger;
public class TransformerServlet extends HttpServlet {
final static SocketAdapterManager manager = SocketAdapterManager.getInstance();
static Logger logger = SocketLoggerManager.getInstance().getLogger("FileLogger{NET}_HTTP");
protected void doService(HttpRequest request, HttpResponse response) throws Exception {
String command = request.getContext();
if (command.lastIndexOf('/') == -1) {
command = "";
} else {
command = command.substring(command.indexOf('/')+1);
}
String result = "";
if (command == null || "".equals(command) || "tx".equals(command)) {
try {
result = transaction();
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
} else if ("error".equals(command) || "err".equals(command)) {
try {
result = error();
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
} else if ("dump".equals(command)) {
try {
result = dump();
} catch(Throwable e) {
result = "<pre>" + ExceptionStackTrace.dump(e) + "</pre>";
}
} else {
response.setResponseCode(404);
return;
}
response.setContentType("text/html");
response.setResponseCode(HttpResponse.HTTP_STATUS_SUCCESS);
response.appendBody(result);
}
final static String SCRIPT =
" <script> \n" +
" function toggle(obj){ \n" +
" if (obj.style.height == \"17px\"){ \n" +
" obj.style.height=\"\"; \n" +
" obj.style.overflow=\"visible\"; \n" +
" }else{ \n" +
" obj.style.height=\"17px\"; \n" +
" obj.style.overflow=\"hidden\"; \n" +
" } \n" +
" } \n" +
" </script> \n";
private String transaction() throws Exception {
StringBuffer sb = new StringBuffer();
String[] transactions = MemoryLogger.getTransactions();
sb.append(SCRIPT);
sb.append("<h3>Transformer - transactions</h3>");
for (int i=transactions.length-1; i>=0; i--) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append(unescape(transactions[i]));
sb.append("</pre>");
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
return sb.toString();
}
private String error() throws Exception {
StringBuffer sb = new StringBuffer();
String[] errors = MemoryLogger.getErrors();
sb.append(SCRIPT);
sb.append("<h3>Transformer - errors (" + MemoryLogger.getErrorCount() + ")</h3>");
for (int i=errors.length-1; i>=0; i--) {
sb.append("<div style=\"height: 17px; margin: 0px 0px 0px 0px;overflow: hidden;padding:0px 0px 0px 0px;cursor:hand;\" ondblclick=\"toggle(this)\">");
sb.append("<pre style=\"padding:0px 0px 0px 0px;margin: 0px 0px 0px 0px\">");
sb.append(unescape(errors[i]));
sb.append("</pre>");
sb.append("</div>");
sb.append("<div style=\"height: 1px; overflow: hidden;border:0px;background-color:black;\"></div>");
}
return sb.toString();
}
private String dump() throws Exception {
StringBuffer sb = new StringBuffer();
sb.append("<h3>Transformer - dump</h3>");
sb.append("<pre>");
sb.append(TransformEngine.getInstance().toString());
sb.append("</pre>\n");
return sb.toString();
}
private String unescape(String string) {
string = string.replace("<b>", "(b)").replace("</b>", "(/b)");
string = string.replaceAll("<a( href=\\'[a-zA-Z0-9_/]+\\')>", "(a$1)").replace("</a>", "(/a)");
string = string.replaceAll("<font color='([a-zA-Z]+)'>", "(font color='$1')").replace("</font>", "(/font)");
string = string.replace(">", "&gt;").replace("<", "&lt;");
string = string.replace("(b)", "<b>").replace("(/b)", "</b>");
string = string.replaceAll("\\(a( href=\\'[a-zA-Z0-9_/]+\\')\\)", "<a$1>").replace("(/a)", "</a>");
string = string.replaceAll("\\(font color='([a-zA-Z]+)'\\)", "<font color='$1'>").replace("(/font)", "</font>");
return string;
}
}