Add the ability to configure which stateful revision should be supported 55/4855/5
authorRobert Varga <rovarga@cisco.com>
Mon, 27 Jan 2014 09:53:17 +0000 (10:53 +0100)
committerRobert Varga <rovarga@cisco.com>
Mon, 27 Jan 2014 22:46:38 +0000 (23:46 +0100)
Change-Id: I241e47873fc6ace8e2c0283bb4b38a93c3a8a98a
Signed-off-by: Robert Varga <rovarga@cisco.com>
16 files changed:
pcep/controller-config/src/main/resources/initial/32-pcep.xml
pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/PCEPTopologyProviderModule.java
pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModule.java [new file with mode: 0644]
pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModuleFactory.java [new file with mode: 0644]
pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModule.java [new file with mode: 0644]
pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModuleFactory.java [new file with mode: 0644]
pcep/topology-provider-config/src/main/yang/config-pcep-topology-provider.yang
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPTopologyProvider.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/ServerSessionManager.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListener.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListenerFactory.java [new file with mode: 0644]
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerFactory.java [new file with mode: 0644]
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologySessionListener.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologySessionListenerFactory.java [new file with mode: 0644]
pcep/topology-provider/src/test/java/org/opendaylight/bgpcep/pcep/topology/provider/ParserToSalTest.java

index c6784080819906bb0a5f940dfec0ea0d85f94604..51e2fe0e07ce5f716614fd6659400b99f35ca530 100644 (file)
                         <name>global-timer</name>
                     </timer>
                 </module>
+
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider">prefix:pcep-topology-stateful02</type>
+                    <name>global</name>
+                </module>
+                <module>
+                    <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider">prefix:pcep-topology-stateful07</type>
+                    <name>global</name>
+                </module>
+
                 <module>
                     <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider">prefix:pcep-topology-provider</type>
                     <name>pcep-topology</name>
                         <type xmlns:pgmspi="urn:opendaylight:params:xml:ns:yang:controller:programming:spi">pgmspi:instruction-scheduler</type>
                         <name>global-instruction-scheduler</name>
                     </scheduler>
+                    <stateful-plugin>
+                        <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider">prefix:pcep-topology-stateful</type>
+                        <name>stateful07</name>
+                    </stateful-plugin>
                     <topology-id>pcep-topology</topology-id>
                 </module>
             </modules>
                         <provider>/config/modules/module[name='pcep-topology-provider']/instance[name='pcep-topology']</provider>
                     </instance>
                 </service>
+                <service>
+                    <type xmlns:pcep="urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider">pcep:pcep-topology-stateful</type>
+                    <instance>
+                        <name>stateful02</name>
+                        <provider>/config/modules/module[name='pcep-topology-stateful02']/instance[name='global']</provider>
+                    </instance>
+                    <instance>
+                        <name>stateful07</name>
+                        <provider>/config/modules/module[name='pcep-topology-stateful07']/instance[name='global']</provider>
+                    </instance>
+                </service>
             </services>
         </data>
 
index 4606a6a30bac7c411cc37dd5fe7d68d23a42933c..f698a01b917b5434da2ad9aecaeb1b0c61edbaea 100644 (file)
@@ -56,6 +56,8 @@ public final class PCEPTopologyProviderModule extends org.opendaylight.controlle
                                "is not set.", listenAddressJmxAttribute);
                JmxAttributeValidationException.checkNotNull(getListenPort(),
                                "is not set.", listenPortJmxAttribute);
