diff options
author | Thomas Watson | 2014-08-28 16:18:46 +0000 |
---|---|---|
committer | Thomas Watson | 2014-08-28 16:42:48 +0000 |
commit | 033dd7e0f4c681a98bce931b2797b3cbe77c35ec (patch) | |
tree | 0f8ab6ae6e9dcc8d1f08214cb1861c15b00781fb /bundles | |
parent | cbb414aecb66346ee5f871032736c868dcd8bbdb (diff) | |
download | rt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.tar.gz rt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.tar.xz rt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.zip |
Bug 442641 - Fix for dynamically reacting to new system bundle fragmentsM20140829-0500
for NSL
Change-Id: I3ab598e80e4122e01f0a7c3b548494c37573296c
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
Diffstat (limited to 'bundles')
2 files changed, 13 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java index 62beb5bda..a59b6a740 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java @@ -34,8 +34,7 @@ import org.eclipse.osgi.internal.loader.sources.*; import org.eclipse.osgi.storage.BundleInfo.Generation; import org.eclipse.osgi.util.ManifestElement; import org.osgi.framework.*; -import org.osgi.framework.namespace.BundleNamespace; -import org.osgi.framework.namespace.PackageNamespace; +import org.osgi.framework.namespace.*; import org.osgi.framework.wiring.BundleWiring; /** @@ -245,6 +244,16 @@ public class BundleLoader extends ModuleLoader { synchronized (classLoaderMonitor) { addFragmentExports(wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE)); loadClassLoaderFragments(fragments); + clearManifestLocalizationCache(); + } + } + + protected void clearManifestLocalizationCache() { + Generation hostGen = (Generation) wiring.getRevision().getRevisionInfo(); + hostGen.clearManifestCache(); + for (ModuleWire fragmentWire : wiring.getProvidedModuleWires(HostNamespace.HOST_NAMESPACE)) { + Generation fragGen = (Generation) fragmentWire.getRequirer().getRevisionInfo(); + fragGen.clearManifestCache(); } } diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java index c79f4cda1..e81a4ba8c 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2003, 2013 IBM Corporation and others. + * Copyright (c) 2003, 2014 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 @@ -132,6 +132,7 @@ public class SystemBundleLoader extends BundleLoader { systemModule.getContainer().getAdaptor().publishContainerEvent(ContainerEvent.ERROR, systemModule, e); } } + getClasspathManager().loadFragments(fragments); } } } |