Skip to content

Commit

Permalink
Merge pull request #4066 from Pandrex247/PAYARA-3931
Browse files Browse the repository at this point in the history
PAYARA-3931 Bring back ext and endorsed dir for JDK 8
  • Loading branch information
arjantijms authored Jul 4, 2019
2 parents b02b03d + fe6a056 commit c09d823
Show file tree
Hide file tree
Showing 19 changed files with 1,017 additions and 88 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down Expand Up @@ -478,6 +480,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down Expand Up @@ -468,6 +470,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,9 @@
<jvm-options>[1.8.0u121|1.8.0u160]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.7.jar</jvm-options>
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down Expand Up @@ -408,7 +410,9 @@
<jvm-options>[1.8.0u121|1.8.0u160]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.7.jar</jvm-options>
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down Expand Up @@ -425,6 +427,8 @@
<jvm-options>[1.8.0u161|1.8.0u190]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.jar</jvm-options>
<jvm-options>[1.8.0u191|1.8.0u500]-Xbootclasspath/p:${com.sun.aas.installRoot}/lib/grizzly-npn-bootstrap-1.8.1.jar</jvm-options>
<jvm-options>[9|]-Xbootclasspath/a:${com.sun.aas.installRoot}/lib/grizzly-npn-api.jar</jvm-options>
<jvm-options>[|8]-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
<jvm-options>[|8]-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
</java-config>
<availability-service>
<web-container-availability/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ public class CLIBootstrap {

private final static String[] ENV_VARS = { "_AS_INSTALL", "APPCPATH", "VMARGS" };

private final static String EXT_DIRS_INTRODUCER = "-Djava.ext.dirs";
private final static String ENDORSED_DIRS_INTRODUCER = "-Djava.endorsed.dirs";

private static final LocalStringManager localStrings = new LocalStringManagerImpl(CLIBootstrap.class);

private JavaInfo java;
Expand All @@ -125,7 +128,7 @@ public class CLIBootstrap {
* set up during init with various subtypes of command line elements
*/
private CommandLineElement
accValuedOptions, accUnvaluedOptions,
extDirs, endorsedDirs, accValuedOptions, accUnvaluedOptions,
jvmPropertySettings, jvmValuedOptions, otherJVMOptions, arguments;

/** arguments passed to the ACC Java agent */
Expand Down Expand Up @@ -236,7 +239,16 @@ private static void envToProps() {
* Assign the various command line element matchers. See the
* descriptions of each subtype for what each is used for.
*/

extDirs = new OverridableDefaultedPathBasedOption(
EXT_DIRS_INTRODUCER,
userVMArgs.evExtDirs,
java.ext().getAbsolutePath(),
gfInfo.extPaths());
endorsedDirs = new OverridableDefaultedPathBasedOption(
ENDORSED_DIRS_INTRODUCER,
userVMArgs.evEndorsedDirs,
java.endorsed().getAbsolutePath(),
gfInfo.endorsedPaths());
accValuedOptions = new ACCValuedOption(ACC_VALUED_OPTIONS_PATTERN);
accUnvaluedOptions = new ACCUnvaluedOption(ACC_UNVALUED_OPTIONS_PATTERN);
jvmPropertySettings = new JVMOption("-D.*", userVMArgs.evJVMPropertySettings);
Expand All @@ -257,27 +269,44 @@ private void initCommandLineElements() {
* patterns are from most specific to most general.
*/
elementsInScanOrder = new CommandLineElement[] {
accValuedOptions,
accUnvaluedOptions,
jvmValuedOptions,
jvmPropertySettings,
jvmMainSetting,
otherJVMOptions,
arguments };
extDirs,
endorsedDirs,
accValuedOptions,
accUnvaluedOptions,
jvmValuedOptions,
jvmPropertySettings,
jvmMainSetting,
otherJVMOptions,
arguments};

/*
* Add the elements in this order so they appear in the generated java command in the correct positions.
*/
//In JDK 9 and later ext and endorsed directory removed .
elementsInOutputOrder = new CommandLineElement[] {
jvmValuedOptions,
jvmPropertySettings,
otherJVMOptions,
accUnvaluedOptions,
accValuedOptions,
jvmMainSetting,
arguments
};
//In JDK 9 and later ext and endorsed directory removed.
int major = JDK.getMajor();
if (major >= 9) {
elementsInOutputOrder = new CommandLineElement[]{
jvmValuedOptions,
jvmPropertySettings,
otherJVMOptions,
accUnvaluedOptions,
accValuedOptions,
jvmMainSetting,
arguments
};
} else {
elementsInOutputOrder = new CommandLineElement[]{
jvmValuedOptions,
jvmPropertySettings,
otherJVMOptions,
extDirs,
endorsedDirs,
accUnvaluedOptions,
accValuedOptions,
jvmMainSetting,
arguments
};
}

}

Expand Down Expand Up @@ -782,7 +811,8 @@ private boolean nextLooksOK(final String[] args, final int slot) {
* the user specifies one of these options on the command line then we discard the Java installation values and append
* the GlassFish values to the user's values.
* <p>
* If the user does not specify the property then the user would
* This is used for handling java.ext.dirs and java.endorsed.dirs property
* settings. If the user does not specify the property then the user would
* expect the Java-provided directories to be used. We need to
* specify the GlassFish ones, so that means we need combine the GlassFish
* ones and the default JVM ones explicitly.
Expand Down Expand Up @@ -1047,6 +1077,12 @@ File configxml() {
return configXMLFile;
}

String[] endorsedPaths() {
return new String[] {
new File(lib, "endorsed").getAbsolutePath(),
new File(modules, "endorsed").getAbsolutePath()};
}

String extPaths() {
return new File(lib, "ext").getAbsolutePath();
}
Expand Down Expand Up @@ -1108,6 +1144,10 @@ File ext() {
return new File(lib(), "ext");
}

File endorsed() {
return new File(lib(), "endorsed");
}

File lib() {
return new File(jreHome, "lib");
}
Expand All @@ -1128,6 +1168,8 @@ String pathSeparator() {
*/
class UserVMArgs {

private CommandLineElement evExtDirs;
private CommandLineElement evEndorsedDirs;
private CommandLineElement evJVMPropertySettings;
private CommandLineElement evJVMValuedOptions;
private CommandLineElement evOtherJVMOptions;
Expand All @@ -1139,6 +1181,18 @@ class UserVMArgs {
if (isDebug) {
System.err.println("VMARGS = " + (vmargs == null ? "null" : vmargs));
}

evExtDirs = new OverridableDefaultedPathBasedOption(
EXT_DIRS_INTRODUCER,
null,
java.ext().getAbsolutePath(),
gfInfo.extPaths());

evEndorsedDirs = new OverridableDefaultedPathBasedOption(
ENDORSED_DIRS_INTRODUCER,
null,
java.endorsed().getAbsolutePath(),
gfInfo.endorsedPaths());

evJVMPropertySettings = new JVMOption("-D.*", null);
evJVMValuedOptions = new JVMValuedOption(JVM_VALUED_OPTIONS_PATTERN, null);
Expand All @@ -1154,6 +1208,8 @@ class UserVMArgs {
}

private void initEVCommandLineElements() {
evElements.add(evExtDirs);
evElements.add(evEndorsedDirs);
evElements.add(evJVMPropertySettings);
evElements.add(evJVMValuedOptions);
evElements.add(evOtherJVMOptions);
Expand Down
Loading

0 comments on commit c09d823

Please sign in to comment.