+               JmxAttributeValidationException.checkNotNull(getStatefulPlugin(),
+                               "is not set.", statefulPluginJmxAttribute);
        }
 
        private InetAddress listenAddress() {
@@ -76,7 +78,7 @@ public final class PCEPTopologyProviderModule extends org.opendaylight.controlle
                final InetSocketAddress address = new InetSocketAddress(listenAddress(), getListenPort().getValue());
                try {
                        return PCEPTopologyProvider.create(getDispatcherDependency(), address,
-                                       getSchedulerDependency(), getDataProviderDependency(), getRpcRegistryDependency(), topology);
+                                       getSchedulerDependency(), getDataProviderDependency(), getRpcRegistryDependency(), topology, getStatefulPluginDependency());
                } catch (InterruptedException | ExecutionException e) {
                        LOG.error("Failed to instantiate topology provider at {}", address, e);
                        throw new RuntimeException("Failed to instantiate provider", e);
diff --git a/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModule.java b/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModule.java
new file mode 100644 (file)
index 0000000..6d416a2
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2014 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
+ */
+/**
+ * Generated file
+
+ * Generated from: yang module name: config-pcep-topology-provider  yang module local name: pcep-topology-stateful02
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Mon Jan 27 11:08:05 CET 2014
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
+package org.opendaylight.controller.config.yang.pcep.topology.provider;
+
+import org.opendaylight.bgpcep.pcep.topology.provider.Stateful02TopologySessionListenerFactory;
+
+/**
+ *
+ */
+public final class Stateful02TopologySessionListenerModule extends org.opendaylight.controller.config.yang.pcep.topology.provider.AbstractStateful02TopologySessionListenerModule
+{
+
+       public Stateful02TopologySessionListenerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+               super(identifier, dependencyResolver);
+       }
+
+       public Stateful02TopologySessionListenerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+                       final Stateful02TopologySessionListenerModule oldModule, final java.lang.AutoCloseable oldInstance) {
+
+               super(identifier, dependencyResolver, oldModule, oldInstance);
+       }
+
+       @Override
+       protected void customValidation(){
+               // Add custom validation for module attributes here.
+       }
+
+       @Override
+       public java.lang.AutoCloseable createInstance() {
+               return new AutoCloseableStateful02TopologySessionListenerFactory();
+       }
+
+       private static final class AutoCloseableStateful02TopologySessionListenerFactory extends Stateful02TopologySessionListenerFactory implements AutoCloseable {
+               @Override
+               public void close() {
+                       // Nothing to do
+               }
+       }
+}
diff --git a/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModuleFactory.java b/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful02TopologySessionListenerModuleFactory.java
new file mode 100644 (file)
index 0000000..1354b75
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ *
+ * Copyright (c) 2014 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
+ */
+/**
+* Generated file
+
+* Generated from: yang module name: config-pcep-topology-provider  yang module local name: pcep-topology-stateful02
+* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+* Generated at: Mon Jan 27 11:08:05 CET 2014
+*
+* Do not modify this file unless it is present under src/main directory
+*/
+package org.opendaylight.controller.config.yang.pcep.topology.provider;
+
+/**
+*
+*/
+public class Stateful02TopologySessionListenerModuleFactory extends org.opendaylight.controller.config.yang.pcep.topology.provider.AbstractStateful02TopologySessionListenerModuleFactory
+{
+
+
+}
diff --git a/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModule.java b/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModule.java
new file mode 100644 (file)
index 0000000..6d44b97
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2014 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
+ */
+/**
+ * Generated file
+
+ * Generated from: yang module name: config-pcep-topology-provider  yang module local name: pcep-topology-stateful07
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Mon Jan 27 11:08:05 CET 2014
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
+package org.opendaylight.controller.config.yang.pcep.topology.provider;
+
+import org.opendaylight.bgpcep.pcep.topology.provider.Stateful07TopologySessionListenerFactory;
+
+/**
+ *
+ */
+public final class Stateful07TopologySessionListenerModule extends org.opendaylight.controller.config.yang.pcep.topology.provider.AbstractStateful07TopologySessionListenerModule
+{
+
+       public Stateful07TopologySessionListenerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+               super(identifier, dependencyResolver);
+       }
+
+       public Stateful07TopologySessionListenerModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+                       final Stateful07TopologySessionListenerModule oldModule, final java.lang.AutoCloseable oldInstance) {
+
+               super(identifier, dependencyResolver, oldModule, oldInstance);
+       }
+
+       @Override
+       protected void customValidation(){
+               // Add custom validation for module attributes here.
+       }
+
+       @Override
+       public java.lang.AutoCloseable createInstance() {
+               return new AutoCloseableStateful07TopologySessionListenerFactory();
+       }
+
+       private static final class AutoCloseableStateful07TopologySessionListenerFactory extends Stateful07TopologySessionListenerFactory implements AutoCloseable {
+               @Override
+               public void close() {
+                       // Nothing to do
+               }
+       }
+}
diff --git a/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModuleFactory.java b/pcep/topology-provider-config/src/main/java/org/opendaylight/controller/config/yang/pcep/topology/provider/Stateful07TopologySessionListenerModuleFactory.java
new file mode 100644 (file)
index 0000000..103c807
--- /dev/null
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2014 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
+ */
+/**
+* Generated file
+
+* Generated from: yang module name: config-pcep-topology-provider  yang module local name: pcep-topology-stateful07
+* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+* Generated at: Mon Jan 27 11:08:05 CET 2014
+*
+* Do not modify this file unless it is present under src/main directory
+*/
+package org.opendaylight.controller.config.yang.pcep.topology.provider;
+
+/**
+*
+*/
+public class Stateful07TopologySessionListenerModuleFactory extends org.opendaylight.controller.config.yang.pcep.topology.provider.AbstractStateful07TopologySessionListenerModuleFactory
+{
+
+
+}
index af7861f73e8dd62b50bebe7f6eac50c25f686a44..e68256f3188485304a5dbf161befd31761963168 100644 (file)
@@ -32,10 +32,43 @@ module config-pcep-topology-provider {
             "Initial revision";
     }
 
