Used netty Timer config + tests, fixed yang files and dependencies. 28/2928/1
authorMilos Fabian <milfabia@cisco.com>
Wed, 20 Nov 2013 09:31:46 +0000 (10:31 +0100)
committerMilos Fabian <milfabia@cisco.com>
Wed, 20 Nov 2013 15:55:43 +0000 (16:55 +0100)
Change-Id: Id39cfaa134a71a6b6c0669cdb7dad4ded6e71b35
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/rib-impl-config/pom.xml
bgp/rib-impl-config/src/main/yang/bgp-rib-impl.yang
bgp/rib-impl-config/src/main/yang/reconnect-strategy.yang
pcep/impl-config/pom.xml
pcep/impl-config/src/main/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModule.java
pcep/impl-config/src/main/yang/pcep-impl.yang
pcep/impl-config/src/test/java/org/opendaylight/controller/config/yang/pcep/impl/PCEPDispatcherImplModuleTest.java

index 0518ed40b35a2e0bcf3f0073116712bf9e2fc46f..950c39131ba9c4a46e3baccee2fa33101148f48f 100644 (file)
@@ -67,7 +67,7 @@
       </dependency>
       <dependency>
          <groupId>org.opendaylight.controller</groupId>
-         <artifactId>threadpool-config-api</artifactId>
+         <artifactId>netty-config-api</artifactId>
          <version>${controller.config.version}</version>
       </dependency>
       
index cf896feb4a07ebb2775c1bd1a3948e779a9b581e..1b16597be0440524fd4c0033e53202c5273b06dd 100644 (file)
@@ -9,7 +9,7 @@ module bgp-rib-impl {
     import config-bgp-parser-spi { prefix bgpspi; revision-date 2013-11-15; }
     import config-bgp-rib-spi { prefix ribspi; revision-date 2013-11-15; }
     import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
-    import threadpool { prefix th; revision-date 2013-04-09; }
+    import netty { prefix netty; revision-date 2013-11-19; }
     import reconnect-strategy { prefix rs; revision-date 2013-11-09; }
     import config { prefix config; revision-date 2013-04-05; }
 
@@ -160,7 +160,7 @@ module bgp-rib-impl {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity th:netty-threadgroup;
+                        config:required-identity netty:netty-threadgroup;
                     }
                 }
             }
@@ -169,7 +169,7 @@ module bgp-rib-impl {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity th:netty-threadgroup;
+                        config:required-identity netty:netty-threadgroup;
                     }
                 }
             }
index a327f9b9694c0a82da172a20a6336647a1d5ff91..2538fd0ad7a4cac126cd1471873bd3efa41a9803 100644 (file)
@@ -5,7 +5,7 @@ module reconnect-strategy {
     prefix "rs";
 
     import config { prefix config; revision-date 2013-04-05; }
-    import threadpool { prefix th; revision-date 2013-04-09; }
+    import netty { prefix netty; revision-date 2013-11-19; }
 
     organization "Cisco Systems, Inc.";
 
@@ -54,7 +54,7 @@ module reconnect-strategy {
                                uses config:service-ref {
                                        refine type {
                                                mandatory true;
-                                               config:required-identity th:netty-event-executor;
+                                               config:required-identity netty:netty-event-executor;
                                        }
                                }
                        }
@@ -80,7 +80,7 @@ module reconnect-strategy {
                                uses config:service-ref {
                                        refine type {
                                                mandatory true;
-                                               config:required-identity th:netty-event-executor;
+                                               config:required-identity netty:netty-event-executor;
                                        }
                                }
                        }
@@ -133,7 +133,7 @@ module reconnect-strategy {
                                uses config:service-ref {
                                        refine type {
                                                mandatory true;
-                                               config:required-identity th:netty-event-executor;
+                                               config:required-identity netty:netty-event-executor;
                                        }
                                }
                        }
index 67acc26155f48ad407a34b1c33201b76bcd8df8c..6094e5b11dc081ce9dd99e9808b4bfe2ddb42a5f 100644 (file)
@@ -41,7 +41,7 @@
       </dependency>
       <dependency>
          <groupId>org.opendaylight.controller</groupId>
-         <artifactId>threadpool-config-api</artifactId>
+         <artifactId>netty-config-api</artifactId>
          <version>${controller.config.version}</version>
       </dependency>
 
          <version>${controller.config.version}</version>
          <scope>test</scope>
       </dependency>
+      <dependency>
+         <groupId>org.opendaylight.controller</groupId>
+         <artifactId>netty-timer-config</artifactId>
+         <version>${controller.config.version}</version>
+         <scope>test</scope>
+      </dependency>
 
    </dependencies>
 
index 59ba9348c6d2251e5d2b04dfd782892f08358160..e4a4fb2515b13334708936ad6261b0677611543f 100644 (file)
@@ -9,9 +9,6 @@
  */
 package org.opendaylight.controller.config.yang.pcep.impl;
 
-import io.netty.util.HashedWheelTimer;
-import io.netty.util.Timer;
-
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
 import org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiatorFactory;
 import org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl;
@@ -51,11 +48,10 @@ org.opendaylight.controller.config.yang.pcep.impl.AbstractPCEPDispatcherImplModu
 
        @Override
        public java.lang.AutoCloseable createInstance() {
-               Timer timer = new HashedWheelTimer();
                Open localPrefs = getPcepSessionProposalFactoryDependency()
                                .getSessionProposal(null, -1);
                DefaultPCEPSessionNegotiatorFactory negFactory = new DefaultPCEPSessionNegotiatorFactory(
-                               timer, localPrefs, getMaxUnknownMessages());
+                               getTimerDependency(), localPrefs, getMaxUnknownMessages());
 
                final PCEPDispatcherImpl instance = new PCEPDispatcherImpl(
                                getExtensionsDependency().getMessageHandlerRegistry(),
index 31ec5053050db8db8cf35ffe4d451c05a95e59c7..7e4a027618eef998c95c0df1b3a693d1bcbfb82c 100644 (file)
@@ -7,7 +7,7 @@ module pcep-impl {
     import config { prefix config; revision-date 2013-04-05; }
     import pcep { prefix pcep; revision-date 2013-04-09; }
     import config-pcep-spi { prefix spi; revision-date 2013-11-15; }
-    import threadpool { prefix th; revision-date 2013-04-09; }
+    import netty { prefix netty; revision-date 2013-11-19; }
 
     organization "Cisco Systems, Inc.";
 
@@ -70,7 +70,7 @@ module pcep-impl {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity th:netty-threadgroup;
+                        config:required-identity netty:netty-threadgroup;
                     }
                 }
             }
@@ -79,7 +79,16 @@ module pcep-impl {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity th:netty-threadgroup;
+                        config:required-identity netty:netty-threadgroup;
+                    }
+                }
+            }
+            
+            container timer {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity netty:netty-timer;
                     }
                 }
             }
