CommonService has its fields private 87/19887/1
authorMartin Bobak <mbobak@cisco.com>
Fri, 8 May 2015 09:17:01 +0000 (11:17 +0200)
committerMartin Bobak <mbobak@cisco.com>
Fri, 8 May 2015 09:30:32 +0000 (11:30 +0200)
Change-Id: I24a3ecf9ab3b869cc0575f4b36b4a7effb6a468a
Signed-off-by: Martin Bobak <mbobak@cisco.com>
17 files changed:
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/CommonService.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/FlowCapableTransactionServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/NodeConfigServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/PacketProcessingServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalEchoServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalFlowServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalGroupServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalMeterServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalPortServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/SalTableServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightFlowTableStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightGroupStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightMeterStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightPortStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/OpendaylightQueueStatisticsServiceImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/dedicated/StatisticsGatheringService.java

index dcc72e39df38d495f8faf038e4b43bce5a454126..c493e354e18f58ca62ba1cbfc877bb302e6f60bb 100644 (file)
@@ -28,29 +28,22 @@ import org.slf4j.Logger;
 public abstract class CommonService {
     private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(CommonService.class);
     private static final long WAIT_TIME = 2000;
-    protected final static Future<RpcResult<Void>> ERROR_RPC_RESULT = Futures.immediateFuture(RpcResultBuilder
+    private final static Future<RpcResult<Void>> ERROR_RPC_RESULT = Futures.immediateFuture(RpcResultBuilder
             .<Void>failed().withError(ErrorType.APPLICATION, "", "Request quota exceeded.").build());
-    protected static final BigInteger PRIMARY_CONNECTION = new BigInteger("0");
 
-    // protected OFRpcTaskContext rpcTaskContext;
-    public short version;
-    public BigInteger datapathId;
-    protected RequestContextStack requestContextStack;
-    protected DeviceContext deviceContext;
-    public ConnectionAdapter primaryConnectionAdapter;
-    public MessageSpy messageSpy;
 
+    private static final BigInteger PRIMARY_CONNECTION = new BigInteger("0");
+
+    private final short version;
+    private final BigInteger datapathId;
+    private final RequestContextStack requestContextStack;
+    private final DeviceContext deviceContext;
+    private final ConnectionAdapter primaryConnectionAdapter;
+    private final MessageSpy messageSpy;
 
-    /**
-     * @deprecated use {@link #CommonService(RequestContextStack, DeviceContext)}
-     */
-    @Deprecated
-    public CommonService() {
-    }
 
     public CommonService(final RequestContextStack requestContextStack, DeviceContext deviceContext) {
         this.requestContextStack = requestContextStack;
-
         this.deviceContext = deviceContext;
         final FeaturesReply features = this.deviceContext.getPrimaryConnectionContext().getFeatures();
         this.datapathId = features.getDatapathId();
@@ -58,11 +51,39 @@ public abstract class CommonService {
         this.primaryConnectionAdapter = deviceContext.getPrimaryConnectionContext().getConnectionAdapter();
         this.messageSpy = deviceContext.getMessageSpy();
     }
+    public static BigInteger getPrimaryConnection() {
+        return PRIMARY_CONNECTION;
+    }
+
+    public short getVersion(){
+        return version;
+    }
+
+    public BigInteger getDatapathId() {
+        return datapathId;
+    }
+
+    public RequestContextStack getRequestContextStack() {
+        return requestContextStack;
+    }
+
+    public DeviceContext getDeviceContext() {
+        return deviceContext;
+    }
+
+    public ConnectionAdapter getPrimaryConnectionAdapter() {
+        return primaryConnectionAdapter;
+    }
+
+    public MessageSpy getMessageSpy() {
+        return messageSpy;
+    }
 
     protected long provideWaitTime() {
         return WAIT_TIME;
     }
 
+
     protected ConnectionAdapter provideConnectionAdapter(final BigInteger connectionID) {
         if (connectionID == null) {
             return primaryConnectionAdapter;
@@ -92,6 +113,10 @@ public abstract class CommonService {
         DataCrateBuilder<T> dataCrateBuilder = DataCrateBuilder.<T>builder();
         return handleServiceCall(connectionID, function, dataCrateBuilder);
     }
+    public <T, F> ListenableFuture<RpcResult<T>> handleServiceCall(final Function<DataCrate<T>, ListenableFuture<RpcResult<F>>> function) {
+        DataCrateBuilder<T> dataCrateBuilder = DataCrateBuilder.<T>builder();
+        return handleServiceCall(PRIMARY_CONNECTION, function, dataCrateBuilder);
+    }
 
     /**
      * @param <T>
index 8bc004072a8e096fc0c9e21f72f18950e0056089..f83a4ef18faeb956630dab1633997b94bc87d4b2 100644 (file)
@@ -39,16 +39,16 @@ public class FlowCapableTransactionServiceImpl extends CommonService implements
 
     @Override
     public Future<RpcResult<Void>> sendBarrier(SendBarrierInput input) {
-        final RequestContext<Void> requestContext = requestContextStack.createRequestContext();
-        final SettableFuture<RpcResult<Void>> sendBarrierOutput = requestContextStack
+        final RequestContext<Void> requestContext = getRequestContextStack().createRequestContext();
+        final SettableFuture<RpcResult<Void>> sendBarrierOutput = getRequestContextStack()
                 .storeOrFail(requestContext);
         if (!sendBarrierOutput.isDone()) {
-
+            final DeviceContext deviceContext =getDeviceContext();
             final Xid xid = deviceContext.getNextXid();
             requestContext.setXid(xid);
 
             final BarrierInputBuilder barrierInputOFJavaBuilder = new BarrierInputBuilder();
-            barrierInputOFJavaBuilder.setVersion(version);
+            barrierInputOFJavaBuilder.setVersion(getVersion());
             barrierInputOFJavaBuilder.setXid(xid.getValue());
 
             LOG.trace("Hooking xid {} to device context - precaution.", requestContext.getXid().getValue());
@@ -56,7 +56,7 @@ public class FlowCapableTransactionServiceImpl extends CommonService implements
 
             final BarrierInput barrierInputOFJava = barrierInputOFJavaBuilder.build();
 
-            final Future<RpcResult<BarrierOutput>> barrierOutputOFJava = provideConnectionAdapter(PRIMARY_CONNECTION)
+            final Future<RpcResult<BarrierOutput>> barrierOutputOFJava = getPrimaryConnectionAdapter()
                     .barrier(barrierInputOFJava);
             LOG.debug("Barrier with xid {} was sent from controller.", xid);
 
@@ -76,7 +76,7 @@ public class FlowCapableTransactionServiceImpl extends CommonService implements
             };
             Futures.addCallback(listenableBarrierOutputOFJava, successCallback);
         } else {
-            messageSpy.spyMessage(requestContext, MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
+            getMessageSpy().spyMessage(requestContext, MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
         }
 
         //callback on request context future
index 02180f2a76a0518c28ee806bd9c51f9e5e33578e..38ec77eea309c8fcec72f320aef12c735c321f8f 100644 (file)
@@ -48,7 +48,7 @@ public class NodeConfigServiceImpl extends CommonService implements NodeConfigSe
             builder.setXid(xid.getValue());
             builder.setFlags(flag);
             builder.setMissSendLen(input.getMissSearchLength());
-            builder.setVersion(version);
+            builder.setVersion(getVersion());
             ListenableFuture<RpcResult<Void>> futureResultFromOfLib;
             synchronized (deviceContext) {
                 futureResultFromOfLib = JdkFutureAdapters.listenInPoolThread(deviceContext.getPrimaryConnectionContext().getConnectionAdapter().setConfig(builder.build()));
index 8ffed61df9bcb798b38e3613350e7829e5f98540..7867014b6c2bc4912a86d4fa28acf9f93d4d176d 100644 (file)
@@ -33,15 +33,15 @@ public class PacketProcessingServiceImpl extends CommonService implements Packet
     @Override
     public Future<RpcResult<Void>> transmitPacket(final TransmitPacketInput input) {
 
-        return handleServiceCall(PRIMARY_CONNECTION, new Function<DataCrate<Void>, ListenableFuture<RpcResult<Void>>>() {
+        return handleServiceCall(new Function<DataCrate<Void>, ListenableFuture<RpcResult<Void>>>() {
 
             @Override
             public ListenableFuture<RpcResult<Void>> apply(DataCrate<Void> data) {
                 final Xid xid = data.getRequestContext().getXid();
-                final PacketOutInput message = PacketOutConvertor.toPacketOutInput(input, version, xid.getValue(),
-                        datapathId);
+                final PacketOutInput message = PacketOutConvertor.toPacketOutInput(input, getVersion(), xid.getValue(),
+                        getDatapathId());
 
-                BigInteger connectionID = PRIMARY_CONNECTION;
+                BigInteger connectionID = getPrimaryConnection();
                 final ConnectionCookie connectionCookie = input.getConnectionCookie();
                 if (connectionCookie != null && connectionCookie.getValue() != null) {
                     connectionID = BigInteger.valueOf(connectionCookie.getValue());
index 0a30862f5db635658f0a2dde1d5f65c35ba73ff4..33f9101e8c7d3e75f7877ad72d5b47c8a8ec513d 100644 (file)
@@ -42,10 +42,11 @@ public class SalEchoServiceImpl extends CommonService implements SalEchoService
 
     @Override
     public Future<RpcResult<SendEchoOutput>> sendEcho(final SendEchoInput sendEchoInput) {
-        final RequestContext<SendEchoOutput> requestContext = requestContextStack.createRequestContext();
-        final SettableFuture<RpcResult<SendEchoOutput>> sendEchoOutput = requestContextStack
+        final RequestContext<SendEchoOutput> requestContext = getRequestContextStack().createRequestContext();
+        final SettableFuture<RpcResult<SendEchoOutput>> sendEchoOutput = getRequestContextStack()
                 .storeOrFail(requestContext);
         if (!sendEchoOutput.isDone()) {
+            final DeviceContext deviceContext = getDeviceContext();
             final Xid xid = deviceContext.getNextXid();
             requestContext.setXid(xid);
 
@@ -53,12 +54,12 @@ public class SalEchoServiceImpl extends CommonService implements SalEchoService
             deviceContext.hookRequestCtx(requestContext.getXid(), requestContext);
 
             final EchoInputBuilder echoInputOFJavaBuilder = new EchoInputBuilder();
-            echoInputOFJavaBuilder.setVersion(version);
+            echoInputOFJavaBuilder.setVersion(getVersion());
             echoInputOFJavaBuilder.setXid(xid.getValue());
             echoInputOFJavaBuilder.setData(sendEchoInput.getData());
             final EchoInput echoInputOFJava = echoInputOFJavaBuilder.build();
 
-            final Future<RpcResult<EchoOutput>> rpcEchoOutputOFJava = provideConnectionAdapter(PRIMARY_CONNECTION)
+            final Future<RpcResult<EchoOutput>> rpcEchoOutputOFJava = getPrimaryConnectionAdapter()
                     .echo(echoInputOFJava);
             LOG.debug("Echo with xid {} was sent from controller", xid);
 
@@ -81,7 +82,7 @@ public class SalEchoServiceImpl extends CommonService implements SalEchoService
             };
             Futures.addCallback(listenableRpcEchoOutputOFJava, successCallback);
         } else {
-            messageSpy.spyMessage(requestContext, MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
+            getMessageSpy().spyMessage(requestContext, MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
         }
 
         // callback on request context future
index e0748d1f9e2bb26d6d399fa8a779580fc4aa007c..0e3db6df387907678a51c5be9586c3c684444361 100644 (file)
@@ -71,16 +71,17 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
         }
 
 
+        final DeviceContext deviceContext = getDeviceContext();
         final FlowHash flowHash = FlowHashFactory.create(input, deviceContext.getPrimaryConnectionContext().getFeatures().getVersion());
         final FlowDescriptor flowDescriptor = FlowDescriptorFactory.create(input.getTableId(), flowId);
 
-        final List<FlowModInputBuilder> ofFlowModInputs = FlowConvertor.toFlowModInputs(input, version, datapathId);
+        final List<FlowModInputBuilder> ofFlowModInputs = FlowConvertor.toFlowModInputs(input, getVersion(), getDatapathId());
         final ListenableFuture<RpcResult<AddFlowOutput>> future = processFlowModInputBuilders(ofFlowModInputs);
 
         Futures.addCallback(future, new FutureCallback<RpcResult<AddFlowOutput>>() {
             @Override
             public void onSuccess(final RpcResult<AddFlowOutput> rpcResult) {
-                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
                 synchronized (deviceContext) {
                     deviceContext.getDeviceFlowRegistry().store(flowHash, flowDescriptor);
                 }
@@ -93,7 +94,7 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
 
             @Override
             public void onFailure(final Throwable throwable) {
-                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
+                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
                 synchronized (deviceContext) {
                     deviceContext.getDeviceFlowRegistry().markToBeremoved(flowHash);
                 }
@@ -107,17 +108,17 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
     @Override
     public Future<RpcResult<RemoveFlowOutput>> removeFlow(final RemoveFlowInput input) {
         LOG.trace("Calling remove flow for flow with ID ={}.", input.getFlowRef());
-        return this.<RemoveFlowOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<RemoveFlowOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<RemoveFlowOutput, Void>handleServiceCall(new Function<DataCrate<RemoveFlowOutput>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<RemoveFlowOutput> data) {
-                        final FlowModInputBuilder ofFlowModInput = FlowConvertor.toFlowModInput(input, version,
-                                datapathId);
+                        final FlowModInputBuilder ofFlowModInput = FlowConvertor.toFlowModInput(input, getVersion(),
+                                getDatapathId());
                         final ListenableFuture<RpcResult<Void>> future = createResultForFlowMod(data, ofFlowModInput);
                         Futures.addCallback(future, new FutureCallback() {
                             @Override
                             public void onSuccess(final Object o) {
-                                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+                                final DeviceContext deviceContext = getDeviceContext();
+                                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
                                 FlowHash flowHash = FlowHashFactory.create(input, deviceContext.getPrimaryConnectionContext().getFeatures().getVersion());
                                 synchronized (deviceContext) {
                                     deviceContext.getDeviceFlowRegistry().markToBeremoved(flowHash);
@@ -126,7 +127,7 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
 
                             @Override
                             public void onFailure(final Throwable throwable) {
-                                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
+                                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
                                 StringBuffer errors = new StringBuffer();
                                 try {
                                     RpcResult<Void> result = future.get();
@@ -156,19 +157,19 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
         final List<FlowModInputBuilder> allFlowMods = new ArrayList<>();
         List<FlowModInputBuilder> ofFlowModInputs;
 
-        if (!FlowCreatorUtil.canModifyFlow(original, updated, version)) {
+        if (!FlowCreatorUtil.canModifyFlow(original, updated, getVersion())) {
             // We would need to remove original and add updated.
 
             // remove flow
             final RemoveFlowInputBuilder removeflow = new RemoveFlowInputBuilder(original);
             final List<FlowModInputBuilder> ofFlowRemoveInput = FlowConvertor.toFlowModInputs(removeflow.build(),
-                    version, datapathId);
+                    getVersion(), getDatapathId());
             // remove flow should be the first
             allFlowMods.addAll(ofFlowRemoveInput);
             final AddFlowInputBuilder addFlowInputBuilder = new AddFlowInputBuilder(updated);
-            ofFlowModInputs = FlowConvertor.toFlowModInputs(addFlowInputBuilder.build(), version, datapathId);
+            ofFlowModInputs = FlowConvertor.toFlowModInputs(addFlowInputBuilder.build(), getVersion(), getDatapathId());
         } else {
-            ofFlowModInputs = FlowConvertor.toFlowModInputs(updated, version, datapathId);
+            ofFlowModInputs = FlowConvertor.toFlowModInputs(updated, getVersion(), getDatapathId());
         }
 
         allFlowMods.addAll(ofFlowModInputs);
@@ -176,8 +177,9 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
         Futures.addCallback(future, new FutureCallback() {
             @Override
             public void onSuccess(final Object o) {
-                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
-                short version = deviceContext.getPrimaryConnectionContext().getFeatures().getVersion();
+                final DeviceContext deviceContext = getDeviceContext();
+                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+                final short version = deviceContext.getPrimaryConnectionContext().getFeatures().getVersion();
                 FlowHash flowHash = FlowHashFactory.create(original, version);
 
                 FlowHash updatedflowHash = FlowHashFactory.create(updated, version);
@@ -191,7 +193,7 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
 
             @Override
             public void onFailure(final Throwable throwable) {
-                messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
+                getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_FAILURE);
             }
         });
         return future;
@@ -204,7 +206,7 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
         for (FlowModInputBuilder flowModInputBuilder : ofFlowModInputs) {
             DataCrateBuilder<T> dataCrateBuilder = DataCrateBuilder.<T>builder().setFlowModInputBuilder(flowModInputBuilder);
             ListenableFuture<RpcResult<T>> partialFuture = handleServiceCall(
-                    PRIMARY_CONNECTION,
+                    getPrimaryConnection(),
                     new Function<DataCrate<T>, ListenableFuture<RpcResult<Void>>>() {
                         @Override
                         public ListenableFuture<RpcResult<Void>> apply(final DataCrate<T> data) {
@@ -250,6 +252,7 @@ public class SalFlowServiceImpl extends CommonService implements SalFlowService
 
                                 // xid might be not available in case requestContext not even stored
                                 if (xid != null) {
+                                    final DeviceContext deviceContext = getDeviceContext();
                                     synchronized (deviceContext) {
                                         deviceContext.unhookRequestCtx(new Xid(xid));
                                     }
index ea319af08cb711a73d2765f87da3fbf4f9ab8585..7477ef01618d34b0563fbb08a2310efce913885b 100644 (file)
@@ -39,8 +39,8 @@ public class SalGroupServiceImpl extends CommonService implements SalGroupServic
 
     @Override
     public Future<RpcResult<AddGroupOutput>> addGroup(final AddGroupInput input) {
-        deviceContext.getDeviceGroupRegistry().store(input.getGroupId());
-        return this.<AddGroupOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        getDeviceContext().getDeviceGroupRegistry().store(input.getGroupId());
+        return this.<AddGroupOutput, Void>handleServiceCall(getPrimaryConnection(),
                 new Function<DataCrate<AddGroupOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -52,7 +52,7 @@ public class SalGroupServiceImpl extends CommonService implements SalGroupServic
 
     @Override
     public Future<RpcResult<UpdateGroupOutput>> updateGroup(final UpdateGroupInput input) {
-        return this.<UpdateGroupOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        return this.<UpdateGroupOutput, Void>handleServiceCall(getPrimaryConnection(),
                 new Function<DataCrate<UpdateGroupOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -64,8 +64,8 @@ public class SalGroupServiceImpl extends CommonService implements SalGroupServic
 
     @Override
     public Future<RpcResult<RemoveGroupOutput>> removeGroup(final RemoveGroupInput input) {
-        deviceContext.getDeviceGroupRegistry().markToBeremoved(input.getGroupId());
-        return this.<RemoveGroupOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        getDeviceContext().getDeviceGroupRegistry().markToBeremoved(input.getGroupId());
+        return this.<RemoveGroupOutput, Void>handleServiceCall(getPrimaryConnection(),
                 new Function<DataCrate<RemoveGroupOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -76,8 +76,8 @@ public class SalGroupServiceImpl extends CommonService implements SalGroupServic
     }
 
     <T> ListenableFuture<RpcResult<Void>> convertAndSend(final Group iputGroup, final DataCrate<T> data) {
-        messageSpy.spyMessage(iputGroup.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
-        final GroupModInputBuilder ofGroupModInput = GroupConvertor.toGroupModInput(iputGroup, version, datapathId);
+        getMessageSpy().spyMessage(iputGroup.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+        final GroupModInputBuilder ofGroupModInput = GroupConvertor.toGroupModInput(iputGroup, getVersion(), getDatapathId());
         final Xid xid = data.getRequestContext().getXid();
         ofGroupModInput.setXid(xid.getValue());
         return JdkFutureAdapters.listenInPoolThread(provideConnectionAdapter(data.getiDConnection()).groupMod(ofGroupModInput.build()));
index a326ea4b867a24f0717d7f97c65d741cf2fb4f7b..3451d35d8041c7641b9b2723648868308b5f078f 100644 (file)
@@ -38,8 +38,8 @@ public class SalMeterServiceImpl extends CommonService implements SalMeterServic
 
     @Override
     public Future<RpcResult<AddMeterOutput>> addMeter(final AddMeterInput input) {
-        deviceContext.getDeviceMeterRegistry().store(input.getMeterId());
-        return this.<AddMeterOutput, Void>handleServiceCall( PRIMARY_CONNECTION,
+        getDeviceContext().getDeviceMeterRegistry().store(input.getMeterId());
+        return this.<AddMeterOutput, Void>handleServiceCall( getPrimaryConnection(),
                  new Function<DataCrate<AddMeterOutput>,ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<AddMeterOutput> data) {
@@ -50,7 +50,7 @@ public class SalMeterServiceImpl extends CommonService implements SalMeterServic
 
     @Override
     public Future<RpcResult<UpdateMeterOutput>> updateMeter(final UpdateMeterInput input) {
-        return this.<UpdateMeterOutput, Void>handleServiceCall( PRIMARY_CONNECTION,
+        return this.<UpdateMeterOutput, Void>handleServiceCall( getPrimaryConnection(),
                  new Function<DataCrate<UpdateMeterOutput>,ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<UpdateMeterOutput> data) {
@@ -61,8 +61,8 @@ public class SalMeterServiceImpl extends CommonService implements SalMeterServic
 
     @Override
     public Future<RpcResult<RemoveMeterOutput>> removeMeter(final RemoveMeterInput input) {
-        deviceContext.getDeviceMeterRegistry().markToBeremoved(input.getMeterId());
-        return this.<RemoveMeterOutput, Void>handleServiceCall( PRIMARY_CONNECTION,
+        getDeviceContext().getDeviceMeterRegistry().markToBeremoved(input.getMeterId());
+        return this.<RemoveMeterOutput, Void>handleServiceCall( getPrimaryConnection(),
                  new Function<DataCrate<RemoveMeterOutput>,ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<RemoveMeterOutput> data) {
@@ -72,9 +72,9 @@ public class SalMeterServiceImpl extends CommonService implements SalMeterServic
     }
 
     <T> ListenableFuture<RpcResult<Void>> convertAndSend(final Meter iputMeter, final DataCrate<T> data) {
-        messageSpy.spyMessage(iputMeter.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+        getMessageSpy().spyMessage(iputMeter.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
 
-        final MeterModInputBuilder ofMeterModInput = MeterConvertor.toMeterModInput(iputMeter, version);
+        final MeterModInputBuilder ofMeterModInput = MeterConvertor.toMeterModInput(iputMeter, getVersion());
         final Xid xid = data.getRequestContext().getXid();
         ofMeterModInput.setXid(xid.getValue());
         return JdkFutureAdapters.listenInPoolThread(provideConnectionAdapter(data.getiDConnection()).meterMod(ofMeterModInput.build()));
index b8e29f1883df6d8d6c95da9d66b8d8904747d7d2..fdabffa239b7d3a9d670bea7f80eb9e83903651e 100644 (file)
@@ -11,6 +11,8 @@ import com.google.common.base.Function;
 import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.concurrent.Future;
+import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
+import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
 import org.opendaylight.openflowplugin.api.openflow.device.Xid;
 import org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific.MessageSpy;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.PortConvertor;
@@ -26,16 +28,19 @@ import org.slf4j.Logger;
 public class SalPortServiceImpl extends CommonService implements SalPortService {
     private static final Logger LOG = org.slf4j.LoggerFactory.getLogger(SalPortServiceImpl.class);
 
+    public SalPortServiceImpl(final RequestContextStack requestContextStack, final DeviceContext deviceContext) {
+        super(requestContextStack, deviceContext);
+    }
+
     @Override
     public Future<RpcResult<UpdatePortOutput>> updatePort(final UpdatePortInput input) {
-        return this.<UpdatePortOutput, Void> handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<UpdatePortOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<UpdatePortOutput, Void> handleServiceCall(new Function<DataCrate<UpdatePortOutput>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<UpdatePortOutput> data) {
-                        messageSpy.spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
+                        getMessageSpy().spyMessage(input.getImplementedInterface(), MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
 
                         final Port inputPort = input.getUpdatedPort().getPort().getPort().get(0);
-                        final PortModInput ofPortModInput = PortConvertor.toPortModInput(inputPort, version);
+                        final PortModInput ofPortModInput = PortConvertor.toPortModInput(inputPort, getVersion());
                         final PortModInputBuilder mdInput = new PortModInputBuilder(ofPortModInput);
                         final Xid xid = data.getRequestContext().getXid();
                         mdInput.setXid(xid.getValue());
index b0434a9ab0b1994fddd4f47a66da40e1feece6cd..ec970172875edb81e082899defc400c16e9efd2b 100644 (file)
@@ -70,7 +70,7 @@ public class SalTableServiceImpl extends CommonService implements SalTableServic
 
             @Override
             public ListenableFuture<RpcResult<List<MultipartReply>>> apply(final DataCrate<List<MultipartReply>> data) {
-                messageSpy.spyMessage(input.getImplementedInterface(),
+                getMessageSpy().spyMessage(input.getImplementedInterface(),
                         MessageSpy.STATISTIC_GROUP.TO_SWITCH_SUBMITTED_SUCCESS);
 
                 final SettableFuture<RpcResult<List<MultipartReply>>> result = SettableFuture.create();
@@ -84,12 +84,12 @@ public class SalTableServiceImpl extends CommonService implements SalTableServic
 
                 // Set request body to main multipart request
                 final Xid xid = data.getRequestContext().getXid();
-                deviceContext.getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
+                getDeviceContext().getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
                 final MultipartRequestInputBuilder mprInput = createMultipartHeader(MultipartType.OFPMPTABLEFEATURES,
                         xid.getValue());
                 mprInput.setMultipartRequestBody(caseBuilder.build());
 
-                final Future<RpcResult<Void>> resultFromOFLib = provideConnectionAdapter(PRIMARY_CONNECTION)
+                final Future<RpcResult<Void>> resultFromOFLib = getPrimaryConnectionAdapter()
                         .multipartRequest(mprInput.build());
                 final ListenableFuture<RpcResult<Void>> resultLib = JdkFutureAdapters
                         .listenInPoolThread(resultFromOFLib);
@@ -98,8 +98,7 @@ public class SalTableServiceImpl extends CommonService implements SalTableServic
             }
         }
 
-        final ListenableFuture<RpcResult<List<MultipartReply>>> multipartFuture = handleServiceCall(PRIMARY_CONNECTION,
-                new FunctionImpl());
+        final ListenableFuture<RpcResult<List<MultipartReply>>> multipartFuture = handleServiceCall(new FunctionImpl());
         final SettableFuture<RpcResult<UpdateTableOutput>> finalFuture = SettableFuture.create();
 
         class CallBackImpl implements FutureCallback<RpcResult<List<MultipartReply>>> {
@@ -145,6 +144,7 @@ public class SalTableServiceImpl extends CommonService implements SalTableServic
 
                 final List<org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures> salTableFeatures = convertToSalTableFeatures(multipartReplies);
 
+                final DeviceContext  deviceContext = getDeviceContext();
                 final NodeId nodeId = deviceContext.getPrimaryConnectionContext().getNodeId();
                 final InstanceIdentifier<FlowCapableNode> flowCapableNodeII = InstanceIdentifier.create(Nodes.class)
                         .child(Node.class, new NodeKey(nodeId)).augmentation(FlowCapableNode.class);
@@ -190,7 +190,7 @@ public class SalTableServiceImpl extends CommonService implements SalTableServic
     private MultipartRequestInputBuilder createMultipartHeader(final MultipartType multipart, final Long xid) {
         final MultipartRequestInputBuilder mprInput = new MultipartRequestInputBuilder();
         mprInput.setType(multipart);
-        mprInput.setVersion(version);
+        mprInput.setVersion(getVersion());
         mprInput.setXid(xid);
         mprInput.setFlags(new MultipartRequestFlags(false));
         return mprInput;
index 751da7ebfd3dba79784405fea59daa4b106bf069..8856ab4abd47e60918bad1b9e5d26e95a29f6ea6 100644 (file)
@@ -12,13 +12,10 @@ import com.google.common.base.MoreObjects;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
-
-import java.io.Serializable;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 import java.util.concurrent.Future;
+import javax.annotation.Nullable;
 import org.opendaylight.openflowplugin.api.OFConstants;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator;
@@ -33,7 +30,6 @@ import org.opendaylight.openflowplugin.impl.services.OFJResult2RequestCtxFuture;
 import org.opendaylight.openflowplugin.impl.services.RequestInputUtils;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchReactor;
 import org.opendaylight.openflowplugin.openflow.md.util.FlowCreatorUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.AggregateFlowStatisticsUpdate;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForGivenMatchInput;
@@ -47,27 +43,19 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.G
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTableOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.get.aggregate.flow.statistics.from.flow.table._for.given.match.output.AggregatedFlowStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReply;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketIn;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.PacketInMessage;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.aggregate._case.MultipartRequestAggregateBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.flow._case.MultipartRequestFlowBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
-import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nullable;
-
 /**
  * @author joe
  */
@@ -85,7 +73,6 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
 
 
         return this.<GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION,
                 new Function<DataCrate<GetAggregateFlowStatisticsFromFlowTableForAllFlowsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -99,7 +86,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
                         mprAggregateRequestBuilder.setOutGroup(OFConstants.OFPG_ANY);
                         mprAggregateRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
                         mprAggregateRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
-
+                        final short version = getVersion();
                         FlowCreatorUtil.setWildcardedFlowMatch(version, mprAggregateRequestBuilder);
 
                         // Set request body to main multipart request
@@ -111,7 +98,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
 
                         mprInput.setMultipartRequestBody(multipartRequestAggregateCaseBuilder.build());
 
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
 
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
@@ -126,67 +113,70 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
 
 
         ListenableFuture<RpcResult<List<MultipartReply>>> rpcResultListenableFuture = handleServiceCall(
-            PRIMARY_CONNECTION,
-            new Function<DataCrate<List<MultipartReply>>, ListenableFuture<RpcResult<Void>>>() {
-
-                @Override
-                public ListenableFuture<RpcResult<Void>> apply(final DataCrate<List<MultipartReply>> data) {
-                    final Xid xid = data.getRequestContext().getXid();
-                    deviceContext.getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
-                    final MultipartRequestAggregateCaseBuilder multipartRequestAggregateCaseBuilder = new MultipartRequestAggregateCaseBuilder();
-                    final MultipartRequestAggregateBuilder mprAggregateRequestBuilder = new MultipartRequestAggregateBuilder();
-                    final short tableId = MoreObjects.firstNonNull(input.getTableId(), OFConstants.OFPTT_ALL).shortValue();
-                    mprAggregateRequestBuilder.setTableId(tableId);
-                    long outputPortValue = MoreObjects.firstNonNull(input.getOutPort(), OFConstants.OFPP_ANY).longValue();
-                    mprAggregateRequestBuilder.setOutPort(outputPortValue);
-                    // TODO: repeating code
-                    if (version == OFConstants.OFP_VERSION_1_3) {
-
-                        if (input.getCookie() == null) {
-                            mprAggregateRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
-                        } else {
-                            mprAggregateRequestBuilder.setCookie(MoreObjects.firstNonNull(input.getCookie().getValue(), OFConstants.DEFAULT_COOKIE));
-                        }
+                new Function<DataCrate<List<MultipartReply>>, ListenableFuture<RpcResult<Void>>>() {
 
-                        if (input.getCookieMask() == null) {
-                            mprAggregateRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
+                    @Override
+                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<List<MultipartReply>> data) {
+                        final Xid xid = data.getRequestContext().getXid();
+                        final DeviceContext deviceContext = getDeviceContext();
+                        deviceContext.getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
+                        final MultipartRequestAggregateCaseBuilder multipartRequestAggregateCaseBuilder = new MultipartRequestAggregateCaseBuilder();
+                        final MultipartRequestAggregateBuilder mprAggregateRequestBuilder = new MultipartRequestAggregateBuilder();
+                        final short tableId = MoreObjects.firstNonNull(input.getTableId(), OFConstants.OFPTT_ALL).shortValue();
+                        mprAggregateRequestBuilder.setTableId(tableId);
+                        long outputPortValue = MoreObjects.firstNonNull(input.getOutPort(), OFConstants.OFPP_ANY).longValue();
+                        mprAggregateRequestBuilder.setOutPort(outputPortValue);
+                        // TODO: repeating code
+
+                        final short version = getVersion();
+                        if (version == OFConstants.OFP_VERSION_1_3) {
+
+                            if (input.getCookie() == null) {
+                                mprAggregateRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
+                            } else {
+                                mprAggregateRequestBuilder.setCookie(MoreObjects.firstNonNull(input.getCookie().getValue(), OFConstants.DEFAULT_COOKIE));
+                            }
+
+                            if (input.getCookieMask() == null) {
+                                mprAggregateRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
+                            } else {
+                                mprAggregateRequestBuilder.setCookieMask(MoreObjects.firstNonNull(input.getCookieMask().getValue(), OFConstants.DEFAULT_COOKIE_MASK));
+                            }
+                            long outGroup = MoreObjects.firstNonNull(input.getOutGroup(), OFConstants.OFPG_ANY).longValue();
+                            mprAggregateRequestBuilder.setOutGroup(outGroup);
                         } else {
-                            mprAggregateRequestBuilder.setCookieMask(MoreObjects.firstNonNull(input.getCookieMask().getValue(), OFConstants.DEFAULT_COOKIE_MASK));
+                            mprAggregateRequestBuilder.setOutGroup(OFConstants.OFPG_ANY);
+                            mprAggregateRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
+                            mprAggregateRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
                         }
-                        long outGroup = MoreObjects.firstNonNull(input.getOutGroup(), OFConstants.OFPG_ANY).longValue();
-                        mprAggregateRequestBuilder.setOutGroup(outGroup);
-                    } else {
-                        mprAggregateRequestBuilder.setOutGroup(OFConstants.OFPG_ANY);
-                        mprAggregateRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
-                        mprAggregateRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
-                    }
 
-                    MatchReactor.getInstance().convert(input.getMatch(), version, mprAggregateRequestBuilder,
-                            deviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId());
+                        MatchReactor.getInstance().convert(input.getMatch(), version, mprAggregateRequestBuilder,
+                                deviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId());
 
-                    FlowCreatorUtil.setWildcardedFlowMatch(version, mprAggregateRequestBuilder);
+                        FlowCreatorUtil.setWildcardedFlowMatch(version, mprAggregateRequestBuilder);
 
-                    // Set request body to main multipart request
-                    multipartRequestAggregateCaseBuilder.setMultipartRequestAggregate(mprAggregateRequestBuilder
-                            .build());
+                        // Set request body to main multipart request
+                        multipartRequestAggregateCaseBuilder.setMultipartRequestAggregate(mprAggregateRequestBuilder
+                                .build());
 
-                    final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                            MultipartType.OFPMPAGGREGATE, xid.getValue(), version);
+                        final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
+                                MultipartType.OFPMPAGGREGATE, xid.getValue(), version);
 
-                    mprInput.setMultipartRequestBody(multipartRequestAggregateCaseBuilder.build());
-                    final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
-                            .getConnectionAdapter().multipartRequest(mprInput.build());
-                    return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
-                }
-            });
+                        mprInput.setMultipartRequestBody(multipartRequestAggregateCaseBuilder.build());
+                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                                .getConnectionAdapter().multipartRequest(mprInput.build());
+                        return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
+                    }
+                });
 
         return Futures.transform(rpcResultListenableFuture, new Function<RpcResult<List<MultipartReply>>, RpcResult<GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutput>>() {
             @Nullable
             @Override
             public RpcResult<GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutput> apply(RpcResult<List<MultipartReply>> input) {
+                final DeviceContext deviceContext = getDeviceContext();
                 TranslatorLibrary translatorLibrary = deviceContext.oook();
                 RpcResult<GetAggregateFlowStatisticsFromFlowTableForGivenMatchOutput> rpcResult;
-                if(input.isSuccessful()) {
+                if (input.isSuccessful()) {
                     MultipartReply reply = input.getResult().get(0);
                     final TranslatorKey translatorKey = new TranslatorKey(reply.getVersion(), MultipartReplyAggregateCase.class.getName());
                     final MessageTranslator<MultipartReply, AggregatedFlowStatistics> messageTranslator = translatorLibrary.lookupTranslator(translatorKey);
@@ -221,8 +211,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
     public Future<RpcResult<GetAllFlowStatisticsFromFlowTableOutput>> getAllFlowStatisticsFromFlowTable(
             final GetAllFlowStatisticsFromFlowTableInput input) {
 
-        return this.<GetAllFlowStatisticsFromFlowTableOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<GetAllFlowStatisticsFromFlowTableOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<GetAllFlowStatisticsFromFlowTableOutput, Void>handleServiceCall(new Function<DataCrate<GetAllFlowStatisticsFromFlowTableOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllFlowStatisticsFromFlowTableOutput> data) {
@@ -233,6 +222,8 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
                         mprFlowRequestBuilder.setOutGroup(OFConstants.OFPG_ANY);
                         mprFlowRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
                         mprFlowRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
+
+                        final short version = getVersion();
                         FlowCreatorUtil.setWildcardedFlowMatch(version, mprFlowRequestBuilder);
 
                         final MultipartRequestFlowCaseBuilder multipartRequestFlowCaseBuilder = new MultipartRequestFlowCaseBuilder();
@@ -243,7 +234,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
                                 MultipartType.OFPMPFLOW, xid.getValue(), version);
 
                         mprInput.setMultipartRequestBody(multipartRequestFlowCaseBuilder.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
@@ -255,8 +246,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
             final GetAllFlowsStatisticsFromAllFlowTablesInput input) {
 
 
-        return this.<GetAllFlowsStatisticsFromAllFlowTablesOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<GetAllFlowsStatisticsFromAllFlowTablesOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<GetAllFlowsStatisticsFromAllFlowTablesOutput, Void>handleServiceCall(new Function<DataCrate<GetAllFlowsStatisticsFromAllFlowTablesOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllFlowsStatisticsFromAllFlowTablesOutput> data) {
@@ -268,6 +258,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
                         mprFlowRequestBuilder.setOutGroup(OFConstants.OFPG_ANY);
                         mprFlowRequestBuilder.setCookie(OFConstants.DEFAULT_COOKIE);
                         mprFlowRequestBuilder.setCookieMask(OFConstants.DEFAULT_COOKIE_MASK);
+                        final short version = getVersion();
                         FlowCreatorUtil.setWildcardedFlowMatch(version, mprFlowRequestBuilder);
 
                         final Xid xid = data.getRequestContext().getXid();
@@ -276,7 +267,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
 
                         multipartRequestFlowCaseBuilder.setMultipartRequestFlow(mprFlowRequestBuilder.build());
                         mprInput.setMultipartRequestBody(multipartRequestFlowCaseBuilder.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
@@ -288,8 +279,7 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
             final GetFlowStatisticsFromFlowTableInput input) {
 
 
-        return this.<GetFlowStatisticsFromFlowTableOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<GetFlowStatisticsFromFlowTableOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<GetFlowStatisticsFromFlowTableOutput, Void>handleServiceCall(new Function<DataCrate<GetFlowStatisticsFromFlowTableOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetFlowStatisticsFromFlowTableOutput> data) {
@@ -323,6 +313,8 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
                         }
 
                         // convert and inject match
+                        final short version = getVersion();
+                        final DeviceContext deviceContext = getDeviceContext();
                         MatchReactor.getInstance().convert(input.getMatch(), version, mprFlowRequestBuilder,
                                 deviceContext.getPrimaryConnectionContext().getFeatures().getDatapathId());
 
@@ -340,8 +332,8 @@ public class OpendaylightFlowStatisticsServiceImpl extends CommonService impleme
     }
 
     private <T> void convertRpcResultToRequestFuture(final RequestContext<T> requestContext,
-                                                                        final ListenableFuture<RpcResult<Void>> futureResultFromOfLib) {
-        final OFJResult2RequestCtxFuture<T> OFJResult2RequestCtxFuture = new OFJResult2RequestCtxFuture<>(requestContext, deviceContext);
+                                                     final ListenableFuture<RpcResult<Void>> futureResultFromOfLib) {
+        final OFJResult2RequestCtxFuture<T> OFJResult2RequestCtxFuture = new OFJResult2RequestCtxFuture<>(requestContext, getDeviceContext());
         OFJResult2RequestCtxFuture.processResultFromOfJava(futureResultFromOfLib);
     }
 
index fb8f24fe9f6e145ed5c0d9564b1574502bda6222..4ab9576687f15355845c84b610fc4554ee8014f1 100644 (file)
@@ -41,8 +41,7 @@ public class OpendaylightFlowTableStatisticsServiceImpl extends CommonService im
             final GetFlowTablesStatisticsInput input) {
 
 
-        return this.<GetFlowTablesStatisticsOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<GetFlowTablesStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<GetFlowTablesStatisticsOutput, Void>handleServiceCall(new Function<DataCrate<GetFlowTablesStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetFlowTablesStatisticsOutput> data) {
@@ -56,10 +55,10 @@ public class OpendaylightFlowTableStatisticsServiceImpl extends CommonService im
                         // Set request body to main multipart request
                         final Xid xid = data.getRequestContext().getXid();
                         final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPFLOW, xid.getValue(), version);
+                                MultipartType.OFPMPFLOW, xid.getValue(), getVersion());
 
                         mprInput.setMultipartRequestBody(multipartRequestTableCaseBuilder.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
 
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
index 4462e360b5d1f392f0f15f6eb3679193c97feaeb..b5e2719f43e56756e28d64871ebb71dd07b7ef2d 100644 (file)
@@ -50,41 +50,40 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetAllGroupStatisticsOutput>> getAllGroupStatistics(final GetAllGroupStatisticsInput input) {
 
 
-        return this.<GetAllGroupStatisticsOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
-                new Function<DataCrate<GetAllGroupStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
+        return this.<GetAllGroupStatisticsOutput, Void>handleServiceCall(new Function<DataCrate<GetAllGroupStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllGroupStatisticsOutput> data) {
+            @Override
+            public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllGroupStatisticsOutput> data) {
 
-                        final MultipartRequestGroupCaseBuilder caseBuilder = new MultipartRequestGroupCaseBuilder();
-                        final MultipartRequestGroupBuilder mprGroupBuild = new MultipartRequestGroupBuilder();
-                        mprGroupBuild.setGroupId(new GroupId(
-                                BinContent
-                                        .intToUnsignedLong(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Group.OFPGALL
-                                                .getIntValue())));
-                        caseBuilder.setMultipartRequestGroup(mprGroupBuild.build());
+                final MultipartRequestGroupCaseBuilder caseBuilder = new MultipartRequestGroupCaseBuilder();
+                final MultipartRequestGroupBuilder mprGroupBuild = new MultipartRequestGroupBuilder();
+                mprGroupBuild.setGroupId(new GroupId(
+                        BinContent
+                                .intToUnsignedLong(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Group.OFPGALL
+                                        .getIntValue())));
+                caseBuilder.setMultipartRequestGroup(mprGroupBuild.build());
 
-                        // Create multipart request header
-                        final Xid xid = data.getRequestContext().getXid();
-                        final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPGROUP, xid.getValue(), version);
+                // Create multipart request header
+                final Xid xid = data.getRequestContext().getXid();
+                final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
+                        MultipartType.OFPMPGROUP, xid.getValue(), getVersion());
 
-                        // Set request body to main multipart request
-                        mprInput.setMultipartRequestBody(caseBuilder.build());
+                // Set request body to main multipart request
+                mprInput.setMultipartRequestBody(caseBuilder.build());
 
-                        // Send the request, no cookies associated, use any connection
+                // Send the request, no cookies associated, use any connection
 
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
-                                .getConnectionAdapter().multipartRequest(mprInput.build());
-                        return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
-                    }
-                });
+                final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
+                        .getConnectionAdapter().multipartRequest(mprInput.build());
+                return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
+            }
+        });
 
     }
 
     @Override
     public Future<RpcResult<GetGroupDescriptionOutput>> getGroupDescription(final GetGroupDescriptionInput input) {
-        return this.<GetGroupDescriptionOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        return this.<GetGroupDescriptionOutput, Void>handleServiceCall(
                 new Function<DataCrate<GetGroupDescriptionOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -93,9 +92,9 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPGROUPDESC, xid.getValue(), version);
+                                MultipartType.OFPMPGROUPDESC, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(mprGroupDescCaseBuild.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
@@ -105,7 +104,7 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
 
     @Override
     public Future<RpcResult<GetGroupFeaturesOutput>> getGroupFeatures(final GetGroupFeaturesInput input) {
-        return this.<GetGroupFeaturesOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        return this.<GetGroupFeaturesOutput, Void>handleServiceCall(
                 new Function<DataCrate<GetGroupFeaturesOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -114,9 +113,9 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPGROUPFEATURES, xid.getValue(), version);
+                                MultipartType.OFPMPGROUPFEATURES, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(mprGroupFeaturesBuild.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
@@ -126,7 +125,7 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
 
     @Override
     public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(final GetGroupStatisticsInput input) {
-        return this.<GetGroupStatisticsOutput, Void>handleServiceCall(PRIMARY_CONNECTION,
+        return this.<GetGroupStatisticsOutput, Void>handleServiceCall(
                 new Function<DataCrate<GetGroupStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
@@ -139,10 +138,10 @@ public class OpendaylightGroupStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         final MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPGROUP, xid.getValue(), version);
+                                MultipartType.OFPMPGROUP, xid.getValue(), getVersion());
 
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        final Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
index 8b6cbba779b97d926f29991434d9626b7b067a5b..21aa86823f2621ebaf3a0c870b68137b831db417 100644 (file)
@@ -51,31 +51,30 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetAllMeterConfigStatisticsOutput>> getAllMeterConfigStatistics(
             final GetAllMeterConfigStatisticsInput input) {
         return this
-                .<GetAllMeterConfigStatisticsOutput, Void>handleServiceCall(
-                        PRIMARY_CONNECTION, new Function<DataCrate<GetAllMeterConfigStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
-
-                            @Override
-                            public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllMeterConfigStatisticsOutput> data) {
-
-                                MultipartRequestMeterConfigCaseBuilder caseBuilder =
-                                        new MultipartRequestMeterConfigCaseBuilder();
-                                MultipartRequestMeterConfigBuilder mprMeterConfigBuild =
-                                        new MultipartRequestMeterConfigBuilder();
-                                mprMeterConfigBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong(
-                                        org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common
-                                                .types.rev130731.Meter.OFPMALL.getIntValue())));
-                                caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build());
-
-                                final Xid xid = data.getRequestContext().getXid();
-                                MultipartRequestInputBuilder mprInput = RequestInputUtils
-                                        .createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), version);
-                                mprInput.setMultipartRequestBody(caseBuilder.build());
-                                Future<RpcResult<Void>> resultFromOFLib = deviceContext
-                                        .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
-                                return JdkFutureAdapters
-                                        .listenInPoolThread(resultFromOFLib);
-                            }
-                        });
+                .<GetAllMeterConfigStatisticsOutput, Void>handleServiceCall(new Function<DataCrate<GetAllMeterConfigStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
+
+                    @Override
+                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllMeterConfigStatisticsOutput> data) {
+
+                        MultipartRequestMeterConfigCaseBuilder caseBuilder =
+                                new MultipartRequestMeterConfigCaseBuilder();
+                        MultipartRequestMeterConfigBuilder mprMeterConfigBuild =
+                                new MultipartRequestMeterConfigBuilder();
+                        mprMeterConfigBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong(
+                                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common
+                                        .types.rev130731.Meter.OFPMALL.getIntValue())));
+                        caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build());
+
+                        final Xid xid = data.getRequestContext().getXid();
+                        MultipartRequestInputBuilder mprInput = RequestInputUtils
+                                .createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), getVersion());
+                        mprInput.setMultipartRequestBody(caseBuilder.build());
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext()
+                                .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
+                        return JdkFutureAdapters
+                                .listenInPoolThread(resultFromOFLib);
+                    }
+                });
 
     }
 
