Convert packetcable-policy-server to blueprint 57/61557/2
authorTom Pantelis <tompantelis@gmail.com>
Fri, 11 Aug 2017 19:15:10 +0000 (15:15 -0400)
committerTom Pantelis <tompantelis@gmail.com>
Sat, 19 Aug 2017 00:29:57 +0000 (20:29 -0400)
Converted the packetcable-policy-server to blueprint and
removed the config subsystem artifacts as the CSS is
deprecated in Nitrogen.

This bundle isn't even installed by any feature so it appears
not to be used but we need want to remove usage of CSS artifacts
for eventual removal.

Change-Id: I8112581833974bc0a1a1d5a0c0c7e56c849004fe
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
packetcable-policy-server/pom.xml
packetcable-policy-server/src/main/config/default-config.xml [deleted file]
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/PacketcableProvider.java
packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java [deleted file]
packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModuleFactory.java [deleted file]
packetcable-policy-server/src/main/resources/org/opendaylight/blueprint/packetcable-policy-server.xml [new file with mode: 0644]
packetcable-policy-server/src/main/yang/packetcable-policy-server.yang [deleted file]

index b17e518b8ca0f7953ee9e8affc4f943498050dec..aa3a60ab96807de07a547209baed596de95b3155 100644 (file)
@@ -3,9 +3,9 @@
     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>
     <parent>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-parent</artifactId>
-        <version>0.8.0-SNAPSHOT</version>
+        <groupId>org.opendaylight.mdsal</groupId>
+        <artifactId>binding-parent</artifactId>
+        <version>0.12.0-SNAPSHOT</version>
         <relativePath />
     </parent>
     <artifactId>packetcable-policy-server</artifactId>
     <properties>
         <sal-binding-api.version>1.7.0-SNAPSHOT</sal-binding-api.version>
     </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>mdsal-artifacts</artifactId>
