diff --git a/pom.xml b/pom.xml
index 071986b0..6a7d0b43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,7 @@
5.3.3
2.4.2
- 1.4.4
+ 1.4.5
2.1.4
8.0.23
diff --git a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfCloudJob.java b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfCloudJob.java
deleted file mode 100644
index 7b131fa1..00000000
--- a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfCloudJob.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.xxl.job.solon;
-
-import com.xxl.job.core.executor.XxlJobExecutor;
-import org.noear.solon.cloud.annotation.CloudJob;
-import com.xxl.job.solon.service.CloudJobServiceImpl;
-import org.noear.solon.core.BeanExtractor;
-import org.noear.solon.core.BeanWrap;
-import org.noear.solon.core.handle.Action;
-
-import java.lang.reflect.Method;
-
-/**
- * @author noear
- * @since 1.4
- */
-class ExtractorOfCloudJob implements BeanExtractor {
- @Override
- public void doExtract(BeanWrap bw, Method method, CloudJob anno) {
- String name = anno.value();
-
- if (name.trim().length() == 0) {
- throw new RuntimeException("xxl-job method-jobhandler name invalid, for[" + bw.clz() + "#" + method.getName() + "] .");
- }
- if (XxlJobExecutor.loadJobHandler(name) != null) {
- throw new RuntimeException("xxl-job jobhandler[" + name + "] naming conflicts.");
- }
-
- method.setAccessible(true);
-
- Action action = new Action(bw, method);
-
- // registry jobhandler
- CloudJobServiceImpl.instance.register(name, action);
- }
-}
diff --git a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XPluginImp.java b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XPluginImp.java
index 5c0420ca..dfeddb0e 100644
--- a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XPluginImp.java
+++ b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XPluginImp.java
@@ -1,15 +1,15 @@
package com.xxl.job.solon;
import com.xxl.job.core.executor.XxlJobExecutor;
-import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.XxlJob;
import org.noear.solon.SolonApp;
import org.noear.solon.cloud.CloudManager;
import org.noear.solon.cloud.annotation.CloudJob;
import com.xxl.job.solon.service.CloudJobServiceImpl;
+import org.noear.solon.cloud.impl.CloudJobBuilder;
+import org.noear.solon.cloud.impl.CloudJobExtractor;
import org.noear.solon.core.Aop;
import org.noear.solon.core.Plugin;
-import org.noear.solon.core.handle.Handler;
/**
* @author noear
@@ -22,19 +22,15 @@ public class XPluginImp implements Plugin {
return;
}
- //add extractor for bean method
- Aop.context().beanExtractorAdd(XxlJob.class, new ExtractorOfXxlJobMethod());
- Aop.context().beanExtractorAdd(CloudJob.class, new ExtractorOfCloudJob());
+ //register Job Service
+ CloudManager.register(CloudJobServiceImpl.instance);
- Aop.context().beanBuilderAdd(CloudJob.class, (clz, bw, anno) -> {
- if (Handler.class.isAssignableFrom(clz)) {
- CloudJobServiceImpl.instance.register(anno.value(), bw.raw());
- } else if (IJobHandler.class.isAssignableFrom(clz)) {
- XxlJobExecutor.registJobHandler(anno.value(), bw.raw());
- }
- });
+ //add extractor for bean method
+ Aop.context().beanExtractorAdd(XxlJob.class, new XxlJobExtractor());
+ Aop.context().beanExtractorAdd(CloudJob.class, new CloudJobExtractor());
+ Aop.context().beanBuilderAdd(CloudJob.class,new CloudJobBuilder());
- Aop.context().beanMake(AutoConfigXxlJob.class);
+ Aop.context().beanMake(XxlJobAutoConfig.class);
Aop.beanOnloaded(() -> {
try {
@@ -44,8 +40,5 @@ public class XPluginImp implements Plugin {
throw new RuntimeException(e);
}
});
-
- //登记Job服务
- CloudManager.register(CloudJobServiceImpl.instance);
}
}
diff --git a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/AutoConfigXxlJob.java b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobAutoConfig.java
similarity index 97%
rename from xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/AutoConfigXxlJob.java
rename to xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobAutoConfig.java
index e862165d..d5ed4e95 100644
--- a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/AutoConfigXxlJob.java
+++ b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobAutoConfig.java
@@ -17,8 +17,8 @@ import org.slf4j.LoggerFactory;
* @since 1.4
*/
@Configuration
-public class AutoConfigXxlJob {
- private static final Logger logger = LoggerFactory.getLogger(AutoConfigXxlJob.class);
+public class XxlJobAutoConfig {
+ private static final Logger logger = LoggerFactory.getLogger(XxlJobAutoConfig.class);
@Inject("${xxl.job.admin.addresses}")
private String adminAddresses;
diff --git a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfXxlJobMethod.java b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobExtractor.java
similarity index 96%
rename from xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfXxlJobMethod.java
rename to xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobExtractor.java
index 5213514d..daa8ac0d 100644
--- a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/ExtractorOfXxlJobMethod.java
+++ b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/XxlJobExtractor.java
@@ -12,7 +12,7 @@ import java.lang.reflect.Method;
* @author noear
* @since 1.4
*/
-class ExtractorOfXxlJobMethod implements BeanExtractor {
+class XxlJobExtractor implements BeanExtractor {
@Override
public void doExtract(BeanWrap bw, Method method, XxlJob anno) {
String name = anno.value();
diff --git a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/service/CloudJobServiceImpl.java b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/service/CloudJobServiceImpl.java
index 9ae98e8f..b8fe33ce 100644
--- a/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/service/CloudJobServiceImpl.java
+++ b/xxl-job-solon-plugin/src/main/java/com/xxl/job/solon/service/CloudJobServiceImpl.java
@@ -12,8 +12,13 @@ public class CloudJobServiceImpl implements CloudJobService {
public static final CloudJobService instance = new CloudJobServiceImpl();
@Override
- public boolean register(String name, Handler handler) {
+ public boolean register(String name, String description, Handler handler) {
XxlJobExecutor.registJobHandler(name, new CloudJobHanderProxy(handler));
return true;
}
+
+ @Override
+ public boolean isRegistered(String name) {
+ return XxlJobExecutor.loadJobHandler(name) != null;
+ }
}