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

kirs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 7dbea92  bug fix (#6381)
7dbea92 is described below

commit 7dbea9218d97364651809104281ba08afb8b9d8a
Author: kyoty <[email protected]>
AuthorDate: Tue Sep 28 12:26:55 2021 +0800

    bug fix (#6381)
    
    The newly introduced spi can't work in windows os.
---
 .../dolphinscheduler/spi/plugin/DolphinPluginDiscovery.java  | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/plugin/DolphinPluginDiscovery.java
 
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/plugin/DolphinPluginDiscovery.java
index 92e6878..c09bf71 100644
--- 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/plugin/DolphinPluginDiscovery.java
+++ 
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/plugin/DolphinPluginDiscovery.java
@@ -36,6 +36,7 @@ import java.nio.file.SimpleFileVisitor;
 import java.nio.file.attribute.BasicFileAttributes;
 import java.util.List;
 import java.util.Set;
+import java.util.StringJoiner;
 import java.util.stream.Collectors;
 
 import org.objectweb.asm.ClassReader;
@@ -49,8 +50,15 @@ import com.google.common.io.ByteStreams;
  * The role of this class is to load the plugin class during development
  */
 final class DolphinPluginDiscovery {
+    // Windows: \target\classes, Unix-like: /target/classes
+    private static final String ARTIFACT_DIR = new 
StringJoiner(File.separator, File.separator, "")
+            .add("target").add("classes").toString();
     private static final String JAVA_CLASS_FILE_SUFFIX = ".class";
-    private static final String PLUGIN_SERVICES_FILE = "META-INF/services/" + 
DolphinSchedulerPlugin.class.getName();
+
+    // Windows: "META-INF\services\" + DolphinSchedulerPlugin.class.getName()
+    // Unix-like: "META-INF/services/" + DolphinSchedulerPlugin.class.getName()
+    private static final String PLUGIN_SERVICES_FILE = 
String.join(File.separator, "META-INF",
+            "services", DolphinSchedulerPlugin.class.getName());
 
     private DolphinPluginDiscovery() {
     }
@@ -62,7 +70,7 @@ final class DolphinPluginDiscovery {
         }
 
         File file = artifact.getFile();
-        if (!file.getPath().endsWith("/target/classes")) {
+        if (!file.getPath().endsWith(ARTIFACT_DIR)) {
             throw new RuntimeException("Unexpected file for main artifact: " + 
file);
         }
         if (!file.isDirectory()) {

Reply via email to