+                <version>${sal-binding-api.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
     <dependencies>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>packetcable-policy-model</artifactId>
             <version>${project.version}</version>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-api</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>sal-binding-api</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-config</artifactId>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
         </dependency>
         <dependency>
             <groupId>junit</groupId>
diff --git a/packetcable-policy-server/src/main/config/default-config.xml b/packetcable-policy-server/src/main/config/default-config.xml
deleted file mode 100644 (file)
index cea0b46..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2013 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
--->
-<snapshot>
-    <required-capabilities>
-        <capability>urn:opendaylight:params:xml:ns:yang:packetcable:packetcable-policy-server:impl?module=packetcable-policy-server-impl&amp;revision=2014-01-31</capability>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&amp;revision=2013-10-28</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:packetcable:packetcable-policy-server:impl">
-                        prefix:packetcable-policy-server-impl
-                    </type>
-                    <name>packetcable-policy-server-default-impl</name>
-                    <data-broker>
-                       <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-broker-osgi-registry</type>
-                       <name>binding-osgi-broker</name>
-                    </data-broker>
-                    <rpc-registry>
-                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-rpc-registry</type>
-                        <name>binding-rpc-broker</name>
-                    </rpc-registry> 
-                </module>
-            </modules>
-        </data>
-    </configuration>
-</snapshot>
index 330a33eda110db05fb858099db5ef0c7cc1fdd4b..6845b2f4cd521641159a14feb5dedd252f4a8d18 100644 (file)
@@ -11,11 +11,9 @@ package org.opendaylight.controller.packetcable.provider;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.base.Optional;
-import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
-
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.text.DateFormat;
@@ -32,10 +30,8 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executor;
 import java.util.concurrent.Executors;
 import java.util.concurrent.Future;
-
 import javax.annotation.Nonnull;
 import javax.annotation.concurrent.ThreadSafe;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
@@ -45,18 +41,14 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.packetcable.provider.validation.DataValidator;
 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
-import org.opendaylight.controller.packetcable.provider.validation.Validator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.CcapsValidatorProviderFactory;
 import org.opendaylight.controller.packetcable.provider.validation.impl.QosValidatorProviderFactory;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RoutedRpcRegistration;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration;
-import org.opendaylight.controller.sal.binding.api.BindingAwareProvider;
+import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.DateAndTime;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.AppContext;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapContext;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapPollConnectionInput;
@@ -66,20 +58,21 @@ import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionI
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionOutput;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.CcapSetConnectionOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Ccaps;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.FailureType;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.PacketcableService;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.Qos;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesInput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutputBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateInput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutput;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateInput;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateOutput;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosDeleteGateOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoInput;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoOutput;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosGateInfoOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosPollGatesOutputBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateInput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutput;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.QosSetGateOutputBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceClassName;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ServiceFlowDirection;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.ccap.attributes.ConnectionBuilder;
@@ -103,36 +96,27 @@ import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.app
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.GateKey;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfile;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.TrafficProfileBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.TrafficProfileChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.FlowSpecChoice;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoice;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.flow.spec.profile.FlowSpecProfile;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.qos.traffic.profile.traffic.profile.traffic.profile.choice.ServiceClassNameChoiceBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfile;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.SetResponseType;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessful;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessfulBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailure;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailureBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessful;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.pcmm.serviceclass.name.profile.ServiceClassNameProfileBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteFailure;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteFailureBuilder;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessful;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.delete.gate.response.delete.response.type.DeleteSuccessfulBuilder;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoFailure;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoFailureBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131.PacketcableProviderModule;
-import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.FailureType;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.InfoSuccessfulBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailure;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetFailureBuilder;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessful;
+import org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.set.gate.response.set.response.type.SetSuccessfulBuilder;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.pcmm.gates.IGateSpec.Direction;
-import org.pcmm.gates.impl.DOCSISFlowSpecTrafficProfile;
-import org.pcmm.gates.impl.DOCSISServiceClassNameTrafficProfile;
 import org.pcmm.rcd.IPCMMClient;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -145,7 +129,7 @@ import org.slf4j.LoggerFactory;
  * TODO Don't implement PacketcableService, move that into an inner class
  */
 @ThreadSafe
-public class PacketcableProvider implements BindingAwareProvider, AutoCloseable, PacketcableService {
+public class PacketcableProvider implements AutoCloseable, PacketcableService {
 
     private static final Logger logger = LoggerFactory.getLogger(PacketcableProvider.class);
 
@@ -171,14 +155,14 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
     /**
      * The ODL object used to broker messages throughout the framework
      */
-    private DataBroker dataBroker;
-    private MdsalUtils mdsalUtils;
+    private final DataBroker dataBroker;
+    private final MdsalUtils mdsalUtils;
 
     //Routed RPC Registration
     private RoutedRpcRegistration<PacketcableService> routedRpcRegistration;
 
     // unrouted RPC Registration
-    private RpcRegistration rpcRegistration;
+    private RpcRegistration<PacketcableService> rpcRegistration;
 
     // Data change listeners/registrations
     private final CcapsDataTreeChangeListener ccapsDataTreeChangeListener = new CcapsDataTreeChangeListener();
@@ -187,23 +171,23 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
     private ListenerRegistration<DataTreeChangeListener> ccapsDataTreeChangeListenerRegistration;
     private ListenerRegistration<DataTreeChangeListener> qosDataTreeChangeListenerRegistration;
 
+    private final RpcProviderRegistry rpcProviderRegistry;
+
     /**
      * Constructor
      */
-    public PacketcableProvider() {
+    public PacketcableProvider(final DataBroker dataBroker, final RpcProviderRegistry rpcProviderRegistry) {
         logger.info("Starting Packetcable Provider");
+        this.dataBroker = dataBroker;
+        this.rpcProviderRegistry = rpcProviderRegistry;
+        mdsalUtils = new MdsalUtils(dataBroker);
     }
 
-    @Override
-    public void onSessionInitiated(ProviderContext session) {
-        logger.info("Packetcable Session Initiated");
+    public void init() {
         logger.info("logging levels: error={}, warn={}, info={}, debug={}, trace={}",
                     logger.isErrorEnabled(), logger.isWarnEnabled(),
                     logger.isInfoEnabled(), logger.isDebugEnabled(), logger.isTraceEnabled());
 
-        dataBroker = session.getSALService(DataBroker.class);
-
-        mdsalUtils = new MdsalUtils(dataBroker);
         final DataTreeIdentifier<Ccap> ccapsDataTreeIid =
                 new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, ccapsIID.child(Ccap.class));
 
@@ -216,11 +200,10 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         qosDataTreeChangeListenerRegistration = dataBroker.registerDataTreeChangeListener(appDataTreeIid, new QosDataTreeChangeListener());
 
-        rpcRegistration = session.addRpcImplementation(PacketcableService.class, this);
-        logger.info("onSessionInitiated().rpcRegistration: {}", rpcRegistration);
-        routedRpcRegistration = session.addRoutedRpcImplementation(PacketcableService.class, this);
-        logger.info("onSessionInitiated().routedRpcRegistration: {}", routedRpcRegistration);
+        rpcRegistration = rpcProviderRegistry.addRpcImplementation(PacketcableService.class, this);
+        routedRpcRegistration = rpcProviderRegistry.addRoutedRpcImplementation(PacketcableService.class, this);
 
+        logger.info("Packetcable Session Initiated");
     }
 
     /**
@@ -235,10 +218,14 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         if (qosDataTreeChangeListenerRegistration != null) {
             qosDataTreeChangeListenerRegistration.close();
         }
-        
+
         if (rpcRegistration != null) {
             rpcRegistration.close();
         }
+
+        if (routedRpcRegistration != null) {
+            routedRpcRegistration.close();
+        }
     }
 
     private void updateCcapMaps(final Ccap ccap) {
@@ -735,8 +722,8 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                     .setCopsGateUsageInfo("");
 
             ServiceFlowDirection scnDirection = null;
-            
-            if (newGate.getTrafficProfile().getTrafficProfileChoice() instanceof ServiceClassNameChoice) {    
+
+            if (newGate.getTrafficProfile().getTrafficProfileChoice() instanceof ServiceClassNameChoice) {
                 final ServiceClassName scn =
                     ((ServiceClassNameChoice)newGate.getTrafficProfile()
                      .getTrafficProfileChoice())
@@ -764,7 +751,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
             else {
                 gateBuilder.setTrafficProfile(newGate.getTrafficProfile());
             }
-            
+
             //
             // since we may be modifying the contents of the original request GateSpec
             // to update flow direction (based on the ccap SCN configuration) we need to
@@ -916,7 +903,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         // TODO refactor this method into smaller parts
 
         InstanceIdentifier<Ccap> ccapIid = (InstanceIdentifier<Ccap>) input.getCcapId();
-        List<String> outputError = new ArrayList<String>();
+        List<String> outputError = new ArrayList<>();
         String rpcResponse = null;
         Boolean inputIsConnected = input.getConnection().isConnected();
         Boolean effectiveIsConnected = null;
@@ -998,7 +985,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         // TODO refactor this method into smaller parts
 
         InstanceIdentifier<Ccap> ccapIid = (InstanceIdentifier<Ccap>) input.getCcapId();
-        List<String> outputError = new ArrayList<String>();
+        List<String> outputError = new ArrayList<>();
 
         String ccapId = input.getCcapId().firstIdentifierOf(Ccap.class).firstKeyOf(Ccap.class).getCcapId();
         PCMMService pcmmService = pcmmServiceMap.get(ccapId);
@@ -1180,12 +1167,12 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
         if (gate.get(0).getCopsGateId() != null) {
             retryOption = true;
         }
-        
+
         PCMMService.GateSendStatus status = null;
         synchronized (pcmmService) {
             logger.info("Sending gate: Path {} inputSubscriberId {} cops-gate-id {}",
                         newGatePathStr, inputSubscriberId, gate.get(0).getCopsGateId());
-            
+
             status = pcmmService.sendGateSet(newGatePathStr, subscriberAddr, newGate);
         }
 
@@ -1312,7 +1299,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
 
         if (newGate != null) {
             strGateId = newGate.getCopsGateId();
-            if ((strGateId == null) || (strGateId.length() == 0) || (strGateId.equals("null"))){
+            if (strGateId == null || strGateId.length() == 0 || strGateId.equals("null")){
                 final String msg =
                     String.format("qosDeleteGate(): Unknown CopsGateId %s", newGatePathStr);
                 logger.error(msg);
@@ -1479,7 +1466,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
             outputBuilder.setInfoResponseType(f);
             return Futures.immediateFuture(RpcResultBuilder.success(outputBuilder.build()).build());
         }
-        
+
         PCMMService.GateSendStatus status = null;
 
         synchronized (pcmmService) {
@@ -1514,7 +1501,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
             org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate responseGate =
                 responseGateBuilder.build();
             List<org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate> responseGateList =
-                new ArrayList<org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.gates.Gate>();
+                new ArrayList<>();
             responseGateList.add(responseGate);
             org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.GatesBuilder responseGatesBuilder =
                 new org.opendaylight.yang.gen.v1.urn.packetcable.rev170224.qos.gate.info.response.info.response.type.info.successful.GatesBuilder();
@@ -1591,7 +1578,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                     opsCopsGateId = opsGate.getCopsGateId();
                     gatePathStr = opsGate.getGatePath();
 
-                    if ((!Objects.equals(opsCopsGateId, "")) && (!Objects.equals(opsCopsGateId, null))) {
+                    if (!Objects.equals(opsCopsGateId, "") && !Objects.equals(opsCopsGateId, null)) {
                         ccapId = findCcapForSubscriberId(getInetAddress(inputSubscriberId)).getCcapId();
                         PCMMService pcmmService = pcmmServiceMap.get(ccapId);
                         //is the CCAP socket open?
@@ -1657,7 +1644,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                         //generate active gatePathStr
                         gatePathStr = appKey.getAppId() + "/" + subscriberId + "/" + gateId;
 
-                        if ((!Objects.equals(opsCopsGateId, "")) && (!Objects.equals(opsCopsGateId, null))) {
+                        if (!Objects.equals(opsCopsGateId, "") && !Objects.equals(opsCopsGateId, null)) {
                             ccapId = findCcapForSubscriberId(getInetAddress(subscriberId)).getCcapId();
                             PCMMService pcmmService = pcmmServiceMap.get(ccapId);
                             //is the CCAP socket open?
@@ -1717,8 +1704,8 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
     }
     private class PollAllGatesForApp implements Runnable {
 
-        private InstanceIdentifier <App> appIid;
-        private App app;
+        private final InstanceIdentifier <App> appIid;
+        private final App app;
 
         private PollAllGatesForApp (InstanceIdentifier <App> appIid, App app) {
             this.app = app;
@@ -1766,7 +1753,7 @@ public class PacketcableProvider implements BindingAwareProvider, AutoCloseable,
                     //generate active gatePathStr
                     String gatePathStr = appKey.getAppId() + "/" + subscriberId + "/" + gateId;
 
-                    if ((!Objects.equals(opsCopsGateId, "")) && (!Objects.equals(opsCopsGateId, null))) {
+                    if (!Objects.equals(opsCopsGateId, "") && !Objects.equals(opsCopsGateId, null)) {
                         String ccapId = findCcapForSubscriberId(getInetAddress(subscriberId)).getCcapId();
                         PCMMService pcmmService = pcmmServiceMap.get(ccapId);
                         //is the CCAP socket open?
diff --git a/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java b/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModule.java
deleted file mode 100644 (file)
index 9351656..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131;
-
-import org.opendaylight.controller.packetcable.provider.PacketcableProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class PacketcableProviderModule extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131.AbstractPacketcableProviderModule {
-    private static final Logger logger = LoggerFactory.getLogger(PacketcableProviderModule.class);
-
-    public PacketcableProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public PacketcableProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131.PacketcableProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public void customValidation() {
-        // add custom validation form module attributes here.
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        logger.info("Creating PacketcableProvider instance");
-        final PacketcableProvider provider = new PacketcableProvider();
-        getDataBrokerDependency().registerProvider(provider);
-        return provider;
-    }
-
-}
diff --git a/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModuleFactory.java b/packetcable-policy-server/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/packetcable/packetcable/policy/server/impl/rev140131/PacketcableProviderModuleFactory.java
deleted file mode 100644 (file)
index cdd8faa..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
-* Generated file
-*
-* Generated from: yang module name: packetcable-policy-server-impl yang module local name: packetcable-policy-server-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Tue Apr 21 12:24:46 MDT 2015
-*
-* Do not modify this file unless it is present under src/main directory
-*/
-package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131;
-public class PacketcableProviderModuleFactory extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.packetcable.packetcable.policy.server.impl.rev140131.AbstractPacketcableProviderModuleFactory {
-
-}
diff --git a/packetcable-policy-server/src/main/resources/org/opendaylight/blueprint/packetcable-policy-server.xml b/packetcable-policy-server/src/main/resources/org/opendaylight/blueprint/packetcable-policy-server.xml
new file mode 100644 (file)
index 0000000..1547d0d
--- /dev/null
@@ -0,0 +1,15 @@
+<?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"
+    odl:use-default-for-reference-types="true">
+
+  <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"/>
+  <reference id="rpcProviderRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"/>
+
+  <bean id="packetcableProvider" class="org.opendaylight.controller.packetcable.provider.PacketcableProvider"
+          init-method="init" destroy-method="close">
+    <argument ref="dataBroker"/>
+    <argument ref="rpcProviderRegistry"/>
+  </bean>
+
+</blueprint>
diff --git a/packetcable-policy-server/src/main/yang/packetcable-policy-server.yang b/packetcable-policy-server/src/main/yang/packetcable-policy-server.yang
deleted file mode 100644 (file)
index c32490a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-module packetcable-policy-server-impl {
-
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:packetcable:packetcable-policy-server:impl";
-    prefix "packetcable-policy-server-impl";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import rpc-context { prefix rpcx; revision-date 2013-06-17; }
-    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-    import ietf-inet-types {prefix inet;revision-date 2013-07-15;}
-
-    description
-        "This module contains the base YANG definitions for
-        packetcable-policy-server impl implementation.";
-
-    revision "2014-01-31" {
-        description
-            "Initial revision.";
-    }
-
-    // This is the definition of the service implementation as a module identity.
-    identity packetcable-policy-server-impl {
-            base config:module-type;
-            config:java-name-prefix PacketcableProvider;
-    }
-
-    // Augments the 'configuration' choice node under modules/module.
-    augment "/config:modules/config:module/config:configuration" {
-        case packetcable-policy-server-impl {
-            when "/config:modules/config:module/config:type = 'packetcable-policy-server-impl'";
-
-                     //wires in the data-broker and rpc services
-                     container data-broker {
-                       uses config:service-ref {
-                         refine type {
-                             mandatory true;
-                             config:required-identity mdsal:binding-broker-osgi-registry;
-                         }
-                       }
-                     }
-                     container rpc-registry {
-                       uses config:service-ref {
-                         refine type {
-                            mandatory true;
-                            config:required-identity mdsal:binding-rpc-registry;
-                         }
-                       }
-                     }
-        }
-    }
-}