index 381473c3f27c5840214ab005f4532b397774e222..556c905f6bfada986e6eb9fda120f84237688f5d 100644 (file)
@@ -17,6 +17,8 @@ import org.opendaylight.controller.config.manager.impl.factoriesresolver.Hardcod
 import org.opendaylight.controller.config.util.ConfigTransactionJMXClient;
 import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleFactory;
 import org.opendaylight.controller.config.yang.netty.threadgroup.NettyThreadgroupModuleMXBean;
+import org.opendaylight.controller.config.yang.netty.timer.HashedWheelTimerModuleFactory;
+import org.opendaylight.controller.config.yang.netty.timer.HashedWheelTimerModuleMXBean;
 import org.opendaylight.controller.config.yang.pcep.spi.SimplePCEPExtensionProviderContextModuleFactory;
 import org.opendaylight.controller.config.yang.pcep.spi.SimplePCEPExtensionProviderContextModuleMXBean;
 
@@ -32,14 +34,18 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
 
        private SimplePCEPExtensionProviderContextModuleFactory extensionsFactory;
 
+       private HashedWheelTimerModuleFactory timerFactory;
+
        @Before
        public void setUp() throws Exception {
                this.factory = new PCEPDispatcherImplModuleFactory();
                this.sessionFactory = new PCEPSessionProposalFactoryImplModuleFactory();
                this.threadgroupFactory = new NettyThreadgroupModuleFactory();
                this.extensionsFactory = new SimplePCEPExtensionProviderContextModuleFactory();
+               this.timerFactory = new HashedWheelTimerModuleFactory();
                super.initConfigTransactionManagerImpl(new HardcodedModuleFactoriesResolver(
-                               factory, sessionFactory, threadgroupFactory, extensionsFactory));
+                               factory, sessionFactory, threadgroupFactory, extensionsFactory,
+                               timerFactory));
        }
 
        @Test
@@ -52,11 +58,13 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                                        instanceName, null,
                                        this.sessionFactory.getImplementationName(),
                                        this.threadgroupFactory.getImplementationName(),
-                                       this.extensionsFactory.getImplementationName());
+                                       this.extensionsFactory.getImplementationName(),
+                                       this.timerFactory.getImplementationName());
                        transaction.validateConfig();
                        fail();
                } catch (ValidationException e) {
-                       assertTrue(e.getMessage().contains("MaxUnknownMessages value is not set"));
+                       assertTrue(e.getMessage().contains(
+                                       "MaxUnknownMessages value is not set"));
                }
        }
 
@@ -70,7 +78,8 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                                        instanceName, 0,
                                        this.sessionFactory.getImplementationName(),
                                        this.threadgroupFactory.getImplementationName(),
-                                       this.extensionsFactory.getImplementationName());
+                                       this.extensionsFactory.getImplementationName(),
+                                       this.timerFactory.getImplementationName());
                        transaction.validateConfig();
                        fail();
                } catch (ValidationException e) {
@@ -85,50 +94,54 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                createInstance(transaction, this.factory.getImplementationName(),
                                instanceName, 5, this.sessionFactory.getImplementationName(),
                                this.threadgroupFactory.getImplementationName(),
-                               this.extensionsFactory.getImplementationName());
+                               this.extensionsFactory.getImplementationName(),
+                               this.timerFactory.getImplementationName());
                transaction.validateConfig();
                CommitStatus status = transaction.commit();
                assertBeanCount(1, factory.getImplementationName());
