فهرست منبع

启动脚本新增initialize

zhouhao 7 سال پیش
والد
کامیت
3d6f071b8e

+ 1 - 0
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/init/DependencyInstaller.java

@@ -41,4 +41,5 @@ public interface DependencyInstaller {
 
     DependencyInstaller onUninstall(InstallerCallBack callBack);
 
+    DependencyInstaller onInitialize(InitializeCallBack initializeCallBack);
 }

+ 12 - 0
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/init/InitializeCallBack.java

@@ -0,0 +1,12 @@
+package org.hswebframework.web.starter.init;
+
+import java.util.Map;
+
+/**
+ * TODO 完成注释
+ *
+ * @author zhouhao
+ */
+public interface InitializeCallBack {
+    void execute(Map<String, Object> context);
+}

+ 10 - 2
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/init/SystemInitialize.java

@@ -74,18 +74,26 @@ public class SystemInitialize {
     }
 
     protected void doInstall() {
+        List<SimpleDependencyInstaller> doInitializeDep = new ArrayList<>();
         List<SystemVersion.Dependency> installedDependencies =
                 readyToInstall.stream().map(installer -> {
                     SystemVersion.Dependency dependency = installer.getDependency();
                     SystemVersion.Dependency installed = getInstalledDependency(dependency.getGroupId(), dependency.getArtifactId());
                     //安装依赖
-                    if (installed == null)
+                    if (installed == null) {
+                        doInitializeDep.add(installer);
                         installer.doInstall(getScriptContext());
+                    }
                     //更新依赖
-                    if (installed == null || installed.compareTo(dependency) > 0)
+                    if (installed == null || installed.compareTo(dependency) > 0) {
                         installer.doUpgrade(getScriptContext(), installed);
+                    }
                     return dependency;
                 }).collect(Collectors.toList());
+
+        for (SimpleDependencyInstaller installer : doInitializeDep) {
+            installer.doInitialize(getScriptContext());
+        }
         targetVersion.setDependencies(installedDependencies);
     }
 

+ 17 - 0
hsweb-starter/hsweb-spring-boot-starter/src/main/java/org/hswebframework/web/starter/init/simple/SimpleDependencyInstaller.java

@@ -2,6 +2,7 @@ package org.hswebframework.web.starter.init.simple;
 
 import org.hswebframework.web.starter.SystemVersion;
 import org.hswebframework.web.starter.init.DependencyInstaller;
+import org.hswebframework.web.starter.init.InitializeCallBack;
 import org.hswebframework.web.starter.init.InstallerCallBack;
 import org.hswebframework.web.starter.init.UpgradeCallBack;
 import org.slf4j.Logger;
@@ -19,6 +20,7 @@ public class SimpleDependencyInstaller implements DependencyInstaller {
     InstallerCallBack        installer;
     UpgradeCallBack          upgrader;
     InstallerCallBack        unInstaller;
+    InitializeCallBack       initializer;
     private Logger logger = LoggerFactory.getLogger(this.getClass());
 
     public SimpleDependencyInstaller() {
@@ -37,6 +39,15 @@ public class SimpleDependencyInstaller implements DependencyInstaller {
         }
     }
 
+    public void doInitialize(Map<String, Object> context) {
+        if (initializer != null) {
+            if (logger.isInfoEnabled()) {
+                logger.info("initialize [{}/{}] version {} {}", dependency.getGroupId(), dependency.getArtifactId(), dependency.versionToString(), dependency.getWebsite());
+            }
+            initializer.execute(context);
+        }
+    }
+
     public void doUnInstall(Map<String, Object> context) {
         if (unInstaller != null) installer.execute(context);
     }
@@ -71,4 +82,10 @@ public class SimpleDependencyInstaller implements DependencyInstaller {
         this.unInstaller = callBack;
         return this;
     }
+
+    @Override
+    public DependencyInstaller onInitialize(InitializeCallBack initializeCallBack) {
+        this.initializer = initializeCallBack;
+        return this;
+    }
 }

+ 3 - 1
hsweb-starter/hsweb-spring-boot-starter/src/test/resources/hsweb-starter.js

@@ -65,4 +65,6 @@ dependency.setup(info)
     })
     .onUninstall(function (context) { //卸载时执行
 
-    });
+    }).onInitialize(function (context) {
+    java.lang.System.out.println("初始化啦");
+});