diff options
author | Thomas Watson | 2014-08-28 16:18:46 +0000 |
---|---|---|
committer | Thomas Watson | 2014-08-28 16:34:07 +0000 |
commit | 85e405e6cf581afc1b19c68698b2e09da401e804 (patch) | |
tree | 90f787417b73729e8429ae623526bd82054514cb /bundles | |
parent | 52234f5095eaec59e9a5541fd7c64cbe94449036 (diff) | |
download | rt.equinox.framework-85e405e6cf581afc1b19c68698b2e09da401e804.tar.gz rt.equinox.framework-85e405e6cf581afc1b19c68698b2e09da401e804.tar.xz rt.equinox.framework-85e405e6cf581afc1b19c68698b2e09da401e804.zip |
Bug 442641 - Fix for dynamically reacting to new system bundle fragmentsI20140902-1330I20140902-0800
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); } } } |