diff options
author | Thomas Watson | 2009-02-04 21:28:15 +0000 |
---|---|---|
committer | Thomas Watson | 2009-02-04 21:28:15 +0000 |
commit | fc1dd58eea848d19cfe2f2496b06bcf41f0a92c8 (patch) | |
tree | 9b86c409079074d264e7b6f645c9c2079a8fcd66 | |
parent | 5bcc3a1bb239a19e584b44c1436badec6d837dff (diff) | |
download | rt.equinox.framework-R3_3_maintenance.tar.gz rt.equinox.framework-R3_3_maintenance.tar.xz rt.equinox.framework-R3_3_maintenance.zip |
Bug 207847 Warnings in the log file when nl fragments for osgi bundles are present.R33x_v20101014R33x_v20090204R3_3_maintenance
9 files changed, 83 insertions, 4 deletions
diff --git a/bundles/org.eclipse.osgi.tests/.classpath b/bundles/org.eclipse.osgi.tests/.classpath index fb0c6a2f6..5a592feb9 100644 --- a/bundles/org.eclipse.osgi.tests/.classpath +++ b/bundles/org.eclipse.osgi.tests/.classpath @@ -27,6 +27,12 @@ <classpathentry kind="src" output="bundle_tests/buddy.dependent.a" path="bundles_src/buddy.dependent.a"/> <classpathentry kind="src" output="bundle_tests/buddy.dependent.a.test1" path="bundles_src/buddy.dependent.a.test1"/> <classpathentry kind="src" output="bundle_tests/buddy.dependent.a.test2" path="bundles_src/buddy.dependent.a.test2"/> + <classpathentry kind="src" output="bundle_tests/test.fragment1" path="bundles_src/test.fragment1"/> + <classpathentry kind="src" output="bundle_tests/test.fragment2" path="bundles_src/test.fragment2"/> + <classpathentry kind="src" output="bundle_tests/test.fragment3" path="bundles_src/test.fragment3"/> + <classpathentry kind="src" output="bundle_tests/test.fragment4" path="bundles_src/test.fragment4"/> + <classpathentry kind="src" output="bundle_tests/test.fragment5" path="bundles_src/test.fragment5"/> + <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="output" path="bin"/> diff --git a/bundles/org.eclipse.osgi.tests/build.properties b/bundles/org.eclipse.osgi.tests/build.properties index eb1c25135..917e81eeb 100644 --- a/bundles/org.eclipse.osgi.tests/build.properties +++ b/bundles/org.eclipse.osgi.tests/build.properties @@ -68,6 +68,16 @@ source.bundle_tests/buddy.dependent.a.test1.jar = bundles_src/buddy.dependent.a. manifest.bundle_tests/buddy.dependent.a.test1.jar = META-INF/MANIFEST.MF source.bundle_tests/buddy.dependent.a.test2.jar = bundles_src/buddy.dependent.a.test2/ manifest.bundle_tests/buddy.dependent.a.test2.jar = META-INF/MANIFEST.MF +source.bundle_tests/test.fragment1.jar = bundles_src/test.fragment1/ +manifest.bundle_tests/test.fragment1.jar = META-INF/MANIFEST.MF +source.bundle_tests/test.fragment2.jar = bundles_src/test.fragment2/ +manifest.bundle_tests/test.fragment2.jar = META-INF/MANIFEST.MF +source.bundle_tests/test.fragment3.jar = bundles_src/test.fragment3/ +manifest.bundle_tests/test.fragment3.jar = META-INF/MANIFEST.MF +source.bundle_tests/test.fragment4.jar = bundles_src/test.fragment4/ +manifest.bundle_tests/test.fragment4.jar = META-INF/MANIFEST.MF +source.bundle_tests/test.fragment5.jar = bundles_src/test.fragment5/ +manifest.bundle_tests/test.fragment5.jar = META-INF/MANIFEST.MF jars.compile.order = osgitests.jar,\ bundle_tests/test.jar,\ @@ -95,4 +105,10 @@ jars.compile.order = osgitests.jar,\ bundle_tests/buddy.registered.a.test2.jar,\ bundle_tests/buddy.dependent.a,\ bundle_tests/buddy.dependent.a.test1.jar,\ - bundle_tests/buddy.dependent.a.test2.jar + bundle_tests/buddy.dependent.a.test2.jar,\ + bundle_tests/test.fragment1.jar,\ + bundle_tests/test.fragment2.jar,\ + bundle_tests/test.fragment3.jar,\ + bundle_tests/test.fragment4.jar,\ + bundle_tests/test.fragment5.jar + diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment1/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment1/META-INF/MANIFEST.MF new file mode 100644 index 000000000..1b5383b2a --- /dev/null +++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment1/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: test.fragment1 +Bundle-SymbolicName: test.fragment1 +Bundle-Version: 1.0.0 +Fragment-Host: test1 diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment2/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment2/META-INF/MANIFEST.MF new file mode 100644 index 000000000..06029a2cc --- /dev/null +++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment2/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: test.fragment2 +Bundle-SymbolicName: test.fragment2 +Bundle-Version: 1.0.0 +Fragment-Host: test1 diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment3/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment3/META-INF/MANIFEST.MF new file mode 100644 index 000000000..5eb286e40 --- /dev/null +++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment3/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: test.fragment3 +Bundle-SymbolicName: test.fragment3 +Bundle-Version: 1.0.0 +Fragment-Host: test1 diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment4/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment4/META-INF/MANIFEST.MF new file mode 100644 index 000000000..c0768c428 --- /dev/null +++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment4/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: test.fragment4 +Bundle-SymbolicName: test.fragment4 +Bundle-Version: 1.0.0 +Fragment-Host: test1 diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment5/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment5/META-INF/MANIFEST.MF new file mode 100644 index 000000000..8afa4a41e --- /dev/null +++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.fragment5/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: test.fragment5 +Bundle-SymbolicName: test.fragment5 +Bundle-Version: 1.0.0 +Fragment-Host: test1 diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java index 624082675..67311bda3 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006 IBM Corporation and others. + * Copyright (c) 2006, 2009 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 @@ -536,6 +536,28 @@ public class ClassLoadingBundleTests extends AbstractBundleTests { assertEquals("stuff resource", "stuff classpath test2", readURL((URL) resourceURLs.get(3))); } + public void testBug207847() throws BundleException { + Bundle test = installer.installBundle("test"); //$NON-NLS-1$ + installer.resolveBundles(new Bundle[] {test}); + test.start(); + + Bundle frag1 = installer.installBundle("test.fragment1"); //$NON-NLS-1$ + Bundle frag2 = installer.installBundle("test.fragment2"); //$NON-NLS-1$ + Bundle frag3 = installer.installBundle("test.fragment3"); //$NON-NLS-1$ + Bundle frag4 = installer.installBundle("test.fragment4"); //$NON-NLS-1$ + Bundle frag5 = installer.installBundle("test.fragment5"); //$NON-NLS-1$ + installer.resolveBundles(new Bundle[] {frag1, frag2, frag3, frag4, frag5}); + + assertTrue("host is not resolved", (test.getState() & Bundle.ACTIVE) != 0); //$NON-NLS-1$ + assertTrue("frag1 is not resolved", (frag1.getState() & Bundle.RESOLVED) != 0); //$NON-NLS-1$ + assertTrue("frag2 is not resolved", (frag2.getState() & Bundle.RESOLVED) != 0); //$NON-NLS-1$ + assertTrue("frag3 is not resolved", (frag3.getState() & Bundle.RESOLVED) != 0); //$NON-NLS-1$ + assertTrue("frag4 is not resolved", (frag4.getState() & Bundle.RESOLVED) != 0); //$NON-NLS-1$ + assertTrue("frag5 is not resolved", (frag5.getState() & Bundle.RESOLVED) != 0); //$NON-NLS-1$ + } + + + // TODO temporarily disable til we can debug the build test machine on Win XP // public void testBuddyClassLoadingRegistered1() throws Exception{ // Bundle registeredA = installer.installBundle("buddy.registered.a"); diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/PackageAdminImpl.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/PackageAdminImpl.java index b0365b012..964ee654d 100644 --- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/PackageAdminImpl.java +++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/PackageAdminImpl.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2007 IBM Corporation and others. + * Copyright (c) 2003, 2009 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 @@ -14,7 +14,7 @@ package org.eclipse.osgi.framework.internal.core; import java.io.IOException; import java.security.AccessController; import java.security.PrivilegedAction; -import java.util.ArrayList; +import java.util.*; import org.eclipse.osgi.framework.adaptor.BundleClassLoader; import org.eclipse.osgi.framework.adaptor.BundleData; import org.eclipse.osgi.framework.debug.Debug; @@ -338,6 +338,11 @@ public class PackageAdminImpl implements PackageAdmin { } private AbstractBundle[] applyDeltas(BundleDelta[] bundleDeltas) throws BundleException { + Arrays.sort(bundleDeltas, new Comparator() { + public int compare(Object delta0, Object delta1) { + return (int) (((BundleDelta) delta0).getBundle().getBundleId() - ((BundleDelta) delta1).getBundle().getBundleId()); + } + }); ArrayList results = new ArrayList(bundleDeltas.length); for (int i = 0; i < bundleDeltas.length; i++) { int type = bundleDeltas[i].getType(); |