Technical Debt part 1 48/41748/2
authormiroslav.macko <miroslav.macko@pantheon.tech>
Wed, 13 Jul 2016 07:43:13 +0000 (09:43 +0200)
committermiroslav.macko <miroslav.macko@pantheon.tech>
Mon, 18 Jul 2016 07:50:30 +0000 (09:50 +0200)
- MultipartRequestInputFactory
- added switch default case, removed unused method
- ConnectionManagerImpl
- BITMAP_NEGOTIATION_ENABLED constant
- HandshakeListenerImpl
- more readable changes
- log error

Change-Id: I8a52f1db824ca261e9b3da2aa1c7ca7999e7a745
Signed-off-by: miroslav.macko <miroslav.macko@pantheon.tech>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/common/MultipartRequestInputFactory.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/ConnectionManagerImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/connection/listener/HandshakeListenerImpl.java

index 1b0e74e6c14a15cdad584b1f019d5b76a749b6f7..263567c54839171e7f9181f40da0f011cace9020 100644 (file)
@@ -24,35 +24,20 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCase;
 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.MultipartRequestDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCase;
 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.MultipartRequestGroupCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder;
 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.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.group._case.MultipartRequestGroupBuilder;
@@ -141,6 +126,8 @@ public final class MultipartRequestInputFactory {
                     case OFConstants.OFP_VERSION_1_3:
                         multipartRequestFlowBuilder.setMatch(new MatchBuilder().setType(OxmMatchType.class).build());
                         break;
+                    default:
+                        throw new IllegalArgumentException("Unknown version " + version);
                 }
                 multipartRequestFlowCaseBuilder.setMultipartRequestFlow(multipartRequestFlowBuilder.build());
                 return multipartRequestFlowCaseBuilder.build();
@@ -200,44 +187,4 @@ public final class MultipartRequestInputFactory {
                 throw new IllegalArgumentException("Unknown MultipartType " + type);
         }
     }
-
-    private static boolean validationOfMultipartTypeAndRequestBody(@CheckForNull final MultipartType type,
-                                                                   @CheckForNull final MultipartRequestBody body) {
-        Preconditions.checkArgument(type != null, "Multipart Request can not by build without type!");
-        Preconditions.checkArgument(body != null, "Multipart Request can not by build without body!");
-        switch (type) {
-            case OFPMPDESC:
-                return body instanceof MultipartRequestDescCase;
-            case OFPMPFLOW:
-                return body instanceof MultipartRequestFlowCase;
-            case OFPMPAGGREGATE:
-                return body instanceof MultipartRequestAggregateCase;
-            case OFPMPTABLE:
-                return body instanceof MultipartRequestTableCase;
-            case OFPMPPORTSTATS:
-                return body instanceof MultipartRequestPortStatsCase;
-            case OFPMPQUEUE:
-                return body instanceof MultipartRequestQueueCase;
-            case OFPMPGROUP:
-                return body instanceof MultipartRequestGroupCase;
-            case OFPMPGROUPDESC:
-                return body instanceof MultipartRequestGroupDescCase;
-            case OFPMPGROUPFEATURES:
-                return body instanceof MultipartRequestGroupFeaturesCase;
-            case OFPMPMETER:
-                return body instanceof MultipartRequestMeterCase;
-            case OFPMPMETERCONFIG:
-                return body instanceof MultipartRequestMeterConfigCase;
-            case OFPMPMETERFEATURES:
-                return body instanceof MultipartRequestMeterFeaturesCase;
-            case OFPMPTABLEFEATURES:
-                return body instanceof MultipartRequestTableFeaturesCase;
-            case OFPMPPORTDESC:
-                return body instanceof MultipartRequestPortDescCase;
-            case OFPMPEXPERIMENTER:
-                return body instanceof MultipartRequestExperimenterCase;
-            default:
-                throw new IllegalArgumentException("Unknown MultipartType " + type);
-        }
-    }
 }
index 6450e6d647087359314de308a9a52ce740ee40ed..1cce64da358fe9875035def550f363ba5ea744de 100644 (file)
@@ -36,8 +36,7 @@ import org.slf4j.LoggerFactory;
 public class ConnectionManagerImpl implements ConnectionManager {
 
     private static final Logger LOG = LoggerFactory.getLogger(ConnectionManagerImpl.class);
-    private static final int HELLO_LIMIT = 20;
-    private final boolean bitmapNegotiationEnabled = true;
+    private static final boolean BITMAP_NEGOTIATION_ENABLED = true;
     private DeviceConnectedHandler deviceConnectedHandler;
     private final long echoReplyTimeout;
     private final ThreadPoolExecutor threadPool;
@@ -85,20 +84,13 @@ public class ConnectionManagerImpl implements ConnectionManager {
         HandshakeManagerImpl handshakeManager = new HandshakeManagerImpl(connectionAdapter,
                 ConnectionConductor.versionOrder.get(0),
                 ConnectionConductor.versionOrder);
-        handshakeManager.setUseVersionBitmap(isBitmapNegotiationEnabled());
+        handshakeManager.setUseVersionBitmap(BITMAP_NEGOTIATION_ENABLED);
         handshakeManager.setHandshakeListener(handshakeListener);
         handshakeManager.setErrorHandler(new ErrorHandlerSimpleImpl());
 
         return handshakeManager;
     }
 
-    /**
-     * @return parameter dedicated to hello message content
-     */
-    public boolean isBitmapNegotiationEnabled() {
-        return bitmapNegotiationEnabled;
-    }
-
     @Override
     public boolean accept(final InetAddress switchAddress) {
         // TODO add connection accept logic based on address
index 3760ff79f2ba54c1ff2cd9c234e046a705b1eec5..8bbe07bfaf92aef2bdcb67aabcfcb90606a5bb79 100644 (file)
@@ -58,7 +58,11 @@ public class HandshakeListenerImpl implements HandshakeListener {
 
         // fire barrier in order to sweep all handshake and posthandshake messages before continue
         final ListenableFuture<RpcResult<BarrierOutput>> barrier = fireBarrier(version, 0L);
-        Futures.addCallback(barrier, new FutureCallback<RpcResult<BarrierOutput>>() {
+        Futures.addCallback(barrier, addBarrierCallback());
+    }
+
+    private FutureCallback<RpcResult<BarrierOutput>> addBarrierCallback() {
+        return new FutureCallback<RpcResult<BarrierOutput>>() {
             @Override
             public void onSuccess(@Nullable final RpcResult<BarrierOutput> result) {
                 LOG.debug("succeeded by getting sweep barrier after posthandshake for device {}", connectionContext.getNodeId());
@@ -81,7 +85,7 @@ public class HandshakeListenerImpl implements HandshakeListener {
                 LOG.error("failed to get sweep barrier after posthandshake for device {}", connectionContext.getNodeId());
                 connectionContext.closeConnection(false);
             }
-        });
+        };
     }
 
     protected ListenableFuture<RpcResult<BarrierOutput>> fireBarrier(final Short version, final long xid) {