BUG-837: it unstable (added missing bundles)
[openflowplugin.git] / openflowplugin-it / src / test / java / org / opendaylight / openflowplugin / openflow / md / it / OFPaxOptionsAssistant.java
index 188e580a9c1c64263b37db52a16e80e24c74f286..d037e36f069dea6b89757eb789d4e33d8acb4895 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.openflowplugin.openflow.md.it;
 
 
+import org.opendaylight.controller.test.sal.binding.it.TestHelper;
 import org.ops4j.pax.exam.CoreOptions;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.options.DefaultCompositeOption;
@@ -16,28 +17,36 @@ import org.ops4j.pax.exam.options.DefaultCompositeOption;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
 
 /**
+ * The main wiring is assembled in {@link #ofPluginBundles()}
  * @author mirehak
- *
  */
 public abstract class OFPaxOptionsAssistant {
-    
+
     /** system property required to enable osgi console and remote debugging, only presence matters */
     private static final String INSPECT_OSGI = "inspectOsgi";
     /** default remote debug port */
     public static final String DEBUG_PORT = "6000";
     /** base controller package */
     public static final String CONTROLLER = "org.opendaylight.controller";
+    /** base controller.md package */
+    public static final String CONTROLLER_MD = "org.opendaylight.controller.md";
     /** OFLibrary package */
     public static final String OFLIBRARY = "org.opendaylight.openflowjava";
-    /** OFLibrary package */
+    /** OFPlugin package */
     public static final String OFPLUGIN = "org.opendaylight.openflowplugin";
+    /** OFPlugin applications package */
+    public static final String OFPLUGIN_APPS = "org.opendaylight.openflowplugin.applications";
+    /** OFPlugin model package */
+    public static final String OFPLUGIN_MODEL = "org.opendaylight.openflowplugin.model";
     /** controller.model package */
     public static final String CONTROLLER_MODEL = "org.opendaylight.controller.model";
 
-    
+    public static final String YANGTOOLS = "org.opendaylight.yangtools";
+
+
     /**
      * Works only if property -DinspectOsgi is used
-     * @return equinox console setup (in order to inspect running IT through osgi console (telnet)) 
+     * @return equinox console setup (in order to inspect running IT through osgi console (telnet))
      * and remote debugging on port {@link #DEBUG_PORT}
      */
     public static Option osgiConsoleBundles() {
@@ -50,7 +59,7 @@ public abstract class OFPaxOptionsAssistant {
             .add(CoreOptions.mavenBundle("equinoxSDK381", "org.apache.felix.gogo.runtime").versionAsInProject())
             .add(CoreOptions.mavenBundle("equinoxSDK381", "org.apache.felix.gogo.command").versionAsInProject());
         }
-            
+
         return option;
     }
 
@@ -59,6 +68,7 @@ public abstract class OFPaxOptionsAssistant {
      */
     public static Option ofLibraryBundles() {
         return new DefaultCompositeOption(
+                mavenBundle(OFLIBRARY, "util").versionAsInProject(),
                 mavenBundle(OFLIBRARY, "openflow-protocol-impl").versionAsInProject(),
                 mavenBundle(OFLIBRARY, "openflow-protocol-api").versionAsInProject(),
                 mavenBundle(OFLIBRARY, "openflow-protocol-spi").versionAsInProject(),
@@ -66,15 +76,24 @@ public abstract class OFPaxOptionsAssistant {
     }
 
     /**
+     * Here we construct whole wiring
      * @return OFLibrary + OFPlugin bundles
      */
     public static Option ofPluginBundles() {
         return new DefaultCompositeOption(
-                baseSalBundles(),
+                mdSalApiBundles(),
+                mdSalImplBundles(),
+                mdSalBaseModelBundles(),
                 ofLibraryBundles(),
-                mavenBundle(CONTROLLER_MODEL, "model-flow-statistics").versionAsInProject(),
+                mavenBundle(OFPLUGIN_MODEL, "model-flow-statistics").versionAsInProject(),
+                mavenBundle(OFPLUGIN_MODEL, "model-flow-base").versionAsInProject(),
+                mavenBundle(OFPLUGIN_MODEL, "model-flow-service").versionAsInProject(),
+                mavenBundle(OFPLUGIN, "openflowplugin-api").versionAsInProject(),
+                mavenBundle(OFPLUGIN, "openflowplugin-extension-api").versionAsInProject(),
                 mavenBundle(OFPLUGIN, "openflowplugin").versionAsInProject(),
-                mavenBundle("org.opendaylight.controller.thirdparty", "nagasena").versionAsInProject()
+                mavenBundle(OFPLUGIN_APPS, "forwardingrules-manager").versionAsInProject(),
+                mavenBundle(OFPLUGIN_APPS, "inventory-manager").versionAsInProject(),
+                mavenBundle("org.openexi", "nagasena").versionAsInProject()
                 );
     }
 
@@ -83,7 +102,7 @@ public abstract class OFPaxOptionsAssistant {
      */
     public static Option loggingBudles() {
         return new DefaultCompositeOption(
-                mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(), 
+                mavenBundle("org.slf4j", "slf4j-api").versionAsInProject(),
                 mavenBundle("org.slf4j", "log4j-over-slf4j").versionAsInProject(),
                 mavenBundle("ch.qos.logback", "logback-core").versionAsInProject(),
                 mavenBundle("ch.qos.logback", "logback-classic").versionAsInProject());
@@ -92,10 +111,26 @@ public abstract class OFPaxOptionsAssistant {
     /**
      * @return sal + dependencymanager
      */
-    public static Option baseSalBundles() {
+    public static Option mdSalApiBundles() {
+        return new DefaultCompositeOption(
+                TestHelper.junitAndMockitoBundles(),
+                TestHelper.mdSalCoreBundles(),
+                TestHelper.configMinumumBundles(),
+                mavenBundle(YANGTOOLS + ".thirdparty", "antlr4-runtime-osgi-nohead").versionAsInProject());
+
+    }
+
+    private static Option mdSalImplBundles() {
+        return new DefaultCompositeOption(
+                TestHelper.bindingAwareSalBundles()
+        );
+    }
+
+    private static Option mdSalBaseModelBundles() {
         return new DefaultCompositeOption(
-                mavenBundle("org.apache.felix", "org.apache.felix.dependencymanager").versionAsInProject(),
-                mavenBundle(CONTROLLER, "sal").versionAsInProject());
+                TestHelper.baseModelBundles(),
+                mavenBundle(CONTROLLER_MODEL, "model-inventory").versionAsInProject()
+        );
     }
 
 }