+    identity pcep-topology-stateful {
+        description
+            "Service representing a stateful draft support module";
+
+        base "config:service-type";
+        config:java-class "org.opendaylight.bgpcep.pcep.topology.provider.TopologySessionListenerFactory";
+    }
+
+    identity pcep-topology-stateful02 {
+        base config:module-type;
+        config:provided-service pcep-topology-stateful;
+        config:java-name-prefix Stateful02TopologySessionListener;
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case pcep-topology-stateful02 {
+            when "/config:modules/config:module/config:type = 'pcep-topology-stateful02'";
+        }
+    }
+
+    identity pcep-topology-stateful07 {
+        base config:module-type;
+        config:provided-service pcep-topology-stateful;
+        config:java-name-prefix Stateful07TopologySessionListener;
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case pcep-topology-stateful07 {
+            when "/config:modules/config:module/config:type = 'pcep-topology-stateful07'";
+        }
+    }
+
     identity pcep-topology-reference {
         description
             "Service representing a PCEP-enabled topology.";
 
+        // FIXME: should be a topology-reference, really
         //base "topo:topology-reference";
         base "config:service-type";
         config:java-class "org.opendaylight.bgpcep.topology.TopologyReference";
@@ -87,6 +120,15 @@ module config-pcep-topology-provider {
                 }
             }
 
