提交 10c628e8 编写于 作者: zhouweidong's avatar zhouweidong

修复docker中无法找到classpath问题

上级 5265c3f3
...@@ -20,6 +20,9 @@ import ${pub.getPKGCodeName()}.util.domain.DELogic; ...@@ -20,6 +20,9 @@ import ${pub.getPKGCodeName()}.util.domain.DELogic;
import ${pub.getPKGCodeName()}.util.domain.EntityBase; import ${pub.getPKGCodeName()}.util.domain.EntityBase;
import ${pub.getPKGCodeName()}.util.errors.BadRequestAlertException; import ${pub.getPKGCodeName()}.util.errors.BadRequestAlertException;
import ${pub.getPKGCodeName()}.util.helper.DEFieldCacheMap; import ${pub.getPKGCodeName()}.util.helper.DEFieldCacheMap;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
...@@ -49,9 +52,9 @@ import javax.xml.stream.XMLInputFactory; ...@@ -49,9 +52,9 @@ import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamReader;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -267,7 +270,7 @@ public class DELogicAspect { ...@@ -267,7 +270,7 @@ public class DELogicAspect {
//自己 bpmn drl //自己 bpmn drl
refFiles.add(bpmnFile); refFiles.add(bpmnFile);
File drlFile = getDrl(bpmnFile); File drlFile = getDrl(bpmnFile);
if (drlFile.exists()) { if (drlFile != null && drlFile.exists()) {
refFiles.add(drlFile); refFiles.add(drlFile);
} }
// bpmn drl // bpmn drl
...@@ -384,8 +387,7 @@ public class DELogicAspect { ...@@ -384,8 +387,7 @@ public class DELogicAspect {
private File getLocalModel(String entity, String action, LogicExecMode logicExecMode) { private File getLocalModel(String entity, String action, LogicExecMode logicExecMode) {
String logicName = String.format("%s.bpmn", logicExecMode.text); String logicName = String.format("%s.bpmn", logicExecMode.text);
String filePath = File.separator + "rules" + File.separator + entity + File.separator + action.toLowerCase() + File.separator + logicName; String filePath = File.separator + "rules" + File.separator + entity + File.separator + action.toLowerCase() + File.separator + logicName;
URL url = this.getClass().getResource(filePath.replace("\\", "/")); return getBpmnFile(filePath);
return ObjectUtils.isEmpty(url) ? null : new File(url.getPath());
} }
/** /**
...@@ -396,7 +398,7 @@ public class DELogicAspect { ...@@ -396,7 +398,7 @@ public class DELogicAspect {
*/ */
private File getSubBpmn(String logicName) { private File getSubBpmn(String logicName) {
String filePath = String.format("/rules/%s", logicName); String filePath = String.format("/rules/%s", logicName);
return ObjectUtils.isEmpty(this.getClass().getResource(filePath)) ? null : new File(this.getClass().getResource(filePath).getPath()); return getBpmnFile(filePath);
} }
/** /**
...@@ -407,12 +409,40 @@ public class DELogicAspect { ...@@ -407,12 +409,40 @@ public class DELogicAspect {
*/ */
private File getDrl(File bpmn) { private File getDrl(File bpmn) {
if (bpmn.getPath().endsWith("RuleFlow.bpmn")) { if (bpmn.getPath().endsWith("RuleFlow.bpmn")) {
return new File(bpmn.getPath().replace("RuleFlow.bpmn", "Rule.drl")); return getBpmnFile(bpmn.getPath().replace("RuleFlow.bpmn", "Rule.drl"));
} else { } else {
return new File(bpmn.getPath().replace(".bpmn", ".drl")); return getBpmnFile(bpmn.getPath().replace(".bpmn", ".drl"));
} }
} }
/**
* 获取 bpmn
*
* @param filePath
* @return
*/
private File getBpmnFile(String filePath) {
InputStream in = null;
File bpmn = null;
try {
in = this.getClass().getResourceAsStream(filePath.replace("\\", "/"));
if (in != null) {
bpmn = new File(filePath);
FileUtils.copyToFile(in, bpmn);
}
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return bpmn;
}
/** /**
* 逻辑是否有效 * 逻辑是否有效
* *
...@@ -467,6 +497,8 @@ import ${pub.getPKGCodeName()}.util.domain.DELogic; ...@@ -467,6 +497,8 @@ import ${pub.getPKGCodeName()}.util.domain.DELogic;
import ${pub.getPKGCodeName()}.util.domain.EntityBase; import ${pub.getPKGCodeName()}.util.domain.EntityBase;
import ${pub.getPKGCodeName()}.util.errors.BadRequestAlertException; import ${pub.getPKGCodeName()}.util.errors.BadRequestAlertException;
import ${pub.getPKGCodeName()}.util.helper.DEFieldCacheMap; import ${pub.getPKGCodeName()}.util.helper.DEFieldCacheMap;
import org.apache.commons.io.FileUtils;
import java.io.IOException;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.aspectj.lang.JoinPoint; import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
...@@ -789,7 +821,7 @@ public class DELogicAspect { ...@@ -789,7 +821,7 @@ public class DELogicAspect {
//自己 bpmn drl //自己 bpmn drl
refFiles.add(bpmnFile); refFiles.add(bpmnFile);
File drlFile = getDrl(bpmnFile); File drlFile = getDrl(bpmnFile);
if (drlFile.exists()) { if (drlFile != null && drlFile.exists()) {
refFiles.add(drlFile); refFiles.add(drlFile);
} }
// bpmn drl // bpmn drl
...@@ -906,8 +938,7 @@ public class DELogicAspect { ...@@ -906,8 +938,7 @@ public class DELogicAspect {
private File getLocalModel(String entity, String action, LogicExecMode logicExecMode) { private File getLocalModel(String entity, String action, LogicExecMode logicExecMode) {
String logicName = String.format("%s.bpmn", logicExecMode.text); String logicName = String.format("%s.bpmn", logicExecMode.text);
String filePath = File.separator + "rules" + File.separator + entity + File.separator + action.toLowerCase() + File.separator + logicName; String filePath = File.separator + "rules" + File.separator + entity + File.separator + action.toLowerCase() + File.separator + logicName;
URL url = this.getClass().getResource(filePath.replace("\\", "/")); return getBpmnFile(filePath);
return ObjectUtils.isEmpty(url) ? null : new File(url.getPath());
} }
/** /**
...@@ -921,7 +952,7 @@ public class DELogicAspect { ...@@ -921,7 +952,7 @@ public class DELogicAspect {
*/ */
private File getRemoteModel(String module, String entity, String action, LogicExecMode logicExecMode) { private File getRemoteModel(String module, String entity, String action, LogicExecMode logicExecMode) {
String logicName = String.format("psdeaction.json.%s.bpmn", logicExecMode.text); String logicName = String.format("psdeaction.json.%s.bpmn", logicExecMode.text);
return new File(dynamicPath + File.separator + (systemId + File.separator + dynamicId + File.separator + "psmodules" + File.separator + module + File.separator + "psdataentities" + File.separator + entity + File.separator + "psdeactions" + File.separator + action + File.separator + logicName).toLowerCase()); return getBpmnFile(dynamicPath + File.separator + (systemId + File.separator + dynamicId + File.separator + "psmodules" + File.separator + module + File.separator + "psdataentities" + File.separator + entity + File.separator + "psdeactions" + File.separator + action + File.separator + logicName).toLowerCase());
} }
/** /**
...@@ -934,10 +965,10 @@ public class DELogicAspect { ...@@ -934,10 +965,10 @@ public class DELogicAspect {
*/ */
private File getSubBpmn(String module, String entity, String logicName, LogicMode logicMode) { private File getSubBpmn(String module, String entity, String logicName, LogicMode logicMode) {
if (LogicMode.REMOTE.equals(logicMode)) { if (LogicMode.REMOTE.equals(logicMode)) {
return new File(dynamicPath + File.separator + (systemId + File.separator + dynamicId + File.separator + "psmodules" + File.separator + module + File.separator + "psdataentities" + File.separator + entity + File.separator + "psdelogics" + File.separator + logicName + File.separator + "psdelogic.json.bpmn").toLowerCase()); return getBpmnFile(dynamicPath + File.separator + (systemId + File.separator + dynamicId + File.separator + "psmodules" + File.separator + module + File.separator + "psdataentities" + File.separator + entity + File.separator + "psdelogics" + File.separator + logicName + File.separator + "psdelogic.json.bpmn").toLowerCase());
} else { } else {
String filePath = String.format("/rules/%s", logicName); String filePath = String.format("/rules/%s", logicName);
return ObjectUtils.isEmpty(this.getClass().getResource(filePath)) ? null : new File(this.getClass().getResource(filePath).getPath()); return getBpmnFile(filePath);
} }
} }
...@@ -950,10 +981,38 @@ public class DELogicAspect { ...@@ -950,10 +981,38 @@ public class DELogicAspect {
*/ */
private File getDrl(File bpmn) { private File getDrl(File bpmn) {
if (bpmn.getPath().endsWith("RuleFlow.bpmn")) { if (bpmn.getPath().endsWith("RuleFlow.bpmn")) {
return new File(bpmn.getPath().replace("RuleFlow.bpmn", "Rule.drl")); return getBpmnFile(bpmn.getPath().replace("RuleFlow.bpmn", "Rule.drl"));
} else { } else {
return new File(bpmn.getPath().replace(".bpmn", ".drl")); return getBpmnFile(bpmn.getPath().replace(".bpmn", ".drl"));
}
}
/**
* 获取 bpmn
*
* @param filePath
* @return
*/
private File getBpmnFile(String filePath) {
InputStream in = null;
File bpmn = null;
try {
in = this.getClass().getResourceAsStream(filePath.replace("\\", "/"));
if (in != null) {
bpmn = new File(filePath);
FileUtils.copyToFile(in, bpmn);
}
} catch (IOException e) {
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
return bpmn;
} }
/** /**
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册