Merge "Version update automation"
diff --git a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/internal/target/TargetPlatformHelper.java b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/internal/target/TargetPlatformHelper.java
index d55f52e..218ea15 100644
--- a/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/internal/target/TargetPlatformHelper.java
+++ b/launching/org.eclipse.rcptt.launching.ext/src/org/eclipse/rcptt/launching/internal/target/TargetPlatformHelper.java
@@ -1033,12 +1033,15 @@
}
removeUnsupportedVMArgs(lines);
+ addUnresolvedVMArgs(lines);
return Q7LaunchDelegateUtils.joinCommandArgs(lines);
}
private static final String VMARG_ADD_MODULES = "--add-modules";
private static final String VMARG_PERMIT_ILLEGAL_ACCESS = "--permit-illegal-access";
+ private static final String VMARG_ADD_OPENS = "--add-opens";
+ private static final String VMARG_ALL_UNNAMED = "ALL-UNNAMED";
private void removeUnsupportedVMArgs(List<String> lines) {
String[] javaVersions = getJavaVersions();
@@ -1051,13 +1054,25 @@
while (iterator.hasNext()) {
String line = iterator.next();
if (line.startsWith(VMARG_ADD_MODULES)
- || line.startsWith(VMARG_PERMIT_ILLEGAL_ACCESS)) {
+ || line.startsWith(VMARG_PERMIT_ILLEGAL_ACCESS)
+ || line.startsWith(VMARG_ADD_OPENS)) {
iterator.remove();
}
}
}
}
+ private void addUnresolvedVMArgs(List<String> lines) {
+ int startIndex = lines.indexOf(VMARG_ADD_OPENS);
+ if (startIndex != -1) {
+ for (int i = startIndex; i < lines.size(); i++) {
+ if (lines.get(i).contains(VMARG_ALL_UNNAMED) && !lines.get(i-1).startsWith(VMARG_ADD_OPENS)) {
+ lines.add(i, VMARG_ADD_OPENS);
+ }
+ }
+ }
+ }
+
private static String[] getJavaVersions() {
String javaVersion = System.getProperty("java.version");
return javaVersion.split("\\.|-"); // '.' and '-' are separators