+            container stateful-plugin {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity pcep-topology-stateful;
+                    }
+                }
+            }
+
             leaf topology-id {
                 type nt:topology-id;
                 mandatory true;
index 965319d962e18f5fecd704127a99898865cf3687..dcd60582d1d03f1473eb9f3ede1b1a059e76e752 100644 (file)
@@ -51,10 +51,10 @@ public final class PCEPTopologyProvider extends DefaultTopologyReference impleme
 
        public static PCEPTopologyProvider create(final PCEPDispatcher dispatcher, final InetSocketAddress address,
                        final InstructionScheduler scheduler, final DataProviderService dataService, final RpcProviderRegistry rpcRegistry,
-                       final InstanceIdentifier<Topology> topology)
+                       final InstanceIdentifier<Topology> topology, final TopologySessionListenerFactory listenerFactory)
                                        throws InterruptedException, ExecutionException {
 
-               final ServerSessionManager manager = new ServerSessionManager(dataService, topology);
+               final ServerSessionManager manager = new ServerSessionManager(dataService, topology, listenerFactory);
                final ChannelFuture f = dispatcher.createServer(address, manager);
                f.get();
 
index 7413f436807e4b93840465dbca5b60464b0751fd..efbdc255b4a3aad27f0f8ad6e3f86f43b0c1ce67 100644 (file)
@@ -53,12 +53,14 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
 
        private final Map<NodeId, TopologySessionListener> nodes = new HashMap<>();
        private final Map<NodeId, TopologyNodeState> state = new HashMap<>();
+       private final TopologySessionListenerFactory listenerFactory;
        private final InstanceIdentifier<Topology> topology;
        private final DataProviderService dataProvider;
 
-       public ServerSessionManager(final DataProviderService dataProvider, final InstanceIdentifier<Topology> topology) {
+       public ServerSessionManager(final DataProviderService dataProvider, final InstanceIdentifier<Topology> topology, final TopologySessionListenerFactory listenerFactory) {
                this.dataProvider = Preconditions.checkNotNull(dataProvider);
                this.topology = Preconditions.checkNotNull(topology);
+               this.listenerFactory = Preconditions.checkNotNull(listenerFactory);
 
                // Make sure the topology does not exist
                final Object c = dataProvider.readOperationalData(topology);
@@ -109,7 +111,7 @@ final class ServerSessionManager implements SessionListenerFactory<PCEPSessionLi
 
        @Override
        public PCEPSessionListener getSessionListener() {
-               return new Stateful07TopologySessionListener(this);
+               return listenerFactory.createTopologySessionListener(this);
        }
 
        @Override
index 34ae6343f17a3fad1ede21a959d3cb712a05f1c7..44dbf5346e2a7e864b9f972b4b0ba9cf57c76a65 100644 (file)
@@ -15,7 +15,6 @@ import javax.annotation.concurrent.GuardedBy;
 
 import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
 import org.opendaylight.protocol.pcep.PCEPSession;
-import org.opendaylight.protocol.pcep.PCEPSessionListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated._00.rev140113.PcinitiateBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated._00.rev140113.pcinitiate.message.PcinitiateMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated._00.rev140113.pcinitiate.message.pcinitiate.message.RequestsBuilder;
@@ -56,8 +55,8 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.ListenableFuture;
 
-public class Stateful02TopologySessionListener extends AbstractTopologySessionListener<PlspId, PlspId> implements PCEPSessionListener {
-       private static final Logger LOG = LoggerFactory.getLogger(Stateful07TopologySessionListener.class);
+public class Stateful02TopologySessionListener extends AbstractTopologySessionListener<PlspId, PlspId> {
+       private static final Logger LOG = LoggerFactory.getLogger(Stateful02TopologySessionListener.class);
 
        /**
         * @param serverSessionManager
diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListenerFactory.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful02TopologySessionListenerFactory.java
new file mode 100644 (file)
index 0000000..363d441
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2014 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.bgpcep.pcep.topology.provider;
+
+public class Stateful02TopologySessionListenerFactory implements TopologySessionListenerFactory {
+       @Override
+       public final TopologySessionListener createTopologySessionListener(final ServerSessionManager manager) {
+               return new Stateful02TopologySessionListener(manager);
+       }
+}
index 0c47d8350492e1e99f9b227c2e3f6f7b5078d9de..2d2ae22def34582d7e4ca4f6e18f505e6ddc48bc 100644 (file)
@@ -15,7 +15,6 @@ import javax.annotation.concurrent.GuardedBy;
 
 import org.opendaylight.controller.sal.binding.api.data.DataModificationTransaction;
 import org.opendaylight.protocol.pcep.PCEPSession;
-import org.opendaylight.protocol.pcep.PCEPSessionListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.PcinitiateBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.pcinitiate.message.PcinitiateMessageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.crabbe.initiated.rev131126.pcinitiate.message.pcinitiate.message.RequestsBuilder;
@@ -63,7 +62,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import com.google.common.util.concurrent.ListenableFuture;
 
-final class Stateful07TopologySessionListener extends AbstractTopologySessionListener<SrpIdNumber, PlspId> implements PCEPSessionListener {
+final class Stateful07TopologySessionListener extends AbstractTopologySessionListener<SrpIdNumber, PlspId> {
        private static final Logger LOG = LoggerFactory.getLogger(Stateful07TopologySessionListener.class);
 
        /**
diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerFactory.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListenerFactory.java
new file mode 100644 (file)
index 0000000..306c677
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2014 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.bgpcep.pcep.topology.provider;
+
+public class Stateful07TopologySessionListenerFactory implements TopologySessionListenerFactory {
+       @Override
+       public final TopologySessionListener createTopologySessionListener(final ServerSessionManager manager) {
+               return new Stateful07TopologySessionListener(manager);
+       }
+}
index 9a830ec696b6ee71f4c2fc374068ebb3586e905e..f692792ee101598b8d8ec02a7c4e18357d50e84f 100644 (file)
@@ -7,7 +7,9 @@
  */
 package org.opendaylight.bgpcep.pcep.topology.provider;
 
-interface TopologySessionListener extends AutoCloseable, TopologySessionRPCs {
+import org.opendaylight.protocol.pcep.PCEPSessionListener;
+
+interface TopologySessionListener extends AutoCloseable, PCEPSessionListener, TopologySessionRPCs {
        @Override
        public void close();
 }
\ No newline at end of file
diff --git a/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologySessionListenerFactory.java b/pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/TopologySessionListenerFactory.java
new file mode 100644 (file)
index 0000000..32c1c3a
--- /dev/null
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2014 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.bgpcep.pcep.topology.provider;
+
+public interface TopologySessionListenerFactory {
+       TopologySessionListener createTopologySessionListener(ServerSessionManager manager);
+}
index ee88fe1475b36250f085effe1f416e8733862992..0b4f751529346df07d9591e3acce73016c6da4e7 100644 (file)
@@ -150,7 +150,7 @@ public class ParserToSalTest {
 
                        @Override
                        public RpcResult<TransactionStatus> get(final long timeout, final TimeUnit unit) throws InterruptedException,
-                                       ExecutionException, TimeoutException {
+                       ExecutionException, TimeoutException {
                                return null;
                        }
                }).when(this.mockedTransaction).commit();
@@ -200,7 +200,7 @@ public class ParserToSalTest {
                }).when(this.mockedTransaction).putOperationalData(Matchers.any(InstanceIdentifier.class), Matchers.any(DataObject.class));
 
                this.manager = new ServerSessionManager(this.providerService, InstanceIdentifier.builder(NetworkTopology.class).child(
-                               Topology.class, new TopologyKey(new TopologyId("testtopo"))).toInstance());
+                               Topology.class, new TopologyKey(new TopologyId("testtopo"))).toInstance(), new Stateful07TopologySessionListenerFactory());
                final DefaultPCEPSessionNegotiator neg = new DefaultPCEPSessionNegotiator(new HashedWheelTimer(), mock(Promise.class), this.clientListener, this.manager.getSessionListener(), (short) 1, 5, this.localPrefs);
                this.session = neg.createSession(new HashedWheelTimer(), this.clientListener, this.localPrefs, this.localPrefs);