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

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


The following commit(s) were added to refs/heads/dev by this push:
     new cdef7485b [Improve] mvnw check maven-wrapper.jar improvement (#3372)
cdef7485b is described below

commit cdef7485ba822a53de77e9992d4dcc50aa34aff7
Author: benjobs <[email protected]>
AuthorDate: Thu Dec 7 14:17:07 2023 +0800

    [Improve] mvnw check maven-wrapper.jar improvement (#3372)
    
    * [Improve] mvnw check maven-wrapper.jar improvement
    
    * [Improve] MavenWrapperHelper getFileMd5 method minor improvement
    
    * [Improve] FE get dependency latest value improvement
    
    ---------
    
    Co-authored-by: benjobs <[email protected]>
---
 .mvn/wrapper/MavenWrapperHelper.java               | 137 ++++++++++++---------
 .mvn/wrapper/maven-wrapper.properties              |   1 +
 build.sh                                           |  20 ---
 mvnw                                               | 129 +++++++++++--------
 .../src/main/assembly/bin/mvnw                     | 129 +++++++++++--------
 .../streampark/console/core/entity/Project.java    |  27 ++--
 .../src/views/flink/app/EditStreamPark.vue         |   4 +-
 .../src/views/flink/app/components/Dependency.vue  |   5 +-
 .../resource/upload/components/UploadDrawer.vue    |   2 +-
 9 files changed, 251 insertions(+), 203 deletions(-)

diff --git a/.mvn/wrapper/MavenWrapperHelper.java 
b/.mvn/wrapper/MavenWrapperHelper.java
index da55d396e..428fa81ff 100644
--- a/.mvn/wrapper/MavenWrapperHelper.java
+++ b/.mvn/wrapper/MavenWrapperHelper.java
@@ -15,6 +15,8 @@
  * limitations under the License.
  */
 
+import java.io.File;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.Authenticator;
@@ -24,75 +26,98 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.nio.file.StandardCopyOption;
+import java.security.MessageDigest;
 import java.util.Arrays;
-import java.util.jar.JarFile;
+import java.util.Properties;
 
 public final class MavenWrapperHelper {
 
-  private static final String WRAPPER_VERSION = "3.2.0";
+    private static final String WRAPPER_VERSION = "3.2.0";
 
-  private static final boolean VERBOSE = 
Boolean.parseBoolean(System.getenv("MVNW_VERBOSE"));
+    private static final boolean VERBOSE = 
Boolean.parseBoolean(System.getenv("MVNW_VERBOSE"));
 
-  public static void main(String[] args) {
-    String action = args[0].toLowerCase();
-    String[] actionArgs = Arrays.copyOfRange(args, 1, args.length);
-    switch (action) {
-      case "download":
-        log("Apache Maven Wrapper Downloader " + WRAPPER_VERSION);
-        if (actionArgs.length != 2) {
-          System.err.println(" - ERROR wrapperUrl or wrapperJarPath parameter 
missing");
-          System.exit(1);
+    public static void main(String[] args) throws Exception {
+        String action = args[0].toLowerCase();
+        String[] actionArgs = Arrays.copyOfRange(args, 1, args.length);
+        switch (action) {
+            case "download":
+                log("Apache Maven Wrapper Downloader " + WRAPPER_VERSION);
+                if (actionArgs.length != 2) {
+                    System.err.println(" - ERROR wrapperUrl or wrapperJarPath 
parameter missing");
+                    System.exit(1);
+                }
+                try {
+                    log(" - Downloader started");
+                    final URL wrapperUrl = new URL(actionArgs[0]);
+                    final String jarPath = actionArgs[1].replace("src/main", 
""); // Sanitize path
+                    final Path wrapperJarPath = 
Paths.get(jarPath).toAbsolutePath().normalize();
+                    downloadFileFromURL(wrapperUrl, wrapperJarPath);
+                    log("Done");
+                } catch (IOException e) {
+                    System.err.println("- Error downloading: " + 
e.getMessage());
+                    if (VERBOSE) {
+                        e.printStackTrace();
+                    }
+                    System.exit(1);
+                }
+                break;
+            case "verify":
+                String wrapperJar = actionArgs[0];
+                String propertiesPath = actionArgs[1];
+                log("maven-wrapper file checking: " + wrapperJar);
+                Properties properties = new Properties();
+                properties.load(Files.newInputStream(new 
File(propertiesPath).toPath()));
+                String wrapperMd5 = properties.getProperty("wrapperMd5");
+                if (wrapperMd5 == null) {
+                    System.err.println("wrapperMd5 not in " + propertiesPath);
+                    System.exit(1);
+                }
+                String fileMd5 = getFileMd5(wrapperJar);
+                System.exit(wrapperMd5.equals(fileMd5) ? 0 : 1);
+            default:
+                throw new UnsupportedOperationException("Unknown action \"" + 
action + "\".");
         }
-        try {
-          log(" - Downloader started");
-          final URL wrapperUrl = new URL(actionArgs[0]);
-          final String jarPath = actionArgs[1].replace("src/main", ""); // 
Sanitize path
-          final Path wrapperJarPath = 
Paths.get(jarPath).toAbsolutePath().normalize();
-          downloadFileFromURL(wrapperUrl, wrapperJarPath);
-          log("Done");
-        } catch (IOException e) {
-          System.err.println("- Error downloading: " + e.getMessage());
-          if (VERBOSE) {
-            e.printStackTrace();
-          }
-          System.exit(1);
+    }
+
+    private static void downloadFileFromURL(URL wrapperUrl, Path 
wrapperJarPath) throws IOException {
+        log(" - Downloading to: " + wrapperJarPath);
+        if (System.getenv("MVNW_USERNAME") != null && 
System.getenv("MVNW_PASSWORD") != null) {
+            final String username = System.getenv("MVNW_USERNAME");
+            final char[] password = 
System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(
+                new Authenticator() {
+                    @Override
+                    protected PasswordAuthentication 
getPasswordAuthentication() {
+                        return new PasswordAuthentication(username, password);
+                    }
+                });
         }
-        break;
-      case "verify":
-        String wrapperJar = actionArgs[0];
-        log("maven-wrapper file checking: " + wrapperJar);
-        try (JarFile ignored = new JarFile(wrapperJar, true)) {
-          System.exit(0);
-        } catch (Exception e) {
-          System.exit(1);
+        try (InputStream inStream = wrapperUrl.openStream()) {
+            Files.copy(inStream, wrapperJarPath, 
StandardCopyOption.REPLACE_EXISTING);
         }
-      default:
-        throw new UnsupportedOperationException("Unknown action \"" + action + 
"\".");
+        log(" - Downloader complete");
     }
-  }
 
-  private static void downloadFileFromURL(URL wrapperUrl, Path wrapperJarPath) 
throws IOException {
-    log(" - Downloading to: " + wrapperJarPath);
-    if (System.getenv("MVNW_USERNAME") != null && 
System.getenv("MVNW_PASSWORD") != null) {
-      final String username = System.getenv("MVNW_USERNAME");
-      final char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
-      Authenticator.setDefault(
-          new Authenticator() {
-            @Override
-            protected PasswordAuthentication getPasswordAuthentication() {
-              return new PasswordAuthentication(username, password);
+    private static String getFileMd5(String path) throws Exception {
+        MessageDigest md5 = MessageDigest.getInstance("MD5");
+        try (FileInputStream inputStream = new FileInputStream(path)) {
+            byte[] buffer = new byte[1024];
+            int len;
+            while ((len = inputStream.read(buffer)) != -1) {
+                md5.update(buffer, 0, len);
             }
-          });
-    }
-    try (InputStream inStream = wrapperUrl.openStream()) {
-      Files.copy(inStream, wrapperJarPath, 
StandardCopyOption.REPLACE_EXISTING);
+            byte[] byteArray = md5.digest();
+            StringBuilder sb = new StringBuilder();
+            for (byte b : byteArray) {
+                sb.append(String.format("%02x", b));
+            }
+            return sb.toString();
+        }
     }
-    log(" - Downloader complete");
-  }
 
-  private static void log(String msg) {
-    if (VERBOSE) {
-      System.out.println(msg);
+    private static void log(String msg) {
+        if (VERBOSE) {
+            System.out.println(msg);
+        }
     }
-  }
 }
diff --git a/.mvn/wrapper/maven-wrapper.properties 
b/.mvn/wrapper/maven-wrapper.properties
index fde9af104..e42c9fef2 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -17,3 +17,4 @@
 
 
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
 
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
+wrapperMd5=6058337c6ed4603858c3b72f754efa9b
diff --git a/build.sh b/build.sh
index cad35d8ee..853cea1ba 100755
--- a/build.sh
+++ b/build.sh
@@ -179,26 +179,6 @@ build() {
       printf '\n'
       echo_g """StreamPark project build successful!
       dist: $(cd "$PRG_DIR" &>/dev/null && pwd)/dist\n"""
-    else
-      javaSource="$PRG_DIR/.mvn/wrapper/MavenWrapperHelper.java"
-      javaClass="$PRG_DIR/.mvn/wrapper/MavenWrapperHelper.class"
-      wrapperJarPath="$PRG_DIR/.mvn/wrapper/maven-wrapper.jar"
-      # For Cygwin, switch paths to Windows format before running javac
-      if $cygwin; then
-        javaSource=$(cygpath --path --windows "$javaSource")
-        javaClass=$(cygpath --path --windows "$javaClass")
-      fi
-      if [ -e "$javaSource" ]; then
-        [ ! -e "$javaClass" ] && ("$JAVA_HOME/bin/javac" "$javaSource")
-        if [ -e "$javaClass" ]; then
-          ("$JAVA_HOME/bin/java" -cp "$PRG_DIR/.mvn/wrapper" 
MavenWrapperHelper "verify" "$wrapperJarPath")
-          if [ $? -eq 1 ]; then
-            echo_r "Error: $wrapperJarPath is invalid. retry download it and 
build project again..."
-            rm -f $wrapperJarPath
-            build
-          fi
-        fi
-      fi
     fi
   else
     echo_r "permission denied: $PRG_DIR/mvnw, please check."
diff --git a/mvnw b/mvnw
index 916dee8a3..9a7fa3704 100755
--- a/mvnw
+++ b/mvnw
@@ -188,64 +188,87 @@ log "$MAVEN_PROJECTBASEDIR"
 # This allows using the maven wrapper in projects that prohibit checking in 
binary data.
 
##########################################################################################
 wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
+javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java"
+javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class"
+wrapperProperties="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+# For Cygwin, switch paths to Windows format before running javac
+if $cygwin; then
+  javaSource=$(cygpath --path --windows "$javaSource")
+  javaClass=$(cygpath --path --windows "$javaClass")
+fi
+
+if [ ! -e "$javaSource" ]; then
+  error "ERROR: $javaSource not exists."
+  exit 1
+fi
+
+if [ ! -e "$javaClass" ]; then
+  log " - Compiling $javaClass starting ..."
+  ("$JAVA_HOME/bin/javac" "$javaSource")
+fi
+
 if [ -r "$wrapperJarPath" ]; then
-    log "Found $wrapperJarPath"
-else
-    log "Couldn't find $wrapperJarPath, downloading it ..."
+  log "Found $wrapperJarPath"
+  log "Check found $wrapperJarPath starting"
+  ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties")
+  if [ $? -eq 1 ]; then
+    echo "WARN: Check found $wrapperJarPath invalided."
+    rm -f $wrapperJarPath
+  fi
+fi
 
-    if [ -n "$MVNW_REPOURL" ]; then
-      
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+if [ ! -e "$wrapperJarPath" ]; then
+  log " - downloading wrapperJar ..."
+  if [ -n "$MVNW_REPOURL" ]; then
+    
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+  else
+    
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
+  fi
+  while IFS="=" read -r key value; do
+    # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
+    safeValue=$(echo "$value" | tr -d '\r')
+    case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
+    esac
+  done < $wrapperProperties
+  log "Downloading from: $wrapperUrl"
+
+  if $cygwin; then
+    wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
+  fi
+
+  if command -v wget > /dev/null; then
+    log "Found wget ... using wget"
+    [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
+    if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+      wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
     else
-      
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
+      wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
     fi
-    while IFS="=" read -r key value; do
-      # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
-      safeValue=$(echo "$value" | tr -d '\r')
-      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
-      esac
-    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-    log "Downloading from: $wrapperUrl"
-
-    if $cygwin; then
-      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
-    fi
-
-    if command -v wget > /dev/null; then
-        log "Found wget ... using wget"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        else
-            wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        log "Found curl ... using curl"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
-        else
-            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o 
"$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
-        fi
+  elif command -v curl > /dev/null; then
+    log "Found curl ... using curl"
+    [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
+    if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+      curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
     else
-        log "Falling back to using Java to download"
-        javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java"
-        javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaSource=$(cygpath --path --windows "$javaSource")
-          javaClass=$(cygpath --path --windows "$javaClass")
-        fi
-        if [ -e "$javaSource" ]; then
-            if [ ! -e "$javaClass" ]; then
-                log " - Compiling MavenWrapperHelper.java ..."
-                ("$JAVA_HOME/bin/javac" "$javaSource")
-            fi
-            if [ -e "$javaClass" ]; then
-                log " - Running MavenWrapperHelper.java ..."
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperHelper 
"download" "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
-            fi
-        fi
+      curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" 
"$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
     fi
+  else
+    log "Falling back to using Java to download"
+    log " - Running MavenWrapperHelper.java ..."
+    ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath")
+    if [ $? -ne 0 ]; then
+      rm -f "$wrapperJarPath"
+      echo "ERROR: download wrapperJar by Java failed, please retry"
+      exit 1;
+    fi
+  fi
+
+  log "Check $wrapperJarPath."
+  ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties")
+  if [ $? -eq 1 ]; then
+    echo "ERROR: Check $wrapperJarPath invalided, please retry"
+    exit 1
+  fi
 fi
 
##########################################################################################
 # End of extension
@@ -256,7 +279,7 @@ wrapperSha256Sum=""
 while IFS="=" read -r key value; do
   case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
   esac
-done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+done < $wrapperProperties
 if [ -n "$wrapperSha256Sum" ]; then
   wrapperSha256Result=false
   if command -v sha256sum > /dev/null; then
diff --git 
a/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw 
b/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw
index 916dee8a3..9a7fa3704 100755
--- a/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw
+++ b/streampark-console/streampark-console-service/src/main/assembly/bin/mvnw
@@ -188,64 +188,87 @@ log "$MAVEN_PROJECTBASEDIR"
 # This allows using the maven wrapper in projects that prohibit checking in 
binary data.
 
##########################################################################################
 wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
+javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java"
+javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class"
+wrapperProperties="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+# For Cygwin, switch paths to Windows format before running javac
+if $cygwin; then
+  javaSource=$(cygpath --path --windows "$javaSource")
+  javaClass=$(cygpath --path --windows "$javaClass")
+fi
+
+if [ ! -e "$javaSource" ]; then
+  error "ERROR: $javaSource not exists."
+  exit 1
+fi
+
+if [ ! -e "$javaClass" ]; then
+  log " - Compiling $javaClass starting ..."
+  ("$JAVA_HOME/bin/javac" "$javaSource")
+fi
+
 if [ -r "$wrapperJarPath" ]; then
-    log "Found $wrapperJarPath"
-else
-    log "Couldn't find $wrapperJarPath, downloading it ..."
+  log "Found $wrapperJarPath"
+  log "Check found $wrapperJarPath starting"
+  ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties")
+  if [ $? -eq 1 ]; then
+    echo "WARN: Check found $wrapperJarPath invalided."
+    rm -f $wrapperJarPath
+  fi
+fi
 
-    if [ -n "$MVNW_REPOURL" ]; then
-      
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+if [ ! -e "$wrapperJarPath" ]; then
+  log " - downloading wrapperJar ..."
+  if [ -n "$MVNW_REPOURL" ]; then
+    
wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+  else
+    
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
+  fi
+  while IFS="=" read -r key value; do
+    # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
+    safeValue=$(echo "$value" | tr -d '\r')
+    case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
+    esac
+  done < $wrapperProperties
+  log "Downloading from: $wrapperUrl"
+
+  if $cygwin; then
+    wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
+  fi
+
+  if command -v wget > /dev/null; then
+    log "Found wget ... using wget"
+    [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
+    if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+      wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
     else
-      
wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar";
+      wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
     fi
-    while IFS="=" read -r key value; do
-      # Remove '\r' from value to allow usage on windows as IFS does not 
consider '\r' as a separator ( considers space, tab, new line ('\n'), and 
custom '=' )
-      safeValue=$(echo "$value" | tr -d '\r')
-      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
-      esac
-    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
-    log "Downloading from: $wrapperUrl"
-
-    if $cygwin; then
-      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
-    fi
-
-    if command -v wget > /dev/null; then
-        log "Found wget ... using wget"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        else
-            wget $QUIET --http-user="$MVNW_USERNAME" 
--http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f 
"$wrapperJarPath"
-        fi
-    elif command -v curl > /dev/null; then
-        log "Found curl ... using curl"
-        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
-        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
-            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
-        else
-            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o 
"$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
-        fi
+  elif command -v curl > /dev/null; then
+    log "Found curl ... using curl"
+    [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
+    if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+      curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f 
"$wrapperJarPath"
     else
-        log "Falling back to using Java to download"
-        javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.java"
-        javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperHelper.class"
-        # For Cygwin, switch paths to Windows format before running javac
-        if $cygwin; then
-          javaSource=$(cygpath --path --windows "$javaSource")
-          javaClass=$(cygpath --path --windows "$javaClass")
-        fi
-        if [ -e "$javaSource" ]; then
-            if [ ! -e "$javaClass" ]; then
-                log " - Compiling MavenWrapperHelper.java ..."
-                ("$JAVA_HOME/bin/javac" "$javaSource")
-            fi
-            if [ -e "$javaClass" ]; then
-                log " - Running MavenWrapperHelper.java ..."
-                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperHelper 
"download" "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
-            fi
-        fi
+      curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" 
"$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
     fi
+  else
+    log "Falling back to using Java to download"
+    log " - Running MavenWrapperHelper.java ..."
+    ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "download" "$wrapperUrl" "$wrapperJarPath")
+    if [ $? -ne 0 ]; then
+      rm -f "$wrapperJarPath"
+      echo "ERROR: download wrapperJar by Java failed, please retry"
+      exit 1;
+    fi
+  fi
+
+  log "Check $wrapperJarPath."
+  ("$JAVA_HOME/bin/java" -cp "$MAVEN_PROJECTBASEDIR/.mvn/wrapper" 
MavenWrapperHelper "verify" "$wrapperJarPath" "$wrapperProperties")
+  if [ $? -eq 1 ]; then
+    echo "ERROR: Check $wrapperJarPath invalided, please retry"
+    exit 1
+  fi
 fi
 
##########################################################################################
 # End of extension
@@ -256,7 +279,7 @@ wrapperSha256Sum=""
 while IFS="=" read -r key value; do
   case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
   esac
-done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+done < $wrapperProperties
 if [ -n "$wrapperSha256Sum" ]; then
   wrapperSha256Result=false
   if command -v sha256sum > /dev/null; then
diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
index f4f6637a5..882d94f19 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Project.java
@@ -46,7 +46,6 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.jar.JarFile;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -187,24 +186,20 @@ public class Project implements Serializable {
 
   @JsonIgnore
   public String getMavenArgs() {
-    String mvn = "mvn";
     boolean windows = Utils.isWindows();
+    String mvn = windows ? "mvn.cmd" : "mvn";
+
+    String mavenHome = System.getenv("M2_HOME");
+    if (mavenHome == null) {
+      mavenHome = System.getenv("MAVEN_HOME");
+    }
+    if (mavenHome != null) {
+      mvn = mavenHome + "/bin/" + mvn;
+    }
+
     try {
-      if (windows) {
-        CommandUtils.execute("mvn.cmd --version");
-      } else {
-        CommandUtils.execute("mvn --version");
-      }
+      CommandUtils.execute(mvn + " --version");
     } catch (Exception e) {
-      File wrapperJar = new 
File(WebUtils.getAppHome().concat("/.mvn/wrapper/maven-wrapper.jar"));
-      if (wrapperJar.exists()) {
-        try {
-          JarFile jarFile = new JarFile(wrapperJar, true);
-          jarFile.close();
-        } catch (Exception ignored) {
-          FileUtils.deleteQuietly(wrapperJar);
-        }
-      }
       if (windows) {
         mvn = WebUtils.getAppHome().concat("/bin/mvnw.cmd");
       } else {
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
index 8857d1ad9..6231939a6 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/EditStreamPark.vue
@@ -176,10 +176,10 @@
     }
   }
 
-  function handleSubmitSQL(values: Recordable) {
+  async function handleSubmitSQL(values: Recordable) {
     try {
       // Trigger a pom confirmation operation.
-      unref(dependencyRef)?.handleApplyPom();
+      await unref(dependencyRef)?.handleApplyPom();
       // common params...
       const dependency: { pom?: string; jar?: string } = {};
       const dependencyRecords = unref(dependencyRef)?.dependencyRecords;
diff --git 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue
 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue
index a93a01eec..575ae643e 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/flink/app/components/Dependency.vue
@@ -74,7 +74,7 @@
   const { t } = useI18n();
   const defaultValue = '';
   const { Swal } = useMessage();
-  const { onChange, setContent } = useMonaco(pomBox, {
+  const { onChange, setContent, getContent } = useMonaco(pomBox, {
     language: 'xml',
     code: props.value || defaultValue,
     options: {
@@ -99,7 +99,8 @@
     const classifierExp = /<classifier>([\s\S]*?)<\/classifier>/;
     const exclusionsExp = /<exclusions>([\s\S]*?)<\/exclusions>/;
     const invalidArtifact: Array<string> = [];
-    props.value
+    const propsValue = await getContent();
+    propsValue
       .split('</dependency>')
       .filter((x) => x.replace(/\\s+/, '') !== '')
       .forEach((dep) => {
diff --git 
a/streampark-console/streampark-console-webapp/src/views/resource/upload/components/UploadDrawer.vue
 
b/streampark-console/streampark-console-webapp/src/views/resource/upload/components/UploadDrawer.vue
index ffaf58507..9adb62d11 100644
--- 
a/streampark-console/streampark-console-webapp/src/views/resource/upload/components/UploadDrawer.vue
+++ 
b/streampark-console/streampark-console-webapp/src/views/resource/upload/components/UploadDrawer.vue
@@ -185,7 +185,7 @@
         resourceJson = JSON.stringify(values.resourceGroup);
       } else {
         const resource: { pom?: string; jar?: string } = {};
-        unref(resourceRef).handleApplyPom();
+        await unref(resourceRef).handleApplyPom();
         const dependencyRecords = unref(resourceRef)?.dependencyRecords;
         const uploadJars = unref(resourceRef)?.uploadJars;
         if (unref(dependencyRecords) && unref(dependencyRecords).length > 0) {

Reply via email to