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()) {