@@ -83,7 +82,6 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(final GetAllMeterStatisticsInput input) {
 
         return this.<GetAllMeterStatisticsOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION,
                 new Function<DataCrate<GetAllMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllMeterStatisticsOutput> data) {
@@ -99,9 +97,9 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         MultipartRequestInputBuilder mprInput = RequestInputUtils
-                                .createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version);
+                                .createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
 
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
@@ -114,7 +112,6 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
     @Override
     public Future<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(final GetMeterFeaturesInput input) {
         return this.<GetMeterFeaturesOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION,
                 new Function<DataCrate<GetMeterFeaturesOutput>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetMeterFeaturesOutput> data) {
@@ -124,9 +121,9 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         MultipartRequestInputBuilder mprInput =
-                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid.getValue(), version);
+                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(mprMeterFeaturesBuild.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
                 });
@@ -135,7 +132,6 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
     @Override
     public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(final GetMeterStatisticsInput input) {
         return this.<GetMeterStatisticsOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION,
                 new Function<DataCrate<GetMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetMeterStatisticsOutput> data) {
@@ -148,9 +144,9 @@ public class OpendaylightMeterStatisticsServiceImpl extends CommonService implem
 
                         final Xid xid = data.getRequestContext().getXid();
                         MultipartRequestInputBuilder mprInput =
-                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), version);
+                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
                 });
