Fixed Sanity Test to only accept bundles being RESOLVED if they are fragments 64/1864/2
authorEd Warnicke <eaw@cisco.com>
Sun, 13 Oct 2013 22:34:54 +0000 (17:34 -0500)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 14 Oct 2013 13:58:52 +0000 (13:58 +0000)
Change-Id: Idfc804a81be493b56ef74fee5e335f656eeba344
Signed-off-by: Ed Warnicke <eaw@cisco.com>
opendaylight/distribution/sanitytest/pom.xml
opendaylight/distribution/sanitytest/src/main/java/org/opendaylight/controller/sanitytest/internal/Activator.java

index 142268c..9d5ba5c 100644 (file)
@@ -43,7 +43,8 @@
               org.eclipse.osgi.framework.console,
               org.osgi.framework,
               org.eclipse.osgi.baseadaptor,
-              org.eclipse.osgi.framework.adaptor
+              org.eclipse.osgi.framework.adaptor,
+              org.osgi.framework.wiring
             </Import-Package>
             <Bundle-Activator>
               org.opendaylight.controller.sanitytest.internal.Activator
index 65bc380..c27cd07 100644 (file)
@@ -1,10 +1,13 @@
 package org.opendaylight.controller.sanitytest.internal;
 
-import org.osgi.framework.*;
-
 import java.util.Timer;
 import java.util.TimerTask;
 
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.wiring.BundleRevision;
+
 public class Activator implements BundleActivator {
     //30 Second
     private static final int DELAY = 30000;
@@ -32,6 +35,12 @@ public class Activator implements BundleActivator {
             public void run() {
                 boolean failed = false;
                 for(Bundle bundle : bundleContext.getBundles()){
+                    /*
+                     * A bundle should be ACTIVE, unless it a fragment, in which case it should be RESOLVED
+                     */
+                    if(!(bundle.getState() == Bundle.ACTIVE) ||
+                        (bundle.getState() != Bundle.RESOLVED &&
+                        (bundle.adapt(BundleRevision.class).getTypes() & BundleRevision.TYPE_FRAGMENT) != 0))
                     if(bundle.getState() != Bundle.ACTIVE && bundle.getState() != Bundle.RESOLVED) {
                         System.out.println("------ Failed to activate/resolve bundle = " + bundle.getSymbolicName() + " state = " + stateToString(bundle.getState()));
                         failed = true;