Add blueprint XML wiring for the BmpDispatcher 71/41671/5
authorTom Pantelis <tpanteli@brocade.com>
Thu, 7 Jul 2016 01:20:27 +0000 (21:20 -0400)
committerTom Pantelis <tpanteli@brocade.com>
Thu, 21 Jul 2016 15:58:21 +0000 (11:58 -0400)
Added blueprint wiring for the BGPDispatcher. The BmpDispatcherImplModule
was deprecated but still remains for now to provide the BmpDispatcher
instance created via blueprint to the config system so it can be
injected into other users. Once the other user(s) are converted to
blueprint then the config yang and Module classes can be removed.

There was one complication. The BmpActivator protcol extension is in the
bmp-impl bundle and the service is consumed by the bmp-spi bundle.
The BmpExtensionConsumerContext is provided by the bmp-spi bundle and is
consumed by the bmp-impl bundle. This causes a circular service
dependency which causes a deadlock with blueprint. To avoid this I moved
the BmpActivator and related message and tlv classes (which are only used by
BmpActivator) to a new bundle, bmp-parser-ext. This bundle now provides
the BmpActivator extension provider to the bmp-spi bundle thereby
breaking the circular dependency.

Change-Id: Idbee9a7c2632d1e26c76314213389f83ff8ae5c1
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
60 files changed:
artifacts/pom.xml
bgp/bmp-impl/pom.xml
bgp/bmp-impl/src/main/java/org/opendaylight/controller/config/yang/bmp/impl/BmpDispatcherImplModule.java
bgp/bmp-impl/src/main/java/org/opendaylight/controller/config/yang/bmp/impl/BmpDispatcherImplModuleFactory.java
bgp/bmp-impl/src/main/resources/org/opendaylight/blueprint/bgp-bmp.xml
bgp/bmp-impl/src/main/yang/odl-bmp-impl-cfg.yang
bgp/bmp-impl/src/test/java/org/opendaylight/controller/config/yang/bmp/impl/BmpDispatcherImplModuleTest.java [deleted file]
bgp/bmp-impl/src/test/java/org/opendaylight/controller/config/yang/bmp/impl/BmpMonitorImplModuleTest.java
bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/app/BmpMonitorImplTest.java
bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/session/BmpDispatcherImplTest.java
bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/session/BmpSessionImplTest.java
bgp/bmp-mock/pom.xml
bgp/bmp-mock/src/main/java/org/opendaylight/protocol/bmp/mock/BmpMock.java
bgp/bmp-mock/src/test/java/org/opendaylight/protocol/bmp/mock/BmpMockTest.java
bgp/bmp-parser-impl/pom.xml [new file with mode: 0644]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/BmpActivator.java with 88% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/InitiationHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/InitiationHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/PeerDownHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/PeerDownHandler.java with 94% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/PeerUpHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/PeerUpHandler.java with 99% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/RouteMirroringMessageHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/RouteMirroringMessageHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/RouteMonitoringMessageHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/RouteMonitoringMessageHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/StatisticsReportHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/StatisticsReportHandler.java with 99% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/TerminationHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/TerminationHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/DescriptionTlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/DescriptionTlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/MirrorInformationTlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/MirrorInformationTlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/NameTlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/NameTlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/ReasonTlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/ReasonTlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType000TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType000TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType001TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType001TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType002TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType002TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType003TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType003TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType004TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType004TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType005TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType005TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType006TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType006TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType007TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType007TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType008TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType008TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType009TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType009TlvHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType010TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType010TlvHandler.java with 98% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType011TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType011TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType012TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType012TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType013TlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType013TlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StringTlvHandler.java [moved from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StringTlvHandler.java with 97% similarity]
bgp/bmp-parser-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator [moved from bgp/bmp-impl/src/main/resources/META-INF/services/org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator with 86% similarity]
bgp/bmp-parser-impl/src/main/resources/org/opendaylight/blueprint/bgp-bmp-parser-ext.xml [new file with mode: 0644]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/AbstractBmpMessageTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/AbstractBmpMessageTest.java with 93% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/InitiationHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/InitiationHandlerTest.java with 96% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/PeerDownHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/PeerDownHandlerTest.java with 96% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/PeerUpHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/PeerUpHandlerTest.java with 97% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/RouteMonitoringMessageHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/RouteMonitoringMessageHandlerTest.java with 97% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/StatisticsReportHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/StatisticsReportHandlerTest.java with 98% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/TerminationHandlerTest.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/TerminationHandlerTest.java with 94% similarity]
bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/TestUtil.java [moved from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/test/TestUtil.java with 99% similarity]
bgp/bmp-spi/pom.xml
bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModule.java [deleted file]
bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModuleFactory.java [deleted file]
bgp/bmp-spi/src/main/yang/odl-bmp-spi-cfg.yang [deleted file]
bgp/controller-config/src/main/resources/initial/32-bmp.xml
bgp/pom.xml
features/bmp/pom.xml
features/bmp/src/main/features/features.xml

index 84db523663ddcf7d158691c0118c9008cc5d19c2..480e59bc4cbf99e73e7877f1cbc3beb8e5f08af6 100644 (file)
                 <artifactId>bgp-bmp-mock</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>bgp-bmp-parser-impl</artifactId>
+                <version>${project.version}</version>
+            </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
                 <artifactId>bgp-openconfig-api</artifactId>
index 3584e0afe3529bddb1d1c6ee7f39268c6d4630fd..5d848b7598b043cfed209f60147cf5bc7e3c7cf8 100644 (file)
             <groupId>${project.groupId}</groupId>
             <artifactId>bgp-bmp-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-bmp-parser-impl</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>sal-broker-impl</artifactId>
             <artifactId>sal-dom-broker-config</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-bmp-parser-impl</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
index 62ce49a251f5b4f703e6a9b0894df46b63ed2720..85c0ab2af445e5de8112d785dd0704171a5970b2 100644 (file)
@@ -8,10 +8,21 @@
 
 package org.opendaylight.controller.config.yang.bmp.impl;
 
