]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.osgi/src/main/java/org/argeo/slc/osgi/BundlesManager.java
Make services lookup more robust
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.osgi / src / main / java / org / argeo / slc / osgi / BundlesManager.java
index c7c4cc1c138439a80d8853a4557390ecdf0c2297..7d96ae4c9e6d5487e7dddae839cc4716dae452fe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ * Copyright (C) 2007-2012 Mathieu Baudier
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
  * 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;
@@ -49,7 +48,7 @@ public class BundlesManager implements BundleContextAware, FrameworkListener,
 
        private BundleContext bundleContext;
 
-       private Long defaultTimeout = 120 * 1000l;
+       private Long defaultTimeout = 30 * 1000l;
        private Long pollingPeriod = 200l;
 
        // Refresh sync objects
@@ -268,7 +267,7 @@ public class BundlesManager implements BundleContextAware, FrameworkListener,
                try {
                        Thread.sleep(pollingPeriod);
                } catch (InterruptedException e) {
-                       // silent
+                       throw new SlcException("Polling interrupted");
                }
        }
 
@@ -331,7 +330,8 @@ public class BundlesManager implements BundleContextAware, FrameworkListener,
                                                                bundle.getHeaders().get(
                                                                                Constants.BUNDLE_VERSION)),
                                                "version consistent");
-               } else if (osgiBundle.getVersion() == null) {
+               } else if (osgiBundle.getVersion() == null
+                               || osgiBundle.getVersion().equals("0.0.0")) {
                        bundle = OsgiBundleUtils.findBundleBySymbolicName(bundleContext,
                                        osgiBundle.getName());
                } else {// scan all bundles