index 2b8052ca5a32cf36d680056aa7eb3f9ff7702608..f31c47557b4e94b7329c857be4cef4a9c78cf012 100644 (file)
@@ -45,7 +45,7 @@ public class OpendaylightPortStatisticsServiceImpl extends CommonService impleme
             final GetAllNodeConnectorsStatisticsInput input) {
         return this
                 .<GetAllNodeConnectorsStatisticsOutput, Void>handleServiceCall(
-                        PRIMARY_CONNECTION, new Function<DataCrate<GetAllNodeConnectorsStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
+                        new Function<DataCrate<GetAllNodeConnectorsStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                             @Override
                             public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllNodeConnectorsStatisticsOutput> data) {
@@ -60,9 +60,9 @@ public class OpendaylightPortStatisticsServiceImpl extends CommonService impleme
 
                                 final Xid xid = data.getRequestContext().getXid();
                                 MultipartRequestInputBuilder mprInput = RequestInputUtils
-                                        .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version);
+                                        .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), getVersion());
                                 mprInput.setMultipartRequestBody(caseBuilder.build());
-                                Future<RpcResult<Void>> resultFromOFLib = deviceContext
+                                Future<RpcResult<Void>> resultFromOFLib = getDeviceContext()
                                         .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
                                 return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                             }
