Skip to content

Commit 652d3b5

Browse files
committed
1.6.8-SNAPSHOT 修改Compiler为javassist
1 parent 78c9258 commit 652d3b5

File tree

5 files changed

+50
-6
lines changed

5 files changed

+50
-6
lines changed

lts-core/src/main/java/com/github/ltsopensource/core/compiler/AbstractCompiler.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,41 @@ public Class<?> compile(String code) {
5050

5151
protected abstract Class<?> doCompile(String name, String source) throws Throwable;
5252

53+
public static void main(String[] args) {
54+
String code = "package com.github.ltsopensource.core.support.bean;\n" +
55+
"import com.github.ltsopensource.core.support.bean.BeanCopier;\n" +
56+
"import com.github.ltsopensource.queue.domain.JobPo;\n" +
57+
"public class JobPo2JobPoBeanCopier1 implements BeanCopier<JobPo,JobPo> {\n" +
58+
"public void copyProps(JobPo source, JobPo target){\n" +
59+
"target.setJobId(source.getJobId());\n" +
60+
"target.setJobType(source.getJobType());\n" +
61+
"target.setPriority(source.getPriority());\n" +
62+
"target.setTaskId(source.getTaskId());\n" +
63+
"target.setRealTaskId(source.getRealTaskId());\n" +
64+
"target.setGmtCreated(source.getGmtCreated());\n" +
65+
"target.setGmtModified(source.getGmtModified());\n" +
66+
"target.setSubmitNodeGroup(source.getSubmitNodeGroup());\n" +
67+
"target.setTaskTrackerNodeGroup(source.getTaskTrackerNodeGroup());\n" +
68+
"com.github.ltsopensource.core.support.bean.PropConverter<JobPo, java.util.Map<java.lang.String, java.lang.String>> extParamsConverter = (com.github.ltsopensource.core.support.bean.PropConverter<JobPo, java.util.Map<java.lang.String, java.lang.String>> )com.github.ltsopensource.core.support.bean.BeanCopierFactory.getConverter(1,\"extParams\");\n" +
69+
"target.setExtParams((java.util.Map<java.lang.String, java.lang.String>)extParamsConverter.convert(source));\n" +
70+
"com.github.ltsopensource.core.support.bean.PropConverter<JobPo, java.util.Map<java.lang.String, java.lang.String>> internalExtParamsConverter = (com.github.ltsopensource.core.support.bean.PropConverter<JobPo, java.util.Map<java.lang.String, java.lang.String>> )com.github.ltsopensource.core.support.bean.BeanCopierFactory.getConverter(1,\"internalExtParams\");\n" +
71+
"target.setInternalExtParams((java.util.Map<java.lang.String, java.lang.String>)internalExtParamsConverter.convert(source));\n" +
72+
"target.setTaskTrackerIdentity(source.getTaskTrackerIdentity());\n" +
73+
"target.setNeedFeedback(source.isNeedFeedback());\n" +
74+
"target.setCronExpression(source.getCronExpression());\n" +
75+
"target.setTriggerTime(source.getTriggerTime());\n" +
76+
"target.setRetryTimes(source.getRetryTimes());\n" +
77+
"target.setMaxRetryTimes(source.getMaxRetryTimes());\n" +
78+
"target.setRepeatCount(source.getRepeatCount());\n" +
79+
"target.setRepeatedCount(source.getRepeatedCount());\n" +
80+
"target.setRepeatInterval(source.getRepeatInterval());\n" +
81+
"target.setRelyOnPrevCycle(source.getRelyOnPrevCycle());\n" +
82+
"target.setLastGenerateTriggerTime(source.getLastGenerateTriggerTime());\n" +
83+
"}}";
84+
85+
Compiler compiler = new JavassistCompiler();
86+
compiler.compile(code);
87+
88+
}
5389
}
5490

lts-core/src/main/java/com/github/ltsopensource/core/compiler/JdkCompiler.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import javax.tools.*;
66
import java.io.*;
7+
import java.lang.reflect.Method;
78
import java.net.URI;
89
import java.net.URISyntaxException;
910
import java.net.URL;
@@ -17,7 +18,7 @@ public class JdkCompiler extends AbstractCompiler {
1718
public static final String CLASS_EXTENSION = ".class";
1819
public static final String JAVA_EXTENSION = ".java";
1920

20-
private final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
21+
private JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
2122

2223
private final DiagnosticCollector<JavaFileObject> diagnosticCollector = new DiagnosticCollector<JavaFileObject>();
2324

@@ -28,7 +29,15 @@ public class JdkCompiler extends AbstractCompiler {
2829
private volatile List<String> options;
2930

3031
public JdkCompiler() {
31-
32+
if (compiler == null) {
33+
try {
34+
Class<?> javacTool = Class.forName("com.sun.tools.javac.api.JavacTool");
35+
Method create = javacTool.getMethod("create");
36+
compiler = (JavaCompiler) create.invoke(null);
37+
} catch (Exception e) {
38+
throw new AssertionError(e);
39+
}
40+
}
3241
options = new ArrayList<String>();
3342
// options.add("-target");
3443
// options.add("1.6");

lts-core/src/main/java/com/github/ltsopensource/core/constant/Constants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public interface Constants {
6969
String PROCESSOR_THREAD = "job.processor.thread";
7070
int DEFAULT_PROCESSOR_THREAD = 32 + AVAILABLE_PROCESSOR * 5;
7171

72-
int LATCH_TIMEOUT_MILLIS = 10 * 60 * 1000; // 10分钟
72+
int LATCH_TIMEOUT_MILLIS = 60 * 1000; // 60s
7373

7474
// 任务最多重试次数
7575
String JOB_MAX_RETRY_TIMES = "job.max.retry.times";

lts-core/src/main/java/com/github/ltsopensource/core/support/bean/BeanCopierFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import com.github.ltsopensource.core.commons.utils.ClassHelper;
66
import com.github.ltsopensource.core.commons.utils.ReflectionUtils;
77
import com.github.ltsopensource.core.compiler.Compiler;
8-
import com.github.ltsopensource.core.compiler.JavassistCompiler;
8+
import com.github.ltsopensource.core.compiler.JdkCompiler;
99
import com.github.ltsopensource.core.exception.LtsRuntimeException;
1010
import com.github.ltsopensource.core.logger.Logger;
1111
import com.github.ltsopensource.core.logger.LoggerFactory;
@@ -26,7 +26,7 @@ public final class BeanCopierFactory {
2626

2727
private static final Logger LOGGER = LoggerFactory.getLogger(BeanCopierFactory.class);
2828

29-
private static Compiler COMPILER = new JavassistCompiler();
29+
private static Compiler COMPILER = new JdkCompiler();
3030
private static final AtomicInteger SEQ = new AtomicInteger(0);
3131
private static final ConcurrentMap<Integer, Map<String, PropConverter<?, ?>>> SEQ_PROP_CVT_MAP = new ConcurrentHashMap<Integer, Map<String, PropConverter<?, ?>>>();
3232

lts-example/src/main/resources/application.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ lts.tasktracker.registry-address=zookeeper://127.0.0.1:2181
1818
lts.tasktracker.node-group=test_trade_TaskTracker
1919
lts.tasktracker.dispatch-runner.enable=true
2020
lts.tasktracker.dispatch-runner.shard-value=taskId
21-
lts.tasktracker.dispatch-runner.scanner-packages=com.github.ltsopensource.example
2221

2322
lts.monitor.cluster-name=test_cluster
2423
lts.monitor.registry-address=zookeeper://127.0.0.1:2181

0 commit comments

Comments
 (0)