diff options
author | Thomas Watson | 2017-06-26 13:53:45 +0000 |
---|---|---|
committer | Thomas Watson | 2017-06-26 13:54:16 +0000 |
commit | 96c08919e0de45982667042a8f650ccdb4d005f9 (patch) | |
tree | 406f59842c5c4701a5a057217b4f7c86386d7432 | |
parent | 5920956a9778b637f59bd8d6455317fef6c00e9d (diff) | |
download | rt.equinox.framework-I20170630-0410.tar.gz rt.equinox.framework-I20170630-0410.tar.xz rt.equinox.framework-I20170630-0410.zip |
Bug 518740 - The Equinox Framework does not start on ARM using OracleI20170704-2000I20170703-2000I20170702-2000I20170701-2000I20170630-2000I20170630-0410I20170629-2000I20170629-0425I20170629-0210I20170628-2000I20170628-0310I20170627-2000I20170626-2000
Embedded JRE
Change-Id: I4f202f733e177fffe175dec58757f84aa36260d8
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
-rwxr-xr-x | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java | 44 | ||||
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/storage/Storage.java | 13 |
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; |