-import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
-import org.opendaylight.protocol.bmp.impl.session.DefaultBmpSessionFactory;
+import com.google.common.reflect.AbstractInvocationHandler;
+import com.google.common.reflect.Reflection;
+import java.lang.reflect.Method;
+import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
+import org.opendaylight.protocol.bmp.api.BmpDispatcher;
+import org.osgi.framework.BundleContext;
+
+/**
+ * @deprecated Replaced by blueprint wiring but remains for backwards compatibility until downstream users
+ *             of the provided config system service are converted to blueprint.
+ */
+@Deprecated
+public class BmpDispatcherImplModule extends AbstractBmpDispatcherImplModule {
+    private BundleContext bundleContext;
 
-public class BmpDispatcherImplModule extends org.opendaylight.controller.config.yang.bmp.impl.AbstractBmpDispatcherImplModule {
     public BmpDispatcherImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
@@ -26,9 +37,29 @@ public class BmpDispatcherImplModule extends org.opendaylight.controller.config.
     }
 
     @Override
-    public java.lang.AutoCloseable createInstance() {
-        return new BmpDispatcherImpl(getBossGroupDependency(), getWorkerGroupDependency(),
-                getBmpExtensionsDependency().getBmpMessageRegistry(), new DefaultBmpSessionFactory());
+    public AutoCloseable createInstance() {
+        // The BmpDispatcher instance is created and advertised as an OSGi service via blueprint
+        // so obtain it here (waiting if necessary).
+        final WaitingServiceTracker<BmpDispatcher> tracker =
+                WaitingServiceTracker.create(BmpDispatcher.class, bundleContext);
+        final BmpDispatcher service = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
+
+        // Create a proxy to override close to close the ServiceTracker. The actual BmpDispatcher
+        // instance will be closed via blueprint.
+        return Reflection.newProxy(BmpDispatcher.class, new AbstractInvocationHandler() {
+            @Override
+            protected Object handleInvocation(Object proxy, Method method, Object[] args) throws Throwable {
+                if (method.getName().equals("close")) {
+                    tracker.close();
+                    return null;
+                } else {
+                    return method.invoke(service, args);
+                }
+            }
+        });
     }
 
+    void setBundleContext(BundleContext bundleContext) {
+        this.bundleContext = bundleContext;
+    }
 }
index 22f80c963b38bf1da72f93f078d896dd7ca5801b..88addd488ca4d6b8f7bb8cfbfaadaa19d4d2046f 100644 (file)
@@ -8,6 +8,30 @@
 
 package org.opendaylight.controller.config.yang.bmp.impl;
 
-public class BmpDispatcherImplModuleFactory extends org.opendaylight.controller.config.yang.bmp.impl.AbstractBmpDispatcherImplModuleFactory {
+import org.opendaylight.controller.config.api.DependencyResolver;
+import org.osgi.framework.BundleContext;
+
+/**
+ * @deprecated Replaced by blueprint wiring but remains for backwards compatibility until downstream users
+ *             of the provided config system service are converted to blueprint.
+ */
+@Deprecated
+public class BmpDispatcherImplModuleFactory extends AbstractBmpDispatcherImplModuleFactory {
+    @Override
+    public BmpDispatcherImplModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
+            BmpDispatcherImplModule oldModule, AutoCloseable oldInstance, BundleContext bundleContext) {
+        BmpDispatcherImplModule module = super.instantiateModule(instanceName, dependencyResolver, oldModule,
+                oldInstance, bundleContext);
+        module.setBundleContext(bundleContext);
+        return module;
+    }
+
+    @Override
+    public BmpDispatcherImplModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
+            BundleContext bundleContext) {
+        BmpDispatcherImplModule module = super.instantiateModule(instanceName, dependencyResolver, bundleContext);
+        module.setBundleContext(bundleContext);
+        return module;
+    }
 
 }
index 9dd4590e73ee822c59ff83bae762d1e884a749b6..620340b77c30142a3c9bebb0e681259b0e48473e 100644 (file)
@@ -2,12 +2,29 @@
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0">
 
-  <reference id="BGPExtensionConsumerContext" interface="org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext"/>
+  <reference id="bmpExtensionContext" interface="org.opendaylight.protocol.bmp.spi.registry.BmpExtensionConsumerContext"/>
+  <reference id="globalBossGroup" interface="io.netty.channel.EventLoopGroup" odl:type="global-boss-group"/>
+  <reference id="globalWorkerGroup" interface="io.netty.channel.EventLoopGroup" odl:type="global-worker-group"/>
 
-  <bean id="bmpActivator" class="org.opendaylight.protocol.bmp.impl.BmpActivator">
-    <argument ref="BGPExtensionConsumerContext"/>
+  <bean id="bmpSessionFactory" class="org.opendaylight.protocol.bmp.impl.session.DefaultBmpSessionFactory"/>
+
+  <bean id="bmpDispatcher" class="org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl">
+    <argument ref="globalBossGroup"/>
+    <argument ref="globalWorkerGroup"/>
+    <argument>
+      <bean factory-ref="bmpExtensionContext" factory-method="getBmpMessageRegistry"/>
+    </argument>
+    <argument ref="bmpSessionFactory"/>
   </bean>
 
-  <service ref="bmpActivator" interface="org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator"
-          odl:type="org.opendaylight.protocol.bmp.impl.BmpActivator"/>
+  <service ref="bmpDispatcher" interface="org.opendaylight.protocol.bmp.api.BmpDispatcher">
+    <!-- The following service properties specify the config system module and instance that correspond to
+         this OSGi service which enables the config system module to be restarted when this blueprint
+         container is restarted. -->
+    <service-properties>
+      <entry key="config-module-namespace" value="urn:opendaylight:params:xml:ns:yang:controller:bmp:impl"/>
+      <entry key="config-module-name" value="bmp-dispatcher-impl"/>
+      <entry key="config-instance-name" value="global-bmp-dispatcher"/>
+    </service-properties>
+  </service>
 </blueprint>
\ No newline at end of file
index eaa42a1532d165e89a1a84e3c34d73fb15824d28..f3420f2d9e69905088cb852c5274074001c8981b 100644 (file)
@@ -4,7 +4,6 @@ module odl-bmp-impl-cfg {
     prefix "bmp-impl";
 
     import config { prefix config; revision-date 2013-04-05; }
-    import odl-bmp-spi-cfg { prefix spi; revision-date 2015-05-13; }
     import odl-bgp-rib-spi-cfg { prefix ribspi; revision-date 2013-11-15; }
     import netty { prefix netty; revision-date 2013-11-19; }
     import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
@@ -39,6 +38,7 @@ module odl-bmp-impl-cfg {
 
         base "config:service-type";
         config:java-class "org.opendaylight.protocol.bmp.api.BmpDispatcher";
+        config:disable-osgi-service-registration;
     }
 
     identity bmp-dispatcher-impl {
@@ -50,33 +50,6 @@ module odl-bmp-impl-cfg {
     augment "/config:modules/config:module/config:configuration" {
         case bmp-dispatcher-impl {
             when "/config:modules/config:module/config:type = 'bmp-dispatcher-impl'";
-
-            container bmp-extensions {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity spi:consumer-extensions;
-                    }
-                }
-            }
-
-            container boss-group {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity netty:netty-threadgroup;
-                    }
-                }
-            }
-
-            container worker-group {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity netty:netty-threadgroup;
-                    }
-                }
-            }
         }
     }
 
