Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2017-06-26 09:53:45 -0400
committerThomas Watson2017-06-26 09:54:16 -0400
commit96c08919e0de45982667042a8f650ccdb4d005f9 (patch)
tree406f59842c5c4701a5a057217b4f7c86386d7432
parent5920956a9778b637f59bd8d6455317fef6c00e9d (diff)
downloadrt.equinox.framework-96c08919e0de45982667042a8f650ccdb4d005f9.tar.gz
rt.equinox.framework-96c08919e0de45982667042a8f650ccdb4d005f9.tar.xz
rt.equinox.framework-96c08919e0de45982667042a8f650ccdb4d005f9.zip
Embedded JRE Change-Id: I4f202f733e177fffe175dec58757f84aa36260d8 Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
-rwxr-xr-xbundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java44
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java13
2 files changed, 40 insertions, 17 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
index a28dbb22c..7ff03f26e 100755
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2016 IBM Corporation and others.
+ * Copyright (c) 2008, 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
@@ -2677,22 +2677,38 @@ public class SystemBundleTests extends AbstractBundleTests {
assertNotNull("No system bundle class loader.", cl);
}
- public void testJavaProfile() {
- String original = System.getProperty("java.specification.version");
- try {
- doTestJavaProfile("9.3.1", "JavaSE-9");
- doTestJavaProfile("9", "JavaSE-9");
- doTestJavaProfile("8.4", "JavaSE-1.8");
- doTestJavaProfile("1.10.1", "JavaSE-1.8");
- doTestJavaProfile("1.9", "JavaSE-1.8");
- doTestJavaProfile("1.8", "JavaSE-1.8");
- doTestJavaProfile("1.7", "JavaSE-1.7");
+ public void testJavaProfile() throws IOException {
+ String originalSpecVersion = System.getProperty("java.specification.version");
+ String originalJavaHome = System.getProperty("java.home");
+ try {
+ doTestJavaProfile("9.3.1", "JavaSE-9", null);
+ doTestJavaProfile("9", "JavaSE-9", null);
+ doTestJavaProfile("8.4", "JavaSE-1.8", null);
+ doTestJavaProfile("1.10.1", "JavaSE-1.8", null);
+ doTestJavaProfile("1.9", "JavaSE-1.8", null);
+ doTestJavaProfile("1.8", "JavaSE-1.8", null);
+ doTestJavaProfile("1.7", "JavaSE-1.7", null);
+ doTestJavaProfile("1.8", "JavaSE/compact3-1.8", "compact3");
+ doTestJavaProfile("1.8", "JavaSE/compact3-1.8", "\"compact3\"");
+ doTestJavaProfile("1.8", "JavaSE-1.8", "\"compact4\"");
+ doTestJavaProfile("9", "JavaSE/compact3-1.8", "compact3");
+ doTestJavaProfile("9", "JavaSE/compact3-1.8", "\"compact3\"");
+ doTestJavaProfile("9", "JavaSE-9", "\"compact4\"");
} finally {
- System.setProperty("java.specification.version", original);
+ System.setProperty("java.specification.version", originalSpecVersion);
+ System.setProperty("java.home", originalJavaHome);
}
}
- private void doTestJavaProfile(String javaSpecVersion, String expectedEEName) {
+ private void doTestJavaProfile(String javaSpecVersion, String expectedEEName, String releaseName) throws FileNotFoundException, IOException {
+ if (releaseName != null) {
+ File release = getContext().getDataFile("jre/release");
+ release.getParentFile().mkdirs();
+ Properties props = new Properties();
+ props.put("JAVA_PROFILE", releaseName);
+ props.store(new FileOutputStream(release), null);
+ System.setProperty("java.home", release.getParentFile().getAbsolutePath());
+ }
System.setProperty("java.specification.version", javaSpecVersion);
// create/stop/ test
File config = OSGiTestsActivator.getContext().getDataFile(getName() + javaSpecVersion);
@@ -2719,7 +2735,7 @@ public class SystemBundleTests extends AbstractBundleTests {
}
assertEquals("Wrong state for SystemBundle", Bundle.RESOLVED, equinox.getState()); //$NON-NLS-1$
- assertTrue("Wrong osgi EE: " + osgiEE, osgiEE.endsWith(expectedEEName));
+ assertTrue("Wrong osgi EE: expected: " + expectedEEName + " but was: " + osgiEE, osgiEE.endsWith(expectedEEName));
}
private static File[] createBundles(File outputDir, int bundleCount) throws IOException {
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java
index 702c80073..e4f518ca6 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2012, 2016 IBM Corporation and others.
+ * Copyright (c) 2012, 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
@@ -1434,8 +1434,12 @@ public class Storage {
Properties releaseProps = new Properties();
try {
releaseProps.load(new FileInputStream(release));
- if (releaseProps.containsKey("JAVA_PROFILE")) { //$NON-NLS-1$
- embeddedProfileName = "_" + releaseProps.getProperty("JAVA_PROFILE") + "-"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ String releaseName = releaseProps.getProperty("JAVA_PROFILE"); //$NON-NLS-1$
+ if (releaseName != null) {
+ // make sure to remove extra quotes
+ releaseName = releaseName.trim();
+ releaseName = releaseName.replaceAll("^\"|\"$", ""); //$NON-NLS-1$ //$NON-NLS-2$
+ embeddedProfileName = "_" + releaseName + "-"; //$NON-NLS-1$ //$NON-NLS-2$
}
} catch (IOException e) {
// ignore
@@ -1520,6 +1524,9 @@ public class Storage {
} else if (major <= 9 && major > 1) {
minor = 8;
major = 1;
+ } else {
+ // we have reached the end of our search; return the existing result;
+ return result;
}
} while (result == null && minor >= 0);
return result;

Back to the top