diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java index 4d5edf18..1b040b2d 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/AsgcCompiler.java @@ -36,7 +36,7 @@ import java.util.*; import java.util.stream.Collectors; /** - * + * asgc编译器 * @author: aoshiguchen * @date: 2022/8/17 */ @@ -58,10 +58,17 @@ public class AsgcCompiler { private final List> errors = new ArrayList>(); private final List> warnings = new ArrayList>(); + /** + * 构造编译器 + */ public AsgcCompiler() { this(ClassLoader.getSystemClassLoader()); } + /** + * 构造编译器 + * @param classLoader + */ public AsgcCompiler(ClassLoader classLoader) { if (null == javaCompiler) { throw new RuntimeException("Can not load JavaCompiler from javax.tools.ToolProvider#getSystemJavaCompiler(),\n please confirm the application running in JDK not JRE."); @@ -78,6 +85,10 @@ public class AsgcCompiler { addOption("-target", "1.8"); } + /** + * 添加类路径 + * @param classpath + */ public void addClasspath(String classpath) { if (this.classpathList.contains(classpath)) { return; @@ -85,18 +96,34 @@ public class AsgcCompiler { this.classpathList.add(classpath); } + /** + * 设置是否保存类文件 + * @param saveClassFile + */ public void setSaveClassFile(boolean saveClassFile) { this.isSaveClassFile = saveClassFile; } + /** + * 设置是否保存源代码文件 + * @param saveSourceCodeFile + */ public void setSaveSourceCodeFile(boolean saveSourceCodeFile) { isSaveSourceCodeFile = saveSourceCodeFile; } + /** + * 设置保存代码路径 + * @param generatorCodeSavePath + */ public void setGeneratorCodeSavePath(String generatorCodeSavePath) { this.generatorCodeSavePath = generatorCodeSavePath; } + /** + * 获取options + * @return + */ private List getOptions() { List list = Lists.newArrayList(options); List cp = getClasspathList(); @@ -107,19 +134,37 @@ public class AsgcCompiler { return list; } + /** + * 添加option + * @param option + */ private void addOption(String option) { this.options.add(option); } + /** + * 添加option + * @param key + * @param val + */ private void addOption(String key, String val) { this.options.add(key); this.options.add(val); } + /** + * 添加源代码 + * @param className + * @param source + */ private void addSource(String className, String source) { addSource(new StringSource(className, source)); } + /** + * 添加源代码 + * @param javaFileObject + */ private void addSource(JavaFileObject javaFileObject) { compilationUnits.add(javaFileObject); } @@ -165,6 +210,11 @@ public class AsgcCompiler { return dynamicClassLoader.findClass(pkg + "." + className); } + /** + * 获取编译诊断信息 + * @param diagnostics + * @return + */ private List diagnosticToString(List> diagnostics) { List diagnosticMessages = new ArrayList(); @@ -178,14 +228,25 @@ public class AsgcCompiler { } + /** + * 获取异常信息 + * @return + */ public List getErrors() { return diagnosticToString(errors); } + /** + * 获取警告信息 + * @return + */ public List getWarnings() { return diagnosticToString(warnings); } + /** + * 打印编译日志 + */ private void log() { List warnings = getWarnings(); List errors = getErrors(); @@ -193,10 +254,14 @@ public class AsgcCompiler { // log.warn(warnings.stream().collect(Collectors.joining())); // } if (!CollectionUtil.isEmpty(errors)) { - log.warn(errors.stream().collect(Collectors.joining())); + log.error(errors.stream().collect(Collectors.joining())); } } + /** + * 获取URL类路径加载器 + * @return + */ private URLClassLoader getURLClassLoader() { ClassLoader ret = Thread.currentThread().getContextClassLoader(); if (null == ret) { @@ -205,6 +270,10 @@ public class AsgcCompiler { return (ret instanceof URLClassLoader) ? (URLClassLoader)ret : null; } + /** + * 获取类路径列表 + * @return + */ public List getClasspathList() { List classpathList = new ArrayList<>(); List defaultClasspathList = getDefaultClasspathList(); @@ -218,6 +287,10 @@ public class AsgcCompiler { return classpathList; } + /** + * 获取默认的类路径列表 + * @return + */ private synchronized List getDefaultClasspathList() { if (!CollectionUtil.isEmpty(defaultClassPathList)) { return defaultClassPathList; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/CustomJavaFileObject.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/CustomJavaFileObject.java index 34a223d5..2bb5ce9c 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/CustomJavaFileObject.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/CustomJavaFileObject.java @@ -28,7 +28,7 @@ import java.io.*; import java.net.URI; /** - * + * 自定义java文件对象 * @author: aoshiguchen * @date: 2022/8/25 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicClassLoader.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicClassLoader.java index bba1c78c..d25ed611 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicClassLoader.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicClassLoader.java @@ -37,7 +37,7 @@ import java.util.jar.JarEntry; import java.util.jar.JarFile; /** - * + * 动态类加载器 * @author: aoshiguchen * @date: 2022/8/25 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicJavaFileManager.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicJavaFileManager.java index 836cce2d..a42b66e1 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicJavaFileManager.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/DynamicJavaFileManager.java @@ -26,7 +26,7 @@ import java.io.IOException; import java.util.*; /** - * + * 动态java文件管理器 * @author: aoshiguchen * @date: 2022/8/17 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/MemoryByteCode.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/MemoryByteCode.java index f48f9d05..16f3b363 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/MemoryByteCode.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/MemoryByteCode.java @@ -29,7 +29,7 @@ import java.net.URI; import java.net.URISyntaxException; /** - * + * 内存字节码 * @author: aoshiguchen * @date: 2022/8/25 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/PackageInternalsFinder.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/PackageInternalsFinder.java index 50723908..24c65628 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/PackageInternalsFinder.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/PackageInternalsFinder.java @@ -35,7 +35,7 @@ import java.util.List; import java.util.jar.JarEntry; /** - * + * 包内部查询器 * @author: aoshiguchen * @date: 2022/8/25 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/StringSource.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/StringSource.java index 3359e411..a6f3ad18 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/StringSource.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/aop/compiler/StringSource.java @@ -26,7 +26,7 @@ import java.io.IOException; import java.net.URI; /** - * + * 字符串源码 * @author: aoshiguchen * @date: 2022/8/25 */ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/AbstractBeanFactory.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/AbstractBeanFactory.java similarity index 99% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/AbstractBeanFactory.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/AbstractBeanFactory.java index dad96d35..29f10d19 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/AbstractBeanFactory.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/AbstractBeanFactory.java @@ -19,9 +19,10 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.bean; +package fun.asgc.neutrino.core.bean.factory; import fun.asgc.neutrino.core.base.CustomThreadFactory; +import fun.asgc.neutrino.core.bean.*; import fun.asgc.neutrino.core.context.Environment; import fun.asgc.neutrino.core.context.LifeCycle; import fun.asgc.neutrino.core.context.LifeCycleManager; @@ -35,7 +36,6 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; /** diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactory.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactory.java similarity index 96% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactory.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactory.java index 5d365a3b..d4ffceeb 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactory.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactory.java @@ -19,8 +19,9 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.bean; +package fun.asgc.neutrino.core.bean.factory; +import fun.asgc.neutrino.core.bean.BeanIdentity; import fun.asgc.neutrino.core.exception.BeanException; import java.util.List; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactoryAware.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactoryAware.java similarity index 96% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactoryAware.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactoryAware.java index 7388daa9..032461be 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/BeanFactoryAware.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/BeanFactoryAware.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.bean; +package fun.asgc.neutrino.core.bean.factory; /** * 用于标识需要beanFactory的组件 diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/SimpleBeanFactory.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/SimpleBeanFactory.java similarity index 99% rename from neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/SimpleBeanFactory.java rename to neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/SimpleBeanFactory.java index 0c900201..17f4b009 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/SimpleBeanFactory.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/bean/factory/SimpleBeanFactory.java @@ -19,7 +19,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package fun.asgc.neutrino.core.bean; +package fun.asgc.neutrino.core.bean.factory; import com.google.common.collect.Lists; import fun.asgc.neutrino.core.annotation.*; @@ -28,6 +28,7 @@ import fun.asgc.neutrino.core.aop.interceptor.ExceptionHandler; import fun.asgc.neutrino.core.aop.interceptor.Filter; import fun.asgc.neutrino.core.aop.interceptor.Interceptor; import fun.asgc.neutrino.core.aop.interceptor.ResultAdvice; +import fun.asgc.neutrino.core.bean.*; import fun.asgc.neutrino.core.exception.BeanException; import fun.asgc.neutrino.core.context.ApplicationRunner; import fun.asgc.neutrino.core.util.*; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java index 12a0d3d7..603d34af 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ApplicationContext.java @@ -24,8 +24,8 @@ package fun.asgc.neutrino.core.context; import fun.asgc.neutrino.core.annotation.PreLoad; import fun.asgc.neutrino.core.base.GlobalConfig; -import fun.asgc.neutrino.core.bean.BeanFactoryAware; -import fun.asgc.neutrino.core.bean.SimpleBeanFactory; +import fun.asgc.neutrino.core.bean.factory.BeanFactoryAware; +import fun.asgc.neutrino.core.bean.factory.SimpleBeanFactory; import fun.asgc.neutrino.core.util.*; import lombok.Data; import lombok.experimental.Accessors; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java index 451c4513..58f2929c 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/context/ExtensionServiceLoader.java @@ -24,7 +24,7 @@ package fun.asgc.neutrino.core.context; import fun.asgc.neutrino.core.annotation.Autowired; import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.NonIntercept; -import fun.asgc.neutrino.core.bean.SimpleBeanFactory; +import fun.asgc.neutrino.core.bean.factory.SimpleBeanFactory; import fun.asgc.neutrino.core.web.context.WebApplicationContext; import fun.asgc.neutrino.core.web.context.WebContextHolder; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/template/PreparedStatementJdbcCallback.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/template/PreparedStatementJdbcCallback.java index d50c802c..d482dabb 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/template/PreparedStatementJdbcCallback.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/db/template/PreparedStatementJdbcCallback.java @@ -48,7 +48,7 @@ public abstract class PreparedStatementJdbcCallback implements JdbcCallback 0 && sb.charAt(sb.length() - 1) == ','){ diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java index 08a35f4b..0e14ed57 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/quartz/JobExecutor.java @@ -56,6 +56,7 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { private Map jobHandlerMap = new ConcurrentHashMap<>(); private Set runJobSet = Sets.newHashSet(); private IJobCallback jobCallback; + private Map triggerKeyMap = new ConcurrentHashMap<>(); @Override public void run(String[] args) throws JobException { @@ -71,7 +72,6 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { continue; } jobHandlerMap.put(jobHandler.name(), item); - runJobSet.add(jobHandler.name()); } } @@ -106,55 +106,89 @@ public class JobExecutor implements ApplicationRunner, IJobExecutor { for (JobInfo jobInfo : jobInfoList) { add(jobInfo); } + log.info("Job初始化完成."); } @Override - public synchronized void add(JobInfo jobInfo) throws JobException { - if (null == jobInfo || StringUtil.isEmpty(jobInfo.getName()) || StringUtil.isEmpty(jobInfo.getCron()) || jobInfoMap.containsKey(jobInfo.getName())) { + public void add(JobInfo jobInfo) throws JobException { + if (null == jobInfo || StringUtil.isEmpty(jobInfo.getId()) || StringUtil.isEmpty(jobInfo.getName()) || + StringUtil.isEmpty(jobInfo.getCron()) || runJobSet.contains(jobInfo.getName())) { return; } - jobInfoMap.put(jobInfo.getName(), jobInfo); + synchronized (jobInfo.getId()) { + runJobSet.add(jobInfo.getName()); + jobInfoMap.put(jobInfo.getId(), jobInfo); - TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getName()); - JobKey jobKey = new JobKey(jobInfo.getName()); + TriggerKey triggerKey = TriggerKey.triggerKey(jobInfo.getId()); + triggerKeyMap.put(jobInfo.getId(), triggerKey); + JobKey jobKey = new JobKey(jobInfo.getName()); - CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(jobInfo.getCron()).withMisfireHandlingInstructionDoNothing(); - CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); - JobDetail jobDetail = JobBuilder.newJob(JobBean.class).withIdentity(jobKey).build(); + CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(jobInfo.getCron()).withMisfireHandlingInstructionDoNothing(); + CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build(); + JobDetail jobDetail = JobBuilder.newJob(JobBean.class).withIdentity(jobKey).build(); - try { - scheduler.scheduleJob(jobDetail, cronTrigger); - scheduler.start(); - } catch (Exception e) { - throw new RuntimeException(String.format("新增job[name=%s]异常", jobInfo.getName())); + try { + scheduler.scheduleJob(jobDetail, cronTrigger); + scheduler.start(); + } catch (Exception e) { + throw new RuntimeException(String.format("新增job[name=%s]异常", jobInfo.getName())); + } } } @Override - public void remove(String jobName) { - runJobSet.remove(jobName); + public void remove(String jobId) { + JobInfo jobInfo = jobInfoMap.get(jobId); + if (null == jobInfo) { + return; + } + synchronized (jobId) { + runJobSet.remove(jobInfo.getName()); + unscheduleJob(jobId); + } } @Override public void trigger(String jobId, String param) { - + doExecute(jobId, param); } public void execute(JobExecutionContext context) throws JobExecutionException { if (null == context || null == context.getTrigger()) { return; } - if (!jobInfoMap.containsKey(context.getTrigger().getKey().getName()) - || !jobHandlerMap.containsKey(context.getTrigger().getKey().getName())) { + String jobId = context.getTrigger().getKey().getName(); + JobInfo jobInfo = jobInfoMap.get(jobId); + if (null == jobInfo) { + unscheduleJob(jobId); return; } + doExecute(jobId, jobInfo.getParam()); + } - threadPoolExecutor.submit(() -> { - JobInfo jobInfo = jobInfoMap.get(context.getTrigger().getKey().getName()); - IJobHandler jobHandler =jobHandlerMap.get(jobInfo.getName()); - + private void unscheduleJob(String jobId) { + TriggerKey triggerKey = triggerKeyMap.get(jobId); + if (null != triggerKey) { try { - jobHandler.execute(jobInfo.getParam()); + scheduler.unscheduleJob(triggerKey); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + + private void doExecute(String jobId, String param) { + JobInfo jobInfo = jobInfoMap.get(jobId); + if (null == jobInfo) { + return; + } + IJobHandler jobHandler =jobHandlerMap.get(jobInfo.getName()); + if (null == jobHandler) { + return; + } + threadPoolExecutor.submit(() -> { + try { + jobHandler.execute(param); if (null != jobCallback) { jobCallback.executeLog(jobInfo, null); } diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/util/BeanManager.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/util/BeanManager.java index be64545f..7032490e 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/util/BeanManager.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/util/BeanManager.java @@ -23,8 +23,8 @@ package fun.asgc.neutrino.core.util; import fun.asgc.neutrino.core.annotation.Component; -import fun.asgc.neutrino.core.bean.BeanFactory; -import fun.asgc.neutrino.core.bean.BeanFactoryAware; +import fun.asgc.neutrino.core.bean.factory.BeanFactory; +import fun.asgc.neutrino.core.bean.factory.BeanFactoryAware; import fun.asgc.neutrino.core.bean.BeanIdentity; import fun.asgc.neutrino.core.exception.BeanException; import lombok.extern.slf4j.Slf4j; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java index 38479c8d..7b1fd2f7 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebApplicationContext.java @@ -23,7 +23,7 @@ package fun.asgc.neutrino.core.web.context; import com.google.common.collect.Sets; import fun.asgc.neutrino.core.annotation.*; -import fun.asgc.neutrino.core.bean.SimpleBeanFactory; +import fun.asgc.neutrino.core.bean.factory.SimpleBeanFactory; import fun.asgc.neutrino.core.context.ApplicationContext; import fun.asgc.neutrino.core.context.ApplicationRunner; import fun.asgc.neutrino.core.web.HttpRequestHandler; diff --git a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java index a5231add..fb1e21a0 100644 --- a/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java +++ b/neutrino-core/src/main/java/fun/asgc/neutrino/core/web/context/WebContextHolder.java @@ -26,7 +26,7 @@ import fun.asgc.neutrino.core.annotation.Component; import fun.asgc.neutrino.core.annotation.Init; import fun.asgc.neutrino.core.annotation.NonIntercept; import fun.asgc.neutrino.core.bean.BeanWrapper; -import fun.asgc.neutrino.core.bean.SimpleBeanFactory; +import fun.asgc.neutrino.core.bean.factory.SimpleBeanFactory; import fun.asgc.neutrino.core.context.ApplicationConfig; import fun.asgc.neutrino.core.util.*; import fun.asgc.neutrino.core.web.annotation.RestController; diff --git a/neutrino-core/src/test/java/fun/asgc/neutrino/core/bean/test1/Launcher.java b/neutrino-core/src/test/java/fun/asgc/neutrino/core/bean/test1/Launcher.java index c0579700..a0aa7f36 100644 --- a/neutrino-core/src/test/java/fun/asgc/neutrino/core/bean/test1/Launcher.java +++ b/neutrino-core/src/test/java/fun/asgc/neutrino/core/bean/test1/Launcher.java @@ -24,7 +24,7 @@ package fun.asgc.neutrino.core.bean.test1; import fun.asgc.neutrino.core.annotation.*; import fun.asgc.neutrino.core.base.GlobalConfig; import fun.asgc.neutrino.core.bean.BeanMatchMode; -import fun.asgc.neutrino.core.bean.SimpleBeanFactory; +import fun.asgc.neutrino.core.bean.factory.SimpleBeanFactory; import fun.asgc.neutrino.core.context.NeutrinoLauncher; import java.util.List; diff --git a/neutrino-proxy-admin/src/api/jobInfo.js b/neutrino-proxy-admin/src/api/jobInfo.js new file mode 100644 index 00000000..961935b9 --- /dev/null +++ b/neutrino-proxy-admin/src/api/jobInfo.js @@ -0,0 +1,36 @@ +import request from '@/utils/request' + +export function fetchList(query) { + return request({ + url: '/job-info/page', + method: 'get', + params: query + }) +} + +export function updateEnableStatus(id, enable) { + return request({ + url: '/job-info/update/enable-status', + method: 'post', + data: { + id: id, + enable: enable + } + }) +} + +export function execute(data) { + return request({ + url: '/job-info/execute', + method: 'post', + data: data + }) +} + +export function updateJobInfo(data) { + return request({ + url: '/job-info/update', + method: 'post', + data: data + }) +} diff --git a/neutrino-proxy-admin/src/components/GithubCorner/index.vue b/neutrino-proxy-admin/src/components/GithubCorner/index.vue index 8f09e9de..e8b10aa1 100644 --- a/neutrino-proxy-admin/src/components/GithubCorner/index.vue +++ b/neutrino-proxy-admin/src/components/GithubCorner/index.vue @@ -1,5 +1,5 @@