diff --git a/bgp/bmp-impl/src/test/java/org/opendaylight/controller/config/yang/bmp/impl/BmpDispatcherImplModuleTest.java b/bgp/bmp-impl/src/test/java/org/opendaylight/controller/config/yang/bmp/impl/BmpDispatcherImplModuleTest.java
deleted file mode 100644 (file)
index 32cda8e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.controller.config.yang.bmp.impl;
-
-import static org.mockito.Mockito.mock;
-import io.netty.channel.EventLoopGroup;
-import io.netty.util.Timer;
-import io.netty.util.concurrent.EventExecutor;
-import javax.management.InstanceAlreadyExistsException;
-import javax.management.ObjectName;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.controller.config.api.jmx.CommitStatus;
-import org.opendaylight.controller.config.manager.impl.factoriesresolver.HardcodedModuleFactoriesResolver;
-import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
-import org.opendaylight.controller.config.yang.bmp.spi.SimpleBmpExtensionProviderContextModuleFactory;
-import org.opendaylight.controller.config.yang.bmp.spi.SimpleBmpExtensionProviderContextModuleMXBean;
-import org.opendaylight.controller.config.yang.netty.eventexecutor.GlobalEventExecutorModuleFactory;
-import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
-import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleMXBean;
-
-public class BmpDispatcherImplModuleTest extends AbstractBmpModuleTest {
-    private static final String INSTANCE_NAME = "bmp-message-fct";
-    private static final String FACTORY_NAME = BmpDispatcherImplModuleFactory.NAME;
-
-    private static final String BMP_EXTENSION_INSTANCE_NAME = "bmp-extension-impl";
-    private static final String BOSS_TG_INSTANCE_NAME = "boss-threadgroup-impl";
-    private static final String WORKER_TG_INSTANCE_NAME = "worker-threadgroup-impl";
-
-    @Override
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(this.mockedContext,
-            new BmpDispatcherImplModuleFactory(),
-            new NettyThreadgroupModuleFactory(),
-            new GlobalEventExecutorModuleFactory(),
-            new SimpleBmpExtensionProviderContextModuleFactory()));
-
-        setupMockService(EventLoopGroup.class, mock(EventLoopGroup.class));
-        setupMockService(Timer.class, mock(Timer.class));
-        setupMockService(EventExecutor.class, mock(EventExecutor.class));
-    }
-
-    @Test
-    public void testCreateBean() throws Exception {
-        final CommitStatus status = createInstance();
-        assertBeanCount(1, FACTORY_NAME);
-        assertStatus(status, 4, 0, 0);
-    }
-
-    @Test
-    public void testReusingOldInstance() throws Exception {
-        createInstance();
-        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
-        assertBeanCount(1, FACTORY_NAME);
-        final CommitStatus status = transaction.commit();
-        assertBeanCount(1, FACTORY_NAME);
-        assertStatus(status, 0, 0, 4);
-    }
-
-    private CommitStatus createInstance() throws Exception {
-        final ConfigTransactionJMXClient transaction = this.configRegistryClient.createTransaction();
-        createInstance(transaction);
-        return transaction.commit();
-    }
-
-    public static ObjectName createInstance(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
-        final ObjectName nameCreated = transaction.createModule(FACTORY_NAME, INSTANCE_NAME);
-        final BmpDispatcherImplModuleMXBean mxBean = transaction.newMXBeanProxy(nameCreated, BmpDispatcherImplModuleMXBean.class);
-        mxBean.setBossGroup(createThreadgroupInstance(transaction, BOSS_TG_INSTANCE_NAME, 10));
-        mxBean.setWorkerGroup(createThreadgroupInstance(transaction, WORKER_TG_INSTANCE_NAME, 10));
-        mxBean.setBmpExtensions(createBmpExtensionsInstance(transaction));
-        return nameCreated;
-    }
-
-    private static ObjectName createThreadgroupInstance(final ConfigTransactionJMXClient transaction, final String instanceName,
-            final Integer threadCount) throws InstanceAlreadyExistsException {
-        final ObjectName nameCreated = transaction.createModule(NettyThreadgroupModuleFactory.NAME, instanceName);
-        final NettyThreadgroupModuleMXBean mxBean = transaction.newMXBeanProxy(nameCreated, NettyThreadgroupModuleMXBean.class);
-        mxBean.setThreadCount(threadCount);
-        return nameCreated;
-    }
-
-    private static ObjectName createBmpExtensionsInstance(final ConfigTransactionJMXClient transaction)
-            throws InstanceAlreadyExistsException {
-        final ObjectName nameCreated = transaction.createModule(SimpleBmpExtensionProviderContextModuleFactory.NAME, BMP_EXTENSION_INSTANCE_NAME);
-        transaction.newMXBeanProxy(nameCreated, SimpleBmpExtensionProviderContextModuleMXBean.class);
-        return nameCreated;
-    }
-}
index 6a6169e6a09fa684771b790df5da4ef9ff44ae95..f0aa3bb4752558b92db078f3317ea5d8924a88dc 100644 (file)
@@ -16,8 +16,7 @@ import com.google.common.collect.Lists;
 import com.google.common.io.ByteSource;
 import com.google.common.io.Resources;
 import com.google.common.util.concurrent.CheckedFuture;
-import io.netty.channel.EventLoopGroup;
-import io.netty.util.concurrent.EventExecutor;
+import io.netty.channel.nio.NioEventLoopGroup;
 import java.io.IOException;
 import java.net.URL;
 import java.util.ArrayList;
@@ -40,17 +39,12 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
 import org.opendaylight.controller.config.yang.bgp.rib.spi.RIBExtensionsImplModuleFactory;
 import org.opendaylight.controller.config.yang.bgp.rib.spi.RIBExtensionsImplModuleMXBean;
-import org.opendaylight.controller.config.yang.bmp.spi.SimpleBmpExtensionProviderContextModuleFactory;
 import org.opendaylight.controller.config.yang.md.sal.binding.impl.RuntimeMappingModuleFactory;
 import org.opendaylight.controller.config.yang.md.sal.binding.impl.RuntimeMappingModuleMXBean;
 import org.opendaylight.controller.config.yang.md.sal.dom.impl.DomInmemoryDataBrokerModuleFactory;
 import org.opendaylight.controller.config.yang.md.sal.dom.impl.DomInmemoryDataBrokerModuleMXBean;
 import org.opendaylight.controller.config.yang.md.sal.dom.impl.SchemaServiceImplSingletonModuleFactory;
 import org.opendaylight.controller.config.yang.md.sal.dom.impl.SchemaServiceImplSingletonModuleMXBean;
