This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.3.1
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git


The following commit(s) were added to refs/heads/dev-1.3.1 by this push:
     new ebc4acef5 Feature bml refresh api support force parameter (#3895)
ebc4acef5 is described below

commit ebc4acef5b5ab53e0330b277fe70c6940d0a92c8
Author: Casion <[email protected]>
AuthorDate: Fri Nov 25 21:21:23 2022 +0800

    Feature bml refresh api support force parameter (#3895)
    
    * update bml engineplugin api
    
    * update bml engineplugin api
    
    * format code
---
 .../server/restful/EnginePluginRestful.java        | 32 +++++++-----
 .../service/DefaultEngineConnResourceService.scala | 57 +++++++++++++---------
 .../server/service/EngineConnResourceService.scala | 10 +++-
 3 files changed, 62 insertions(+), 37 deletions(-)

diff --git 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
index ab2b280a7..ab37d77b2 100644
--- 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
+++ 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/java/org/apache/linkis/engineplugin/server/restful/EnginePluginRestful.java
@@ -27,6 +27,8 @@ import org.apache.linkis.engineplugin.vo.EnginePluginBMLVo;
 import org.apache.linkis.server.Message;
 import org.apache.linkis.server.utils.ModuleUserUtils;
 
+import org.apache.commons.lang3.StringUtils;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -157,11 +159,13 @@ public class EnginePluginRestful {
       @RequestParam("file") MultipartFile file,
       @RequestParam(value = "ecType") String ecType,
       @RequestParam(value = "version") String version,
+      @RequestParam(value = "force", required = false, defaultValue = "false") 
Boolean force,
       HttpServletRequest req) {
-    if (ecType.isEmpty() || ecType.length() == 0 || ecType.equals("null")) {
-      return Message.error("ecType is not null");
-    } else if (version.isEmpty() || version.length() == 0 || 
version.equals("null")) {
-      return Message.error("version is not null");
+
+    if (StringUtils.isNotBlank(ecType)) {
+      return Message.error("ecType cannot be null");
+    } else if (StringUtils.isNotBlank(version)) {
+      return Message.error("version cannot be null");
     }
     file.getOriginalFilename().toLowerCase().endsWith(".zip");
     if (file.getOriginalFilename().toLowerCase().endsWith(".zip")) {
@@ -174,17 +178,17 @@ public class EnginePluginRestful {
               new RefreshEngineConnResourceRequest();
           refreshEngineConnResourceRequest.setEngineConnType(ecType);
           refreshEngineConnResourceRequest.setVersion(version);
-          engineConnResourceService.refresh(refreshEngineConnResourceRequest);
+          engineConnResourceService.refresh(refreshEngineConnResourceRequest, 
force);
         } catch (Exception e) {
           return Message.error(e.getMessage());
         }
         log.info("{} finished to update enginePlugin {} {}", username, ecType, 
version);
-        return Message.ok().data("mes", "upload file success");
+        return Message.ok().data("msg", "upload file success");
       } else {
         return Message.error("Only administrators can operate");
       }
     } else {
-      return Message.error("Only suppose zip format file");
+      return Message.error("Only support zip format file");
     }
   }
 
@@ -231,7 +235,7 @@ public class EnginePluginRestful {
         } catch (Exception e) {
           return Message.error(e.getMessage());
         }
-        engineConnResourceService.refreshAll(true);
+        engineConnResourceService.refreshAll(true, false);
         log.info("{} finished to upload enginePlugin", username);
         return Message.ok().data("mes", "upload file success");
       } else {
@@ -271,11 +275,13 @@ public class EnginePluginRestful {
       notes = "refresh all engineconn resource",
       response = Message.class)
   @RequestMapping(path = "/refreshAll", method = RequestMethod.GET)
-  public Message refreshAll(HttpServletRequest req) {
+  public Message refreshAll(
+      HttpServletRequest req,
+      @RequestParam(value = "force", required = false, defaultValue = "false") 
Boolean force) {
     String username = ModuleUserUtils.getOperationUser(req, "refreshAll");
     if (Configuration.isAdmin(username)) {
       log.info("{} start to refresh all ec resource", username);
-      engineConnResourceService.refreshAll(true);
+      engineConnResourceService.refreshAll(true, force);
       log.info("{} finished to refresh all ec resource", username);
       return Message.ok().data("msg", "Refresh successfully");
     } else {
@@ -291,7 +297,8 @@ public class EnginePluginRestful {
   public Message refreshOne(
       HttpServletRequest req,
       @RequestParam(value = "ecType") String ecType,
-      @RequestParam(value = "version", required = false) String version) {
+      @RequestParam(value = "version", required = false) String version,
+      @RequestParam(value = "force", required = false, defaultValue = "false") 
Boolean force) {
     String username = ModuleUserUtils.getOperationUser(req, "refreshOne");
     if (Configuration.isAdmin(username)) {
       log.info("{} start to refresh {} ec resource", username, ecType);
@@ -299,7 +306,8 @@ public class EnginePluginRestful {
           new RefreshEngineConnResourceRequest();
       refreshEngineConnResourceRequest.setEngineConnType(ecType);
       refreshEngineConnResourceRequest.setVersion(version);
-      engineConnResourceService.refresh(refreshEngineConnResourceRequest);
+
+      engineConnResourceService.refresh(refreshEngineConnResourceRequest, 
force);
       log.info("{} finished to refresh {} ec resource", username, ecType);
       return Message.ok().data("msg", "Refresh successfully");
     } else {
diff --git 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
index 63988fac5..3c2c88ea1 100644
--- 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
+++ 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/DefaultEngineConnResourceService.scala
@@ -95,7 +95,7 @@ class DefaultEngineConnResourceService extends 
EngineConnResourceService with Lo
     bmlResource
   }
 
-  override def refreshAll(iswait: Boolean = false): Unit = {
+  override def refreshAll(iswait: Boolean = false, force: Boolean = false): 
Unit = {
     if (!isRefreshing) {
       synchronized {
         if (!isRefreshing) {
@@ -110,7 +110,7 @@ class DefaultEngineConnResourceService extends 
EngineConnResourceService with Lo
                     
engineConnBmlResourceGenerator.generate(engineConnType).foreach {
                       case (version, localize) =>
                         logger.info(s" Try to initialize 
${engineConnType}EngineConn-$version.")
-                        refresh(localize, engineConnType, version)
+                        refresh(localize, engineConnType, version, force)
                     }
                   } { t =>
                     if (
@@ -144,19 +144,22 @@ class DefaultEngineConnResourceService extends 
EngineConnResourceService with Lo
   }
 
   @Receiver
-  override def refresh(engineConnRefreshRequest: 
RefreshEngineConnResourceRequest): Boolean = {
+  override def refresh(
+      engineConnRefreshRequest: RefreshEngineConnResourceRequest,
+      force: Boolean
+  ): Boolean = {
     val engineConnType = engineConnRefreshRequest.getEngineConnType
     val version = engineConnRefreshRequest.getVersion
     if ("*" == version || StringUtils.isEmpty(version)) {
       logger.info(s"Try to refresh all versions of 
${engineConnType}EngineConn.")
       engineConnBmlResourceGenerator.generate(engineConnType).foreach { case 
(v, localize) =>
         logger.info(s"Try to refresh ${engineConnType}EngineConn-$v.")
-        refresh(localize, engineConnType, v)
+        refresh(localize, engineConnType, v, force)
       }
     } else {
       logger.info(s"Try to refresh ${engineConnType}EngineConn-$version.")
       val localize = engineConnBmlResourceGenerator.generate(engineConnType, 
version)
-      refresh(localize, engineConnType, version)
+      refresh(localize, engineConnType, version, force)
     }
     true
   }
@@ -164,7 +167,8 @@ class DefaultEngineConnResourceService extends 
EngineConnResourceService with Lo
   private def refresh(
       localize: Array[EngineConnLocalizeResource],
       engineConnType: String,
-      version: String
+      version: String,
+      force: Boolean = false
   ): Unit = {
     val engineConnBmlResources = asScalaBufferConverter(
       engineConnBmlResourceDao.getAllEngineConnBmlResource(engineConnType, 
version)
@@ -198,25 +202,32 @@ class DefaultEngineConnResourceService extends 
EngineConnResourceService with Lo
         engineConnBmlResource.setLastModified(localizeResource.lastModified)
         engineConnBmlResource.setVersion(version)
         engineConnBmlResourceDao.save(engineConnBmlResource)
-      } else if (
-          resource.exists(r =>
-            r.getFileSize != localizeResource.fileSize || r.getLastModified != 
localizeResource.lastModified
-          )
-      ) {
-        logger.info(
-          s"Ready to upload a refreshed bmlResource for 
${engineConnType}EngineConn-$version. path: " + localizeResource.fileName
-        )
-        val engineConnBmlResource = resource.get
-        val bmlResource = uploadToBml(localizeResource, 
engineConnBmlResource.getBmlResourceId)
-        engineConnBmlResource.setBmlResourceVersion(bmlResource.getVersion)
-        engineConnBmlResource.setLastUpdateTime(new Date)
-        engineConnBmlResource.setFileSize(localizeResource.fileSize)
-        engineConnBmlResource.setLastModified(localizeResource.lastModified)
-        engineConnBmlResourceDao.update(engineConnBmlResource)
       } else {
-        logger.info(
-          s"The file has no change in ${engineConnType}EngineConn-$version, 
path: " + localizeResource.fileName
+        var isChanged = resource.exists(r =>
+          r.getFileSize != localizeResource.fileSize
+            || r.getLastModified != localizeResource.lastModified
         )
+        if (isChanged == true || (isChanged == false && force == true)) {
+          if (isChanged == false && force == true) {
+            logger.info(
+              s"The file has no change in 
${engineConnType}EngineConn-$version, path: " + localizeResource.fileName + ", 
but force to refresh"
+            )
+          }
+          logger.info(
+            s"Ready to upload a refreshed bmlResource for 
${engineConnType}EngineConn-$version. path: " + localizeResource.fileName
+          )
+          val engineConnBmlResource = resource.get
+          val bmlResource = uploadToBml(localizeResource, 
engineConnBmlResource.getBmlResourceId)
+          engineConnBmlResource.setBmlResourceVersion(bmlResource.getVersion)
+          engineConnBmlResource.setLastUpdateTime(new Date)
+          engineConnBmlResource.setFileSize(localizeResource.fileSize)
+          engineConnBmlResource.setLastModified(localizeResource.lastModified)
+          engineConnBmlResourceDao.update(engineConnBmlResource)
+        } else {
+          logger.info(
+            s"The file has no change in ${engineConnType}EngineConn-$version, 
path: " + localizeResource.fileName
+          )
+        }
       }
     }
   }
diff --git 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
index 65fe60686..47042d357 100644
--- 
a/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
+++ 
b/linkis-computation-governance/linkis-engineconn/linkis-engineconn-plugin-server/src/main/scala/org/apache/linkis/engineplugin/server/service/EngineConnResourceService.scala
@@ -28,9 +28,9 @@ abstract class EngineConnResourceService extends 
EngineConnResourceGenerator {
 
   def init(): Unit
 
-  def refreshAll(wait: Boolean): Unit
+  def refreshAll(wait: Boolean, force: Boolean = false): Unit
 
-  def refresh(engineConnRefreshRequest: RefreshEngineConnResourceRequest): 
Boolean
+  def refresh(engineConnRefreshRequest: RefreshEngineConnResourceRequest, 
force: Boolean): Boolean
 
   def getEngineConnBMLResources(
       engineConnBMLResourceRequest: GetEngineConnResourceRequest
@@ -50,6 +50,8 @@ abstract class EngineConnResourceRequest extends 
RequestProtocol with RequestMet
   private var engineConnType: String = _
   private var version: String = _
 
+  private var force: Boolean = false
+
   def getEngineConnType: String = engineConnType
 
   def setEngineConnType(engineConnType: String): Unit = this.engineConnType = 
engineConnType
@@ -57,6 +59,10 @@ abstract class EngineConnResourceRequest extends 
RequestProtocol with RequestMet
   def getVersion: String = version
 
   def setVersion(version: String): Unit = this.version = version
+
+  def getForce: Boolean = force
+
+  def setForce(force: Boolean): Unit = this.force = force
 }
 
 class RefreshEngineConnResourceRequest extends EngineConnResourceRequest {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to