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=2f846ccb7a102663e5b10ba9986eaac2d0e7d130;hb=3779f02dcb5f24beee8fc08b5f5876af446dab41;hp=e24b7223b7736299125d5aae7f6ddd29b5a4d0f6;hpb=1ad9314cf24ac6c596ca4b168541bce641ac383f;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 e24b7223b..2f846ccb7 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 @@ -22,6 +22,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; @@ -62,7 +63,7 @@ public class BundlesManager implements BundleContextAware, FrameworkListener, startSynchronous(bundle); long aStart = System.currentTimeMillis(); - if (log.isDebugEnabled()) { + if (log.isTraceEnabled()) { log.debug("OSGi upgrade performed in " + (aStart - begin) + "ms for bundle " + osgiBundle); log.debug(" stop \t: " + (bUpdate - bStop) + "ms"); @@ -83,19 +84,18 @@ public class BundlesManager implements BundleContextAware, FrameworkListener, long aAppContext = System.currentTimeMillis(); long end = aAppContext; - if (log.isDebugEnabled()) { + if (log.isTraceEnabled()) { log.debug("Application context refresh performed in " + (aAppContext - bAppContext) + "ms for bundle " + osgiBundle); - log.debug(" TOTAL\t: " + (aAppContext - bAppContext) + "ms"); } - if (log.isDebugEnabled()) { + if (log.isDebugEnabled()) log.debug("Bundle " + bundle.getSymbolicName() + " ready to be used at latest version." + " (upgrade performed in " + (end - begin) + "ms)."); - log.debug(" TOTAL\t: " + (end - begin) + "ms"); + if (log.isTraceEnabled()) { ApplicationContext applicationContext = (ApplicationContext) bundleContext .getService(sr); int beanDefCount = applicationContext.getBeanDefinitionCount(); @@ -303,8 +303,16 @@ 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."); + continue bundles; + } + if (b.getSymbolicName().equals(osgiBundle.getName())) { if (osgiBundle.getVersion() == null) { bundle = b;