X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.osgi%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fosgi%2FBundlesManager.java;h=0e18f3599b7e65828928c64fc815468fc17e89f0;hb=f3e477b3048c639451df616cfa61564eae11efbb;hp=f282f948301b8b9f4b1577fbd48f07a9c561b827;hpb=2bdb0d14599c1f6d75af6e6b4c481009832d5dfb;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/BundlesManager.java b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/BundlesManager.java index f282f9483..0e18f3599 100644 --- a/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/BundlesManager.java +++ b/runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/BundlesManager.java @@ -1,3 +1,19 @@ +/* + * Copyright (C) 2010 Mathieu Baudier + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.argeo.slc.osgi; import org.apache.commons.logging.Log; @@ -22,6 +38,7 @@ import org.springframework.osgi.context.event.OsgiBundleApplicationContextListen import org.springframework.osgi.context.event.OsgiBundleContextClosedEvent; import org.springframework.osgi.context.event.OsgiBundleContextFailedEvent; import org.springframework.osgi.context.event.OsgiBundleContextRefreshedEvent; +import org.springframework.osgi.util.OsgiBundleUtils; import org.springframework.osgi.util.OsgiFilterUtils; import org.springframework.util.Assert; @@ -90,9 +107,9 @@ public class BundlesManager implements BundleContextAware, FrameworkListener, } if (log.isDebugEnabled()) - log.debug("Bundle " + bundle.getSymbolicName() - + " ready to be used at latest version." - + " (upgrade performed in " + (end - begin) + "ms)."); + log.debug("Bundle '" + bundle.getSymbolicName() + + "' upgraded and ready " + " (upgrade performed in " + + (end - begin) + "ms)."); if (log.isTraceEnabled()) { ApplicationContext applicationContext = (ApplicationContext) bundleContext @@ -302,7 +319,10 @@ public class BundlesManager implements BundleContextAware, FrameworkListener, Assert.isTrue(osgiBundle.getVersion().equals( bundle.getHeaders().get(Constants.BUNDLE_VERSION)), "version consistent"); - } else { + } else if (osgiBundle.getVersion() == null) { + bundle = OsgiBundleUtils.findBundleBySymbolicName(bundleContext, + osgiBundle.getName()); + } else {// scan all bundles bundles: for (Bundle b : bundleContext.getBundles()) { if (b.getSymbolicName() == null) { log.warn("Bundle " + b + " has no symbolic name defined.");