-import org.opendaylight.controller.config.yang.netty.eventexecutor.AutoCloseableEventExecutor;
-import org.opendaylight.controller.config.yang.netty.eventexecutor.GlobalEventExecutorModuleFactory;
-import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
-import org.opendaylight.controller.config.yang.netty.threadgroup.NioEventLoopGroupCloseable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
 import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodecFactory;
@@ -59,6 +53,10 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.sal.core.api.model.SchemaService;
 import org.opendaylight.controller.sal.core.api.model.YangTextSourceProvider;
+import org.opendaylight.protocol.bmp.api.BmpDispatcher;
+import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
+import org.opendaylight.protocol.bmp.impl.session.DefaultBmpSessionFactory;
+import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpMessageRegistry;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.sal.binding.generator.api.ClassLoadingStrategy;
@@ -102,9 +100,6 @@ public class BmpMonitorImplModuleTest extends AbstractBmpModuleTest {
             new RuntimeMappingModuleFactory(),
             new DomInmemoryDataBrokerModuleFactory(),
             new BmpDispatcherImplModuleFactory(),
-            new NettyThreadgroupModuleFactory(),
-            new SimpleBmpExtensionProviderContextModuleFactory(),
-            new GlobalEventExecutorModuleFactory(),
             new SchemaServiceImplSingletonModuleFactory()));
 
         final ServiceReference<?> emptyServiceReference = mock(ServiceReference.class, "Empty");
