3
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								pom.xml
									
									
									
									
									
								
							@@ -3,7 +3,7 @@
 | 
				
			|||||||
    <modelVersion>4.0.0</modelVersion>
 | 
					    <modelVersion>4.0.0</modelVersion>
 | 
				
			||||||
    <groupId>pw.yumc</groupId>
 | 
					    <groupId>pw.yumc</groupId>
 | 
				
			||||||
    <artifactId>MiaoScript</artifactId>
 | 
					    <artifactId>MiaoScript</artifactId>
 | 
				
			||||||
    <version>0.9.6</version>
 | 
					    <version>0.9.7</version>
 | 
				
			||||||
    <developers>
 | 
					    <developers>
 | 
				
			||||||
        <developer>
 | 
					        <developer>
 | 
				
			||||||
            <id>502647092</id>
 | 
					            <id>502647092</id>
 | 
				
			||||||
@@ -54,6 +54,7 @@
 | 
				
			|||||||
    <properties>
 | 
					    <properties>
 | 
				
			||||||
        <env.GIT_COMMIT>DEV</env.GIT_COMMIT>
 | 
					        <env.GIT_COMMIT>DEV</env.GIT_COMMIT>
 | 
				
			||||||
        <update.changes>
 | 
					        <update.changes>
 | 
				
			||||||
 | 
					            §620-12-07 §afix: 修复 Windows 环境 重载异常;
 | 
				
			||||||
            §620-11-19 §afeat: 新增 JavaScriptTask 类;
 | 
					            §620-11-19 §afeat: 新增 JavaScriptTask 类;
 | 
				
			||||||
            §620-11-11 §afeat: 新增 package 版本锁定逻辑;
 | 
					            §620-11-11 §afeat: 新增 package 版本锁定逻辑;
 | 
				
			||||||
            §620-09-21 §afeat: 完善 upgrade 逻辑;
 | 
					            §620-09-21 §afeat: 完善 upgrade 逻辑;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,12 +13,14 @@ import java.nio.file.Paths;
 | 
				
			|||||||
 * @author 喵♂呜 Created on 2017/10/25 21:01.
 | 
					 * @author 喵♂呜 Created on 2017/10/25 21:01.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
public class ScriptEngine {
 | 
					public class ScriptEngine {
 | 
				
			||||||
    private final String root;
 | 
					    private final ClassLoader loader;
 | 
				
			||||||
    private final Object logger;
 | 
					    private final Object logger;
 | 
				
			||||||
 | 
					    private final String root;
 | 
				
			||||||
    private final Base base;
 | 
					    private final Base base;
 | 
				
			||||||
    private MiaoScriptEngine engine;
 | 
					    private MiaoScriptEngine engine;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ScriptEngine(String root, Object logger, Object instance) {
 | 
					    public ScriptEngine(String root, Object logger, Object instance) {
 | 
				
			||||||
 | 
					        this.loader = Thread.currentThread().getContextClassLoader();
 | 
				
			||||||
        this.root = root;
 | 
					        this.root = root;
 | 
				
			||||||
        this.logger = logger;
 | 
					        this.logger = logger;
 | 
				
			||||||
        this.base = new Base(instance);
 | 
					        this.base = new Base(instance);
 | 
				
			||||||
@@ -38,6 +40,8 @@ public class ScriptEngine {
 | 
				
			|||||||
    @SneakyThrows
 | 
					    @SneakyThrows
 | 
				
			||||||
    public void enableEngine() {
 | 
					    public void enableEngine() {
 | 
				
			||||||
        createEngine();
 | 
					        createEngine();
 | 
				
			||||||
 | 
					        ClassLoader originLoader = Thread.currentThread().getContextClassLoader();
 | 
				
			||||||
 | 
					        Thread.currentThread().setContextClassLoader(this.loader);
 | 
				
			||||||
        Path bios = Paths.get(root, "bios.js");
 | 
					        Path bios = Paths.get(root, "bios.js");
 | 
				
			||||||
        // 如果存在自定义bios就加载自定义的
 | 
					        // 如果存在自定义bios就加载自定义的
 | 
				
			||||||
        if (Files.exists(bios)) {
 | 
					        if (Files.exists(bios)) {
 | 
				
			||||||
@@ -46,6 +50,7 @@ public class ScriptEngine {
 | 
				
			|||||||
            this.engine.eval("load('classpath:bios.js')");
 | 
					            this.engine.eval("load('classpath:bios.js')");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        engine.invokeFunction("boot", root, logger);
 | 
					        engine.invokeFunction("boot", root, logger);
 | 
				
			||||||
 | 
					        Thread.currentThread().setContextClassLoader(originLoader);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @SneakyThrows
 | 
					    @SneakyThrows
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user