-               assertStatus(status, 5, 0, 0);
+               assertStatus(status, 6, 0, 0);
        }
 
        @Test
        public void testReusingOldInstance() throws InstanceAlreadyExistsException,
-       ConflictingVersionException, ValidationException {
+                       ConflictingVersionException, ValidationException {
                ConfigTransactionJMXClient transaction = configRegistryClient
                                .createTransaction();
                createInstance(transaction, this.factory.getImplementationName(),
                                instanceName, 5, this.sessionFactory.getImplementationName(),
-                               this.threadgroupFactory.getImplementationName(), this.extensionsFactory.getImplementationName());
+                               this.threadgroupFactory.getImplementationName(),
+                               this.extensionsFactory.getImplementationName(),
+                               this.timerFactory.getImplementationName());
                transaction.commit();
                transaction = configRegistryClient.createTransaction();
                assertBeanCount(1, factory.getImplementationName());
                CommitStatus status = transaction.commit();
                assertBeanCount(1, factory.getImplementationName());
-               assertStatus(status, 0, 0, 5);
+               assertStatus(status, 0, 0, 6);
        }
 
        @Test
        public void testReconfigure() throws InstanceAlreadyExistsException,
-       ConflictingVersionException, ValidationException,
-       InstanceNotFoundException {
+                       ConflictingVersionException, ValidationException,
+                       InstanceNotFoundException {
                ConfigTransactionJMXClient transaction = configRegistryClient
                                .createTransaction();
                createInstance(transaction, this.factory.getImplementationName(),
                                instanceName, 5, this.sessionFactory.getImplementationName(),
                                this.threadgroupFactory.getImplementationName(),
-                               this.extensionsFactory.getImplementationName());
+                               this.extensionsFactory.getImplementationName(),
+                               this.timerFactory.getImplementationName());
                transaction.commit();
                transaction = configRegistryClient.createTransaction();
                assertBeanCount(1, factory.getImplementationName());
                PCEPDispatcherImplModuleMXBean mxBean = transaction.newMBeanProxy(
                                transaction.lookupConfigBean(
                                                this.factory.getImplementationName(), instanceName),
-                                               PCEPDispatcherImplModuleMXBean.class);
+                               PCEPDispatcherImplModuleMXBean.class);
                mxBean.setMaxUnknownMessages(10);
                CommitStatus status = transaction.commit();
                assertBeanCount(1, factory.getImplementationName());
-               assertStatus(status, 0, 1, 4);
+               assertStatus(status, 0, 1, 5);
        }
 
        public static ObjectName createInstance(
@@ -137,8 +150,8 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                        final Integer maxUnknownMessages,
                        final String sessionFactoryImplName,
                        final String threadGroupFactoryImplName,
-                       final String extensionsImplName)
-                                       throws InstanceAlreadyExistsException {
+                       final String extensionsImplName, final String timerFactoryImplName)
+                       throws InstanceAlreadyExistsException {
                ObjectName nameCreated = transaction.createModule(moduleName,
                                instanceName);
                PCEPDispatcherImplModuleMXBean mxBean = transaction.newMBeanProxy(
@@ -153,16 +166,19 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                                threadGroupFactoryImplName, "worker-group", 10));
                mxBean.setExtensions(createExtensionsInstance(transaction,
                                extensionsImplName, "extensions"));
+               mxBean.setTimer(createTimerInstance(transaction, timerFactoryImplName,
+                               "timmer1"));
                return nameCreated;
        }
 
        public static ObjectName createExtensionsInstance(
                        final ConfigTransactionJMXClient transaction,
-                       final String moduleName, final String instanceName) throws InstanceAlreadyExistsException {
+                       final String moduleName, final String instanceName)
+                       throws InstanceAlreadyExistsException {
                ObjectName nameCreated = transaction.createModule(moduleName,
                                instanceName);
-               SimplePCEPExtensionProviderContextModuleMXBean mxBean = transaction.newMBeanProxy(
-                               nameCreated, SimplePCEPExtensionProviderContextModuleMXBean.class);
+               transaction.newMBeanProxy(nameCreated,
+                               SimplePCEPExtensionProviderContextModuleMXBean.class);
 
                return nameCreated;
        }
@@ -179,4 +195,15 @@ public class PCEPDispatcherImplModuleTest extends AbstractConfigTest {
                return nameCreated;
        }
 
+       public static ObjectName createTimerInstance(
+                       final ConfigTransactionJMXClient transaction,
+                       final String moduleName, final String instanceName)
+                       throws InstanceAlreadyExistsException {
+               ObjectName nameCreated = transaction.createModule(moduleName,
+                               instanceName);
+               transaction.newMBeanProxy(nameCreated,
+                               HashedWheelTimerModuleMXBean.class);
+               return nameCreated;
+       }
+
 }