@@ -163,8 +158,9 @@ public class BmpMonitorImplModuleTest extends AbstractBmpModuleTest {
         BindingToNormalizedNodeCodecFactory.getOrCreateInstance(
                 GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy(), mockedSchemaService);
 
-        setupMockService(EventLoopGroup.class, NioEventLoopGroupCloseable.newInstance(0));
-        setupMockService(EventExecutor.class, AutoCloseableEventExecutor.CloseableEventExecutorMixin.globalEventExecutor());
+        BmpDispatcher bmpDispatcher = new BmpDispatcherImpl(new NioEventLoopGroup(), new NioEventLoopGroup(),
+                new SimpleBmpMessageRegistry(), new DefaultBmpSessionFactory());
+        setupMockService(BmpDispatcher.class, bmpDispatcher);
     }
 
     private static SchemaContext parseYangStreams(final Collection<ByteSource> streams) {
@@ -208,7 +204,7 @@ public class BmpMonitorImplModuleTest extends AbstractBmpModuleTest {
     public void testCreateBean() throws Exception {
         final CommitStatus status = createInstance();
         assertBeanCount(1, FACTORY_NAME);
-        assertStatus(status, 9, 0, 0);
+        assertStatus(status, 6, 0, 0);
     }
 
     @Test
@@ -218,7 +214,7 @@ public class BmpMonitorImplModuleTest extends AbstractBmpModuleTest {
         assertBeanCount(1, FACTORY_NAME);
         final CommitStatus status = transaction.commit();
         assertBeanCount(1, FACTORY_NAME);
-        assertStatus(status, 0, 0, 9);
+        assertStatus(status, 0, 0, 6);
     }
 
     private CommitStatus createInstance() throws Exception {
@@ -259,6 +255,8 @@ public class BmpMonitorImplModuleTest extends AbstractBmpModuleTest {
     }
 
     private static ObjectName createDispatcher(final ConfigTransactionJMXClient transaction) throws InstanceAlreadyExistsException {
-        return BmpDispatcherImplModuleTest.createInstance(transaction);
+        final ObjectName nameCreated = transaction.createModule(BmpDispatcherImplModuleFactory.NAME, "bmp-message-fct");
+        transaction.newMXBeanProxy(nameCreated, BmpDispatcherImplModuleMXBean.class);
+        return nameCreated;
     }
 }
index 30e60a9e250731356ae20003a757986d4f9463a1..6aeeb3efa459253a182dc4686bba99f204101ef4 100644 (file)
@@ -56,12 +56,12 @@ import org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderC
 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext;
 import org.opendaylight.protocol.bgp.rib.spi.SimpleRIBExtensionProviderContext;
 import org.opendaylight.protocol.bmp.api.BmpDispatcher;
-import org.opendaylight.protocol.bmp.impl.BmpActivator;
 import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
 import org.opendaylight.protocol.bmp.impl.BmpHandlerFactory;
 import org.opendaylight.protocol.bmp.impl.session.DefaultBmpSessionFactory;
 import org.opendaylight.protocol.bmp.impl.spi.BmpMonitoringStation;
-import org.opendaylight.protocol.bmp.impl.test.TestUtil;
+import org.opendaylight.protocol.bmp.parser.BmpActivator;
+import org.opendaylight.protocol.bmp.parser.message.TestUtil;
 import org.opendaylight.protocol.bmp.spi.registry.BmpMessageRegistry;
 import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpExtensionProviderContext;
 import org.opendaylight.protocol.concepts.KeyMapping;
index f6112759e6a63343c4311319592c19c1f5b12c7b..82463e25a31b66ca15ae4c00735d614148df75bd 100644 (file)
@@ -28,8 +28,8 @@ import org.opendaylight.protocol.bmp.api.BmpDispatcher;
 import org.opendaylight.protocol.bmp.api.BmpSession;
 import org.opendaylight.protocol.bmp.api.BmpSessionFactory;
 import org.opendaylight.protocol.bmp.api.BmpSessionListenerFactory;
-import org.opendaylight.protocol.bmp.impl.BmpActivator;
 import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
+import org.opendaylight.protocol.bmp.parser.BmpActivator;
 import org.opendaylight.protocol.bmp.spi.registry.BmpMessageRegistry;
 import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpExtensionProviderContext;
 import org.opendaylight.protocol.concepts.KeyMapping;
index 578f91b180703d1558cad34edcdb73505a30dbcb..0a2741c33b747aa348170c925cc56a3f82897372 100644 (file)
@@ -17,7 +17,7 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.protocol.bmp.api.BmpSession;
-import org.opendaylight.protocol.bmp.impl.test.TestUtil;
+import org.opendaylight.protocol.bmp.parser.message.TestUtil;
 import org.opendaylight.protocol.bmp.spi.parser.BmpDeserializationException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev150512.InitiationMessage;
 
index cf015bcd0678afc267e5a249cafee1380e8c7a4d..47b1cbfdf0ba60fdc8147605f68582b5121d0693 100644 (file)
             <groupId>org.opendaylight.bgpcep</groupId>
             <artifactId>bgp-bmp-impl</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.opendaylight.bgpcep</groupId>
+            <artifactId>bgp-bmp-parser-impl</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.opendaylight.bgpcep</groupId>
             <artifactId>bgp-parser-api</artifactId>
index 1efab2d56f6ed1e72d4e30c4eec404b4c44e43bc..2000a3fe8f6da99077588e3f7e9776067b1442ae 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionPr
 import org.opendaylight.protocol.bmp.api.BmpSession;
 import org.opendaylight.protocol.bmp.api.BmpSessionFactory;
 import org.opendaylight.protocol.bmp.api.BmpSessionListenerFactory;
-import org.opendaylight.protocol.bmp.impl.BmpActivator;
+import org.opendaylight.protocol.bmp.parser.BmpActivator;
 import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator;
 import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext;
 import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpExtensionProviderContext;
index 4767190278f047a748c86482a4ff845d8c812edb..e1528587ca66aba065430ec83b420f2f290aee07 100644 (file)
@@ -21,7 +21,7 @@ import org.opendaylight.protocol.bmp.api.BmpDispatcher;
 import org.opendaylight.protocol.bmp.api.BmpSession;
 import org.opendaylight.protocol.bmp.api.BmpSessionListener;
 import org.opendaylight.protocol.bmp.api.BmpSessionListenerFactory;
-import org.opendaylight.protocol.bmp.impl.BmpActivator;
+import org.opendaylight.protocol.bmp.parser.BmpActivator;
 import org.opendaylight.protocol.bmp.impl.BmpDispatcherImpl;
 import org.opendaylight.protocol.bmp.impl.session.DefaultBmpSessionFactory;
 import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator;
diff --git a/bgp/bmp-parser-impl/pom.xml b/bgp/bmp-parser-impl/pom.xml
new file mode 100644 (file)
index 0000000..a5a3e0e
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <scm>
+        <connection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</developerConnection>
+        <url>https://wiki.opendaylight.org/view/BGP_LS_PCEP:Main</url>
+        <tag>HEAD</tag>
+    </scm>
+
+    <parent>
+        <groupId>org.opendaylight.bgpcep</groupId>
+        <artifactId>bgp-parent</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>bgp-bmp-parser-impl</artifactId>
+    <packaging>bundle</packaging>
+    <name>${project.artifactId}</name>
+    <prerequisites>
+        <maven>3.0.4</maven>
+    </prerequisites>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-bmp-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-bmp-spi</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.mdsal.model</groupId>
+            <artifactId>ietf-yang-types-20130715</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.mdsal.model</groupId>
+            <artifactId>ietf-inet-types-2013-07-15</artifactId>
+        </dependency>
+
+        <!-- test dependencies -->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-parser-impl</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
+                    </instructions>
+                </configuration>
+            </plugin>
+            <!-- test jar -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>test-jar</goal>
+                        </goals>
+                        <phase>package</phase>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+  <!--
+      Maven Site Configuration
+
+      The following configuration is necessary for maven-site-plugin to
+      correctly identify the correct deployment path for OpenDaylight Maven
+      sites.
+  -->
+  <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+
+  <distributionManagement>
+    <site>
+      <id>opendaylight-site</id>
+      <url>${nexus.site.url}/${project.artifactId}/</url>
+    </site>
+  </distributionManagement>
+</project>
similarity index 88%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/BmpActivator.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/BmpActivator.java
index 1ba9e0f2d59ba73e1a903aece089daf5b07b8cc5..e3ddd1058e4fa785dc37ae920571808b77346e31 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl;
+package org.opendaylight.protocol.bmp.parser;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -14,32 +14,32 @@ import org.opendaylight.protocol.bgp.parser.spi.AddressFamilyRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext;
 import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry;
-import org.opendaylight.protocol.bmp.impl.message.InitiationHandler;
-import org.opendaylight.protocol.bmp.impl.message.PeerDownHandler;
-import org.opendaylight.protocol.bmp.impl.message.PeerUpHandler;
-import org.opendaylight.protocol.bmp.impl.message.RouteMirroringMessageHandler;
-import org.opendaylight.protocol.bmp.impl.message.RouteMonitoringMessageHandler;
-import org.opendaylight.protocol.bmp.impl.message.StatisticsReportHandler;
-import org.opendaylight.protocol.bmp.impl.message.TerminationHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.DescriptionTlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.MirrorInformationTlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.NameTlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.ReasonTlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType000TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType001TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType002TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType003TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType004TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType005TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType006TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType007TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType008TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType009TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType010TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType011TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType012TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StatType013TlvHandler;
-import org.opendaylight.protocol.bmp.impl.tlv.StringTlvHandler;
+import org.opendaylight.protocol.bmp.parser.message.InitiationHandler;
+import org.opendaylight.protocol.bmp.parser.message.PeerDownHandler;
+import org.opendaylight.protocol.bmp.parser.message.PeerUpHandler;
+import org.opendaylight.protocol.bmp.parser.message.RouteMirroringMessageHandler;
+import org.opendaylight.protocol.bmp.parser.message.RouteMonitoringMessageHandler;
+import org.opendaylight.protocol.bmp.parser.message.StatisticsReportHandler;
+import org.opendaylight.protocol.bmp.parser.message.TerminationHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.DescriptionTlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.MirrorInformationTlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.NameTlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.ReasonTlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType000TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType001TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType002TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType003TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType004TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType005TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType006TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType007TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType008TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType009TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType010TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType011TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType012TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StatType013TlvHandler;
+import org.opendaylight.protocol.bmp.parser.tlv.StringTlvHandler;
 import org.opendaylight.protocol.bmp.spi.registry.AbstractBmpExtensionProviderActivator;
 import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bmp.message.rev150512.InitiationMessage;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/InitiationHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/InitiationHandler.java
index 04e326a1df58936d531f53b3c6c2bd449ba1f694..b40992825cfb04212d53a804ffe9909273ae7d29 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
similarity index 94%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/PeerDownHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/PeerDownHandler.java
index d882eb0cd1e8175c20491bdbb1eaae98ac7064c1..fdcf7c03c2fc798c99a7713f2d1429d505ea2f6a 100644 (file)
@@ -6,13 +6,12 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
-
-import static org.opendaylight.protocol.bmp.impl.message.PeerDownHandler.Reason.REASON_FOUR;
-import static org.opendaylight.protocol.bmp.impl.message.PeerDownHandler.Reason.REASON_ONE;
-import static org.opendaylight.protocol.bmp.impl.message.PeerDownHandler.Reason.REASON_THREE;
-import static org.opendaylight.protocol.bmp.impl.message.PeerDownHandler.Reason.REASON_TWO;
+package org.opendaylight.protocol.bmp.parser.message;
 
+import static org.opendaylight.protocol.bmp.parser.message.PeerDownHandler.Reason.REASON_FOUR;
+import static org.opendaylight.protocol.bmp.parser.message.PeerDownHandler.Reason.REASON_ONE;
+import static org.opendaylight.protocol.bmp.parser.message.PeerDownHandler.Reason.REASON_THREE;
+import static org.opendaylight.protocol.bmp.parser.message.PeerDownHandler.Reason.REASON_TWO;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableMap;
 import io.netty.buffer.ByteBuf;
similarity index 99%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/PeerUpHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/PeerUpHandler.java
index 0ee84ec54276eaba8f843a2ed1f9bbbe5f33c34a..c797760339cf2da26433e989280faedbf8c67629 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 
 import com.google.common.base.Preconditions;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/RouteMirroringMessageHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/RouteMirroringMessageHandler.java
index 79676d53c4744ef60406993a487fec3c1e78685f..9144c47f5ef694c3b49fd3da1a315dd8e9be44bd 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/RouteMonitoringMessageHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/RouteMonitoringMessageHandler.java
index 5f503659a95c46932cfc9cbd57ca4c87fa23da78..2017863c22d6cdbb6c79134b2280606a7f06525f 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 99%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/StatisticsReportHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/StatisticsReportHandler.java
index 7a4e205b4c9a2df5b44fd1a1087f27c541d4ac23..bbc7e5a321d8ad6ff07d459b13d52f5f2b08291a 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.opendaylight.protocol.util.ByteBufWriteUtil.INT_BYTES_LENGTH;
 import static org.opendaylight.protocol.util.ByteBufWriteUtil.writeUnsignedInt;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/message/TerminationHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/message/TerminationHandler.java
index c0f6b6c75973c924d74ba27edf2f8e3c13d95f2e..db80561c56a4f4e42e7e98ac80e27d33357784f4 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/DescriptionTlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/DescriptionTlvHandler.java
index 5baad5e52ffda10053c36a20aa8695e7b51dea26..e1353feb6f14ffcc5aab0e831f2c14efdafd2dc1 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/MirrorInformationTlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/MirrorInformationTlvHandler.java
index 3669212a662fb41f1eb2caa5be6a7992b2f21d43..43ee9a040123182c88be1ea4dd41c4dc8199c28d 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/NameTlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/NameTlvHandler.java
index 1f522d280c8c12506dcf2360028cfd01b0332efb..1a5f4a872e2c338bd36453a0e4065bbc0cb38fb2 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/ReasonTlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/ReasonTlvHandler.java
index db8ba9109727e5ea146b5ade4b68cf39379cb902..0372064d513c79d5e44bdad8f512e74691abb949 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType000TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType000TlvHandler.java
index b0baa42848c789c1e4c6ff4c00ed24faef93d3a3..b5411a35111fde44b379bd252d7cde537f3efce7 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType001TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType001TlvHandler.java
index cad2c44d5e228e3725a695066f5f265e3832bb0a..db0a4e852fb0fdeaaabba7470b74c5a7a03a3ad4 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType002TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType002TlvHandler.java
index 6b556c3e02c29ef47059721e2b902a5f397adfd0..06153f0ec6e971f50763d6b2ffed8a4c4708800b 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType003TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType003TlvHandler.java
index 27e65a690983211f37305ff857601721ee654ceb..76db17f0ea2a64757ef3178c0681b08a751e700d 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType004TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType004TlvHandler.java
index 0aec63df81f04bb21dfd08065fcbc2d20452c1a2..dd791b8ea61f42a90f5079e47f7dbbaf9187b98c 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType005TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType005TlvHandler.java
index 2fea80849d8b305932aa8d46881bb57b184c5f9e..24b70c2df1291e6598fdddb2a8bb341137720be7 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType006TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType006TlvHandler.java
index 3081f5e6ec751a0ffb52698dceba9d310230c0b4..9d33a4aaacaa0bbc54ec856f282d0ddf9e329e64 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType007TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType007TlvHandler.java
index b8f7739307e6221b968c3f4d550e1b7c6ca456ac..edc6be1783da8fbecdf4a333d050d07b07388699 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType008TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType008TlvHandler.java
index 4a8ea4ac5ace7e586832de6e1f69f5b43c872524..75a6f5c44d445be45ad60af335f185907668b31e 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType009TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType009TlvHandler.java
index 5623d0f87b8d4bf9064d87f70c5dd6d38a89d3af..d352ffaa4ece7c592a8045a7630d2c60b9d55139 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 98%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType010TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType010TlvHandler.java
index 2fff6cade2d0d26d9b82d11f627487536810a844..59c12cbbd304dbef25e26bbf17d896efe46de20c 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType011TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType011TlvHandler.java
index 869dc9d56cca37f2e5c8bf10e68af04900f072ef..3848cbd11424aaaef608d64e4d42a560d12f8bd0 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType012TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType012TlvHandler.java
index 61ec3eb1c71493ffe3d5e6902f43ff76de2e3e36..0ec24e07ea5b82f2b2a5fbe4fce15c704f0dc646 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StatType013TlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StatType013TlvHandler.java
index 183e955f18c0bc80fd6b2860ab10136873b48189..25a28c7a825bd229abf9ef4bbf3e3f3fc0efa7bf 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
similarity index 97%
rename from bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/tlv/StringTlvHandler.java
rename to bgp/bmp-parser-impl/src/main/java/org/opendaylight/protocol/bmp/parser/tlv/StringTlvHandler.java
index d9a5e36d1097a6b99b03e9a843e65a3435c8c32b..9bac3ec1057c45ab8fa4ed1bfc98a591ff602edc 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.tlv;
+package org.opendaylight.protocol.bmp.parser.tlv;
 
 import com.google.common.base.Preconditions;
 import io.netty.buffer.ByteBuf;
diff --git a/bgp/bmp-parser-impl/src/main/resources/org/opendaylight/blueprint/bgp-bmp-parser-ext.xml b/bgp/bmp-parser-impl/src/main/resources/org/opendaylight/blueprint/bgp-bmp-parser-ext.xml
new file mode 100644 (file)
index 0000000..d09a9f2
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0">
+
+  <reference id="BGPExtensionConsumerContext" interface="org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext"/>
+
+  <bean id="bmpActivator" class="org.opendaylight.protocol.bmp.parser.BmpActivator">
+    <argument ref="BGPExtensionConsumerContext"/>
+  </bean>
+
+  <service ref="bmpActivator" interface="org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderActivator"
+          odl:type="org.opendaylight.protocol.bmp.parser.BmpActivator"/>
+</blueprint>
\ No newline at end of file
similarity index 93%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/AbstractBmpMessageTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/AbstractBmpMessageTest.java
index 1c188feb5dc76ce41e0043d8d8070c45c9804158..a83d353381d43b1ee0046646ad7f9a7408942e86 100644 (file)
@@ -6,14 +6,14 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import org.junit.After;
 import org.junit.Before;
 import org.opendaylight.protocol.bgp.parser.impl.BGPActivator;
 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
 import org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderContext;
-import org.opendaylight.protocol.bmp.impl.BmpActivator;
+import org.opendaylight.protocol.bmp.parser.BmpActivator;
 import org.opendaylight.protocol.bmp.spi.registry.BmpMessageRegistry;
 import org.opendaylight.protocol.bmp.spi.registry.SimpleBmpExtensionProviderContext;
 
similarity index 96%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/InitiationHandlerTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/InitiationHandlerTest.java
index 5b17983700d7daf84a4d33201537f47baec689e4..057c425727154120be4de7c8664c31833720d573 100644 (file)
@@ -6,11 +6,11 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createInitMsg;
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createInitMsg;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
similarity index 96%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/PeerDownHandlerTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/PeerDownHandlerTest.java
index a20f7cef7aa50a27dab573a9a9232d30e6e8e177..2d8956dc8b7ec0caf2b7e9c0b80cf765571ad7f5 100644 (file)
@@ -5,13 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createPeerDownFSM;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createPeerDownNotification;
-
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createPeerDownFSM;
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createPeerDownNotification;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
similarity index 97%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/PeerUpHandlerTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/PeerUpHandlerTest.java
index 6a605c8f47dfeab089192052501c90d4bc636b47..4e5863997588d3a7a7c1b960e9f3066ff084dee8 100644 (file)
@@ -5,12 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createPeerUpNotification;
-
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createPeerUpNotification;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
@@ -6,12 +6,11 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createRouteMonitMsg;
-
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createRouteMonitMsg;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
similarity index 98%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/StatisticsReportHandlerTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/StatisticsReportHandlerTest.java
index 3ef2730daa7c91f395532d82bed487085a21e8aa..3a9c13d919ffa0f5799971c70867b7132425fa82 100644 (file)
@@ -5,12 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createStatsReportMsg;
-
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createStatsReportMsg;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
similarity index 94%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/message/TerminationHandlerTest.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/TerminationHandlerTest.java
index 807a84eba76438b8cd68d280b2c4c92b1475ec04..37fbf655085ede3765bb603f113e0ac9d1f7a656 100644 (file)
@@ -5,11 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.protocol.bmp.impl.message;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
-import static org.opendaylight.protocol.bmp.impl.test.TestUtil.createTerminationMsg;
+import static org.opendaylight.protocol.bmp.parser.message.TestUtil.createTerminationMsg;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.junit.Test;
similarity index 99%
rename from bgp/bmp-impl/src/test/java/org/opendaylight/protocol/bmp/impl/test/TestUtil.java
rename to bgp/bmp-parser-impl/src/test/java/org/opendaylight/protocol/bmp/parser/message/TestUtil.java
index 468954b8cd4e32a1bcb9e92641e46f8703b9cadd..e8616865d150f9ab8b9b8dc5fd31e61880fbc095 100644 (file)
@@ -6,7 +6,7 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 
-package org.opendaylight.protocol.bmp.impl.test;
+package org.opendaylight.protocol.bmp.parser.message;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
index 3a72e33bf60f37a1dc5fdcd953d031090195070d..a8c14857194ada77ad7c3c89dbe500ee2d8b8e40 100644 (file)
 
     <build>
       <plugins>
-          <plugin>
-              <groupId>org.opendaylight.yangtools</groupId>
-              <artifactId>yang-maven-plugin</artifactId>
-          </plugin>
           <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
diff --git a/bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModule.java b/bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModule.java
deleted file mode 100644 (file)
index 796d6da..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.config.yang.bmp.spi;
-
-import com.google.common.reflect.AbstractInvocationHandler;
-import com.google.common.reflect.Reflection;
-import java.lang.reflect.Method;
-import org.opendaylight.controller.config.api.osgi.WaitingServiceTracker;
-import org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext;
-import org.osgi.framework.BundleContext;
-
-/**
- * @deprecated Replaced by blueprint wiring
- */
-@Deprecated
-public class SimpleBmpExtensionProviderContextModule extends org.opendaylight.controller.config.yang.bmp.spi.AbstractSimpleBmpExtensionProviderContextModule {
-    private BundleContext bundleContext;
-
-    public SimpleBmpExtensionProviderContextModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public SimpleBmpExtensionProviderContextModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.bmp.spi.SimpleBmpExtensionProviderContextModule oldModule, java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public void customValidation() {
-        // add custom validation form module attributes here.
-    }
-
-    @Override
-    public AutoCloseable createInstance() {
-        final WaitingServiceTracker<BmpExtensionProviderContext> tracker =
-                WaitingServiceTracker.create(BmpExtensionProviderContext.class, bundleContext);
-        final BmpExtensionProviderContext service = tracker.waitForService(WaitingServiceTracker.FIVE_MINUTES);
-
-        return Reflection.newProxy(AutoCloseableBmpExtensionProviderContext.class, new AbstractInvocationHandler() {
-            @Override
-            protected Object handleInvocation(Object proxy, Method method, Object[] args) throws Throwable {
-                if (method.getName().equals("close")) {
-                    tracker.close();
-                    return null;
-                } else {
-                    return method.invoke(service, args);
-                }
-            }
-        });
-    }
-
-    void setBundleContext(BundleContext bundleContext) {
-        this.bundleContext = bundleContext;
-    }
-
-    private static interface AutoCloseableBmpExtensionProviderContext extends BmpExtensionProviderContext, AutoCloseable {
-    }
-}
diff --git a/bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModuleFactory.java b/bgp/bmp-spi/src/main/java/org/opendaylight/controller/config/yang/bmp/spi/SimpleBmpExtensionProviderContextModuleFactory.java
deleted file mode 100644 (file)
index 3d0c70f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
-package org.opendaylight.controller.config.yang.bmp.spi;
-
-import org.opendaylight.controller.config.api.DependencyResolver;
-import org.osgi.framework.BundleContext;
-
-/**
- * @deprecated Replaced by blueprint wiring
- */
-@Deprecated
-public class SimpleBmpExtensionProviderContextModuleFactory extends AbstractSimpleBmpExtensionProviderContextModuleFactory {
-    @Override
-    public SimpleBmpExtensionProviderContextModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
-            SimpleBmpExtensionProviderContextModule oldModule, AutoCloseable oldInstance, BundleContext bundleContext) {
-        SimpleBmpExtensionProviderContextModule module = super.instantiateModule(instanceName, dependencyResolver, oldModule,
-                oldInstance, bundleContext);
-        module.setBundleContext(bundleContext);
-        return module;
-    }
-
-    @Override
-    public SimpleBmpExtensionProviderContextModule instantiateModule(String instanceName, DependencyResolver dependencyResolver,
-            BundleContext bundleContext) {
-        SimpleBmpExtensionProviderContextModule module = super.instantiateModule(instanceName, dependencyResolver, bundleContext);
-        module.setBundleContext(bundleContext);
-        return module;
-    }
-}
diff --git a/bgp/bmp-spi/src/main/yang/odl-bmp-spi-cfg.yang b/bgp/bmp-spi/src/main/yang/odl-bmp-spi-cfg.yang
deleted file mode 100644 (file)
index 9bac23c..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-// vi: set smarttab et sw=4 tabstop=4:
-module odl-bmp-spi-cfg {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:bmp:spi";
-    prefix "bmp-spi";
-
-    import config { prefix config; revision-date 2013-04-05; }
-
-    organization "Cisco Systems, Inc.";
-
-    contact "Milos Fabian <milfabia@cisco.com>";
-
-    description
-        "This module contains the base YANG definitions for
-        BMP SPI module.
-
-        Copyright (c)2015 Cisco Systems, Inc. All rights reserved.;
-
-        This program and the accompanying materials are made available
-        under the terms of the Eclipse Public License v1.0 which
-        accompanies this distribution, and is available at
-        http://www.eclipse.org/legal/epl-v10.html";
-
-    revision "2015-05-13" {
-        description
-            "Initial revision";
-    }
-
-    identity consumer-extensions {
-        description
-            "Service representing a BMP parser extension registry. Extension
-            consumers have this service injected.";
-
-        base "config:service-type";
-        config:java-class "org.opendaylight.protocol.bmp.spi.registry.BmpExtensionConsumerContext";
-    }
-
-    identity extensions {
-        description
-            "Service representing a BMP parser extension registry. Extension
-            providers have this service injected for registration.";
-
-        base "consumer-extensions";
-        config:java-class "org.opendaylight.protocol.bmp.spi.registry.BmpExtensionProviderContext";
-    }
-
-    identity bmp-extensions-impl {
-        base config:module-type;
-        config:provided-service extensions;
-        config:java-name-prefix SimpleBmpExtensionProviderContext;
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case bmp-extensions-impl {
-            when "/config:modules/config:module/config:type = 'bmp-extensions-impl'";
-        }
-    }
-}
\ No newline at end of file
index 67c611b862c88eeba2e5ca319e56a5cf0700cf61..36cd2fb733274cdf3b0ed3e6eb74236ca46dae9c 100644 (file)
@@ -9,44 +9,19 @@
 -->
 <snapshot>
     <required-capabilities>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:bmp:spi?module=odl-bmp-spi-cfg&amp;revision=2015-05-13</capability>
         <capability>urn:opendaylight:params:xml:ns:yang:controller:bmp:impl?module=odl-bmp-impl-cfg&amp;revision=2015-05-18</capability>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:netty?module=netty&amp;revision=2013-11-19</capability>
     </required-capabilities>
     <configuration>
         <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
 
             <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                <module>
-                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bmp:spi">prefix:bmp-extensions-impl</type>
-                    <name>global-bmp-extensions</name>
-                </module>
                 <module>
                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bmp:impl">prefix:bmp-dispatcher-impl</type>
                     <name>global-bmp-dispatcher</name>
-                    <bmp-extensions>
-                        <type xmlns:bmp-spi="urn:opendaylight:params:xml:ns:yang:controller:bmp:spi">bmp-spi:extensions</type>
-                        <name>global-bmp-extensions</name>
-                    </bmp-extensions>
-                    <boss-group>
-                        <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-threadgroup</type>
-                        <name>global-boss-group</name>
-                    </boss-group>
-                    <worker-group>
-                        <type xmlns:netty="urn:opendaylight:params:xml:ns:yang:controller:netty">netty:netty-threadgroup</type>
-                        <name>global-worker-group</name>
-                    </worker-group>
                 </module>
             </modules>
 
             <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                <service>
-                    <type xmlns:bmp-spi="urn:opendaylight:params:xml:ns:yang:controller:bmp:spi">bmp-spi:extensions</type>
-                    <instance>
-                        <name>global-bmp-extensions</name>
-                        <provider>/modules/module[type='bmp-extensions-impl'][name='global-bmp-extensions']</provider>
-                    </instance>
-                </service>
                 <service>
                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:bmp:impl">prefix:bmp-dispatcher</type>
                     <instance>
index 405dc44d11e0d677115488d2188443eab4ebb1fb..f8cb8dfd88aeebce16d40be3747eed1cd5152a87 100644 (file)
@@ -51,6 +51,7 @@
         <module>bmp-spi</module>
         <module>bmp-impl</module>
         <module>bmp-mock</module>
+        <module>bmp-parser-impl</module>
         <module>controller-config</module>
         <module>openconfig-api</module>
         <module>openconfig-spi</module>
index 8a1e2c74244c5227ac897409fbd0264437b8141f..0b66f34d2e97ee959484394bafcc6aaaef235b41 100644 (file)
             <groupId>${project.groupId}</groupId>
             <artifactId>bgp-bmp-impl</artifactId>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>bgp-bmp-parser-impl</artifactId>
+        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>data-change-counter-controller-config</artifactId>
index 2bdb6ae9b5ab4ddaaf137bcc662960864eb642f3..6fbb097faab4b014adb6fedca9e930de2cbc98bd 100644 (file)
@@ -30,6 +30,7 @@
         <feature version='${project.version}'>odl-bgpcep-bgp-labeled-unicast</feature>
         <bundle>mvn:org.opendaylight.bgpcep/bgp-bmp-api/{{VERSION}}</bundle>
         <bundle>mvn:org.opendaylight.bgpcep/bgp-bmp-spi/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.bgpcep/bgp-bmp-parser-impl/{{VERSION}}</bundle>
         <bundle>mvn:org.opendaylight.bgpcep/bgp-bmp-impl/{{VERSION}}</bundle>
         <configfile finalname="etc/opendaylight/karaf/31-bgp.xml">mvn:org.opendaylight.bgpcep/bgp-controller-config/{{VERSION}}/xml/config</configfile>
         <configfile finalname="etc/opendaylight/karaf/32-bmp.xml">mvn:org.opendaylight.bgpcep/bgp-controller-config/{{VERSION}}/xml/bmp-config</configfile>