Merge 8884712969 into 5a6c6c37f0
This commit is contained in:
commit
ef55c880b6
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
package org.apache.dolphinscheduler.plugin.task.java;
|
||||
|
||||
import static org.apache.dolphinscheduler.common.constants.Constants.FOLDER_SEPARATOR;
|
||||
import static org.apache.dolphinscheduler.plugin.task.java.JavaConstants.JAVA_HOME_VAR;
|
||||
import static org.apache.dolphinscheduler.plugin.task.java.JavaConstants.PUBLIC_CLASS_NAME_REGEX;
|
||||
|
||||
|
|
@ -49,7 +48,9 @@ import java.nio.charset.StandardCharsets;
|
|||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
|
|
@ -183,9 +184,8 @@ public class JavaTask extends AbstractTask {
|
|||
StringBuilder builder = new StringBuilder();
|
||||
builder.append(getJavaCommandPath())
|
||||
.append("java").append(" ")
|
||||
.append(buildResourcePath()).append(" ")
|
||||
.append(buildExtDirs()).append(" ")
|
||||
.append("-jar").append(" ")
|
||||
.append(taskRequest.getExecutePath()).append(FOLDER_SEPARATOR)
|
||||
.append(mainJarName).append(" ")
|
||||
.append(javaParameters.getMainArgs().trim()).append(" ")
|
||||
.append(javaParameters.getJvmArgs().trim());
|
||||
|
|
@ -290,13 +290,33 @@ public class JavaTask extends AbstractTask {
|
|||
for (ResourceInfo info : javaParameters.getResourceFilesList()) {
|
||||
builder.append(JavaConstants.PATH_SEPARATOR);
|
||||
builder
|
||||
.append(taskRequest.getExecutePath())
|
||||
.append(FOLDER_SEPARATOR)
|
||||
.append(resourceContext.getResourceItem(info.getResourceName()).getResourceAbsolutePathInLocal());
|
||||
}
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
protected String buildExtDirs() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
if (javaParameters.isModulePath()) {
|
||||
builder.append("--module-path");
|
||||
} else {
|
||||
builder.append("-Djava.ext.dirs=\"$JAVA_HOME/jre/lib/ext");
|
||||
}
|
||||
ResourceContext resourceContext = taskRequest.getResourceContext();
|
||||
Set<String> set = new HashSet<>();
|
||||
for (ResourceInfo info : javaParameters.getResourceFilesList()) {
|
||||
String absolutePathInLocal =
|
||||
resourceContext.getResourceItem(info.getResourceName()).getResourceAbsolutePathInLocal();
|
||||
String extdir = absolutePathInLocal.substring(0, absolutePathInLocal.lastIndexOf(File.separator));
|
||||
if (set.add(extdir)) {
|
||||
builder.append(JavaConstants.PATH_SEPARATOR);
|
||||
builder.append(extdir);
|
||||
}
|
||||
}
|
||||
builder.append("\"");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a shell command compiled from a Java source file
|
||||
*
|
||||
|
|
|
|||
|
|
@ -84,8 +84,9 @@ public class JavaTaskTest {
|
|||
public void buildJarCommand() {
|
||||
String homeBinPath = JavaConstants.JAVA_HOME_VAR + File.separator + "bin" + File.separator;
|
||||
JavaTask javaTask = runJarType();
|
||||
Assertions.assertEquals(javaTask.buildJarCommand(), homeBinPath
|
||||
+ "java -classpath .:/tmp/dolphinscheduler/test/executepath:/tmp/dolphinscheduler/test/executepath/opt/share/jar/resource2.jar -jar /tmp/dolphinscheduler/test/executepath/opt/share/jar/main.jar -host 127.0.0.1 -port 8080 -xms:50m");
|
||||
String buildJarCommand = javaTask.buildJarCommand();
|
||||
Assertions.assertEquals(buildJarCommand, homeBinPath
|
||||
+ "java -Djava.ext.dirs=\"$JAVA_HOME/jre/lib/ext;opt/share/jar\" -jar /opt/share/jar/main.jar -host 127.0.0.1 -port 8080 -xms:50m");
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -284,7 +285,7 @@ public class JavaTaskTest {
|
|||
taskExecutionContext.setTaskAppId("runJavaType");
|
||||
ResourceContext.ResourceItem resourceItem1 = new ResourceContext.ResourceItem();
|
||||
resourceItem1.setResourceAbsolutePathInStorage("/opt/share/jar/resource2.jar");
|
||||
resourceItem1.setResourceAbsolutePathInLocal("opt/share/jar/resource2.jar");
|
||||
resourceItem1.setResourceAbsolutePathInLocal("/opt/share/jar/resource2.jar");
|
||||
|
||||
ResourceContext.ResourceItem resourceItem2 = new ResourceContext.ResourceItem();
|
||||
resourceItem2.setResourceAbsolutePathInStorage("/opt/share/jar/main.jar");
|
||||
|
|
|
|||
Loading…
Reference in New Issue