[507338] Java 9 support not well integrated with Tomcat webserver (/apache-tomcat-8.5.6/endorsed is not supported) Change-Id: Ia9cbcc0a0511909eb8f56d470bb6755f00d4b8fc
diff --git a/features/org.eclipse.jst.server_adapters.ext.feature/feature.xml b/features/org.eclipse.jst.server_adapters.ext.feature/feature.xml index 5b1c659..e4ec1d9 100644 --- a/features/org.eclipse.jst.server_adapters.ext.feature/feature.xml +++ b/features/org.eclipse.jst.server_adapters.ext.feature/feature.xml
@@ -2,7 +2,7 @@ <feature id="org.eclipse.jst.server_adapters.ext.feature" label="%featureName" - version="3.3.600.qualifier" + version="3.3.601.qualifier" provider-name="%providerName" license-feature="org.eclipse.license" license-feature-version="1.0.1.qualifier">
diff --git a/features/org.eclipse.jst.server_adapters.ext.feature/pom.xml b/features/org.eclipse.jst.server_adapters.ext.feature/pom.xml index 447ba48..a75309a 100644 --- a/features/org.eclipse.jst.server_adapters.ext.feature/pom.xml +++ b/features/org.eclipse.jst.server_adapters.ext.feature/pom.xml
@@ -22,7 +22,7 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.jst.server_adapters.ext.feature</artifactId> - <version>3.3.600-SNAPSHOT</version> + <version>3.3.601-SNAPSHOT</version> <packaging>eclipse-feature</packaging> <build>
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF index 2ad031c..8d8686f 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.jst.server.tomcat.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.jst.server.tomcat.core; singleton:=true -Bundle-Version: 1.1.900.qualifier +Bundle-Version: 1.1.901.qualifier Bundle-Activator: org.eclipse.jst.server.tomcat.core.internal.TomcatPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/pom.xml b/plugins/org.eclipse.jst.server.tomcat.core/pom.xml index 18b35aa..3f2d733 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/pom.xml +++ b/plugins/org.eclipse.jst.server.tomcat.core/pom.xml
@@ -22,6 +22,6 @@ <groupId>org.eclipse.webtools.servertools</groupId> <artifactId>org.eclipse.jst.server.tomcat.core</artifactId> - <version>1.1.900-SNAPSHOT</version> + <version>1.1.901-SNAPSHOT</version> <packaging>eclipse-plugin</packaging> </project>
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/ITomcatVersionHandler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/ITomcatVersionHandler.java index 89edad8..7d85b26 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/ITomcatVersionHandler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/ITomcatVersionHandler.java
@@ -67,7 +67,7 @@ public String[] getExcludedRuntimeProgramArguments(boolean debug, boolean starting); /** - * Gets the startup VM arguments for the Tomcat server. + * Gets the subset of the startup VM arguments for the Tomcat server that apply to all compatible JVM versions. * * @param installPath installation path for the server * @param configPath configuration path for the server
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat40Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat40Handler.java index f153168..7ac14f9 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat40Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat40Handler.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2011 IBM Corporation and others. + * Copyright (c) 2003, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -94,7 +94,6 @@ list.add("-Dcatalina.home=\"" + installPath.toOSString() + "\""); // Include a system property for the configurable deploy location list.add("-Dwtp.deploy=\"" + deployPath.toOSString() + "\""); - list.add("-Djava.endorsed.dirs=\"" + getEndorsedDirectories(installPath) + "\""); String[] s = new String[list.size()]; list.toArray(s);
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat41Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat41Handler.java index 6e6db23..43cc494 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat41Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat41Handler.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2011 IBM Corporation and others. + * Copyright (c) 2003, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -91,7 +91,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Handler.java index a08dd26..d3a7a49 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat50Handler.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2011 IBM Corporation and others. + * Copyright (c) 2003, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -91,7 +91,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Handler.java index 4135611..eaa2b72 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat60Handler.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2007, 2011 IBM Corporation and others. + * Copyright (c) 2007, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -85,7 +85,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat70Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat70Handler.java index 98bcb32..d6e1c1d 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat70Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat70Handler.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2010, 2011 IBM Corporation and others. + * Copyright (c) 2010, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -97,7 +97,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat80Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat80Handler.java index b3d0e3f..e5122e6 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat80Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat80Handler.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2013 IBM Corporation and others. + * Copyright (c) 2013, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -97,7 +97,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat85Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat85Handler.java index f43b6c7..f787945 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat85Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat85Handler.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2016 IBM Corporation and others. + * Copyright (c) 2016, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -97,7 +97,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat90Handler.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat90Handler.java index daf24fa..2a6f058 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat90Handler.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/Tomcat90Handler.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2016 IBM Corporation and others. + * Copyright (c) 2016, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -97,7 +97,7 @@ * @see ITomcatVersionHandler#getRuntimeVMArguments(IPath, IPath, IPath, boolean) */ public String[] getRuntimeVMArguments(IPath installPath, IPath configPath, IPath deployPath, boolean isTestEnv) { - return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, getEndorsedDirectories(installPath), isTestEnv); + return TomcatVersionHelper.getCatalinaVMArguments(installPath, configPath, deployPath, isTestEnv); } /**
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java index e6e8102..9988c3c 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatServerBehaviour.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2011 IBM Corporation and others. + * Copyright (c) 2003, 2017 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -26,6 +26,7 @@ import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; import org.eclipse.jdt.launching.IRuntimeClasspathEntry; import org.eclipse.jdt.launching.IVMInstall; +import org.eclipse.jdt.launching.IVMInstall2; import org.eclipse.jdt.launching.JavaRuntime; import org.eclipse.jst.server.core.IJ2EEModule; import org.eclipse.jst.server.core.IWebModule; @@ -627,7 +628,7 @@ public String toString() { return "TomcatServer"; } - + protected static int getNextToken(String s, int start) { int i = start; int length = s.length(); @@ -646,7 +647,7 @@ } return -1; } - + /** * Merge the given arguments into the original argument string, replacing * invalid values if they have been changed. Special handling is provided @@ -882,8 +883,9 @@ existingVMArgs = filteredVMArgs.toString(); } } + String mergedVMArguments = mergeArguments(existingVMArgs, configVMArgs, null, false); workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, - mergeArguments(existingVMArgs, configVMArgs, null, false)); + mergedVMArguments); ITomcatRuntime runtime = getTomcatRuntime(); IVMInstall vmInstall = runtime.getVMInstall(); @@ -932,6 +934,19 @@ else mergeClasspath(oldCp, toolsJar); } + + String version = null; + if (vmInstall instanceof IVMInstall2) { + version = ((IVMInstall2) vmInstall).getJavaVersion(); + } + if (version == null || !version.startsWith("9")) { + String endorsedDirectories = getTomcatVersionHandler().getEndorsedDirectories(getServer().getRuntime().getLocation()); + if (endorsedDirectories.length() > 0) { + String[] endorsements = new String[]{"-Djava.endorsed.dirs=\"" + endorsedDirectories + "\""}; + mergedVMArguments = mergeArguments(mergedVMArguments, endorsements, null, false); + workingCopy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, mergedVMArguments); + } + } } }
diff --git a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatVersionHelper.java b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatVersionHelper.java index 02b8231..a673e07 100644 --- a/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatVersionHelper.java +++ b/plugins/org.eclipse.jst.server.tomcat.core/tomcatcore/org/eclipse/jst/server/tomcat/core/internal/TomcatVersionHelper.java
@@ -1,5 +1,5 @@ /********************************************************************** - * Copyright (c) 2007, 2016 SAS Institute, Inc and others. + * Copyright (c) 2007, 2017 SAS Institute, Inc and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -177,7 +177,7 @@ * @param isTestEnv test environment flag * @return array of strings containing VM arguments */ - public static String[] getCatalinaVMArguments(IPath installPath, IPath instancePath, IPath deployPath, String endorsedDirs, boolean isTestEnv) { + public static String[] getCatalinaVMArguments(IPath installPath, IPath instancePath, IPath deployPath, boolean isTestEnv) { List<String> list = new ArrayList<String>(); if (isTestEnv) list.add("-Dcatalina.base=\"" + instancePath.toOSString() + "\""); @@ -186,7 +186,6 @@ list.add("-Dcatalina.home=\"" + installPath.toOSString() + "\""); // Include a system property for the configurable deploy location list.add("-Dwtp.deploy=\"" + deployPath.toOSString() + "\""); - list.add("-Djava.endorsed.dirs=\"" + endorsedDirs + "\""); String[] s = new String[list.size()]; list.toArray(s);