@@ -74,7 +74,7 @@ public class OpendaylightPortStatisticsServiceImpl extends CommonService impleme
             final GetNodeConnectorStatisticsInput input) {
         return this
                 .<GetNodeConnectorStatisticsOutput, Void>handleServiceCall(
-                        PRIMARY_CONNECTION, new Function<DataCrate<GetNodeConnectorStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
+                        new Function<DataCrate<GetNodeConnectorStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                             @Override
                             public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetNodeConnectorStatisticsOutput> data) {
@@ -84,6 +84,7 @@ public class OpendaylightPortStatisticsServiceImpl extends CommonService impleme
                                 MultipartRequestPortStatsBuilder mprPortStatsBuilder =
                                         new MultipartRequestPortStatsBuilder();
                                 // Set specific port
+                                final short version = getVersion();
                                 mprPortStatsBuilder
                                         .setPortNo(InventoryDataServiceUtil.portNumberfromNodeConnectorId(
                                                 OpenflowVersion.get(version),
@@ -94,7 +95,7 @@ public class OpendaylightPortStatisticsServiceImpl extends CommonService impleme
                                 MultipartRequestInputBuilder mprInput = RequestInputUtils
                                         .createMultipartHeader(MultipartType.OFPMPPORTSTATS, xid.getValue(), version);
                                 mprInput.setMultipartRequestBody(caseBuilder.build());
-                                Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                                Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                         .getConnectionAdapter().multipartRequest(mprInput.build());
                                 return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                             }
index 337161b3a5ac3bf8ec6ad781468fa405c026f035..cade836f1989e49475374fda5ccf48c3b4b0f41f 100644 (file)
@@ -46,7 +46,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetAllQueuesStatisticsFromAllPortsOutput>> getAllQueuesStatisticsFromAllPorts(
             final GetAllQueuesStatisticsFromAllPortsInput input) {
         return this.<GetAllQueuesStatisticsFromAllPortsOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION, new Function<DataCrate<GetAllQueuesStatisticsFromAllPortsOutput>, ListenableFuture<RpcResult<Void>>>() {
+                new Function<DataCrate<GetAllQueuesStatisticsFromAllPortsOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllQueuesStatisticsFromAllPortsOutput> data) {
@@ -63,9 +63,9 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
                         // Set request body to main multipart request
                         final Xid xid = data.getRequestContext().getXid();
                         MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
-                                MultipartType.OFPMPQUEUE, xid.getValue(), version);
+                                MultipartType.OFPMPQUEUE, xid.getValue(), getVersion());
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
@@ -77,7 +77,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetAllQueuesStatisticsFromGivenPortOutput>> getAllQueuesStatisticsFromGivenPort(
             final GetAllQueuesStatisticsFromGivenPortInput input) {
         return this.<GetAllQueuesStatisticsFromGivenPortOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION, new Function<DataCrate<GetAllQueuesStatisticsFromGivenPortOutput>, ListenableFuture<RpcResult<Void>>>() {
+                new Function<DataCrate<GetAllQueuesStatisticsFromGivenPortOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllQueuesStatisticsFromGivenPortOutput> data) {
@@ -87,6 +87,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
                         // Select all queues
                         mprQueueBuilder.setQueueId(OFConstants.OFPQ_ALL);
                         // Select specific port
+                        final short version = getVersion();
                         mprQueueBuilder.setPortNo(InventoryDataServiceUtil.portNumberfromNodeConnectorId(
                                 OpenflowVersion.get(version), input.getNodeConnectorId()));
                         caseBuilder.setMultipartRequestQueue(mprQueueBuilder.build());
@@ -96,7 +97,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
                         MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
                                 MultipartType.OFPMPQUEUE, xid.getValue(), version);
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
 
@@ -108,7 +109,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
     public Future<RpcResult<GetQueueStatisticsFromGivenPortOutput>> getQueueStatisticsFromGivenPort(
             final GetQueueStatisticsFromGivenPortInput input) {
         return this.<GetQueueStatisticsFromGivenPortOutput, Void>handleServiceCall(
-                PRIMARY_CONNECTION, new Function<DataCrate<GetQueueStatisticsFromGivenPortOutput>, ListenableFuture<RpcResult<Void>>>() {
+                new Function<DataCrate<GetQueueStatisticsFromGivenPortOutput>, ListenableFuture<RpcResult<Void>>>() {
 
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetQueueStatisticsFromGivenPortOutput> data) {
@@ -118,6 +119,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
                         // Select specific queue
                         mprQueueBuilder.setQueueId(input.getQueueId().getValue());
                         // Select specific port
+                        final short version = getVersion();
                         mprQueueBuilder.setPortNo(InventoryDataServiceUtil.portNumberfromNodeConnectorId(
                                 OpenflowVersion.get(version), input.getNodeConnectorId()));
                         caseBuilder.setMultipartRequestQueue(mprQueueBuilder.build());
@@ -127,7 +129,7 @@ public class OpendaylightQueueStatisticsServiceImpl extends CommonService implem
                         MultipartRequestInputBuilder mprInput = RequestInputUtils.createMultipartHeader(
                                 MultipartType.OFPMPQUEUE, xid.getValue(), version);
                         mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
+                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(mprInput.build());
                         return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
                     }
index b6118134a0a44697872e06a8cce0e349cbe450c8..7f1c48d2a5e5ae6ca92a2311356ba3ae30a93c99 100644 (file)
@@ -40,15 +40,15 @@ public class StatisticsGatheringService extends CommonService {
 
 
     public Future<RpcResult<List<MultipartReply>>> getStatisticsOfType(final MultipartType type) {
-        return handleServiceCall(
-                PRIMARY_CONNECTION, new Function<DataCrate<List<MultipartReply>>, ListenableFuture<RpcResult<Void>>>() {
+        return handleServiceCall( new Function<DataCrate<List<MultipartReply>>, ListenableFuture<RpcResult<Void>>>() {
                     @Override
                     public ListenableFuture<RpcResult<Void>> apply(final DataCrate<List<MultipartReply>> data) {
                         final Xid xid = data.getRequestContext().getXid();
+                        final DeviceContext deviceContext = getDeviceContext();
                         deviceContext.getOpenflowMessageListenerFacade().registerMultipartXid(xid.getValue());
                         MultipartRequestInput multipartRequestInput = MultipartRequestInputFactory.
                                 makeMultipartRequestInput(xid.getValue(),
-                                        version,
+                                        getVersion(),
                                         type);
                         final Future<RpcResult<Void>> resultFromOFLib = deviceContext.getPrimaryConnectionContext()
                                 .getConnectionAdapter().multipartRequest(multipartRequestInput);