setting defualt translator libraries extracted to util class 97/17697/2
authorMartin Bobak <mbobak@cisco.com>
Fri, 3 Apr 2015 10:52:39 +0000 (12:52 +0200)
committerMartin Bobak <mbobak@cisco.com>
Fri, 3 Apr 2015 11:11:37 +0000 (13:11 +0200)
Change-Id: I1c12ccf69304450c04004b51d867cb01d4ee637f
Signed-off-by: Martin Bobak <mbobak@cisco.com>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/TranslatorLibraryUtil.java [new file with mode: 0644]

index 9f8b3c0edc3c483330619078e5e8196c3f389c61..9ed234758454d00f135d79b55fd1c9fee0166f49 100644 (file)
@@ -21,18 +21,14 @@ import org.opendaylight.openflowplugin.api.OFConstants;
 import org.opendaylight.openflowplugin.api.openflow.OpenFlowPluginProvider;
 import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionManager;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceManager;
-import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
 import org.opendaylight.openflowplugin.api.openflow.rpc.RpcManager;
 import org.opendaylight.openflowplugin.api.openflow.statistics.StatisticsManager;
 import org.opendaylight.openflowplugin.impl.connection.ConnectionManagerImpl;
 import org.opendaylight.openflowplugin.impl.device.DeviceManagerImpl;
 import org.opendaylight.openflowplugin.impl.rpc.RpcManagerImpl;
 import org.opendaylight.openflowplugin.impl.statistics.StatisticsManagerImpl;
-import org.opendaylight.openflowplugin.impl.translator.PacketReceivedTranslator;
-import org.opendaylight.openflowplugin.impl.translator.PortUpdateTranslator;
 import org.opendaylight.openflowplugin.impl.translator.TranslatorKeyFactory;
-import org.opendaylight.openflowplugin.impl.translator.TranslatorLibraryBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
+import org.opendaylight.openflowplugin.impl.util.TranslatorLibraryUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.api.types.rev150327.OfpRole;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -66,11 +62,7 @@ public class OpenFlowPluginProviderImpl implements OpenFlowPluginProvider {
         statisticsManager = new StatisticsManagerImpl();
         deviceManager.addRequestContextReadyHandler(statisticsManager);
         statisticsManager.addRequestDeviceSynchronizedHandler(rpcManager);
-        TranslatorKeyFactory of13TranslatorKeyFactory = new TranslatorKeyFactory(OFConstants.OFP_VERSION_1_3);
-        TranslatorLibrary translatorLibrary = new TranslatorLibraryBuilder().
-                addTranslator(of13TranslatorKeyFactory.createTranslatorKey(PacketReceived.class), new PacketReceivedTranslator()).
-                addTranslator(of13TranslatorKeyFactory.createTranslatorKey(PacketReceived.class), new PortUpdateTranslator()).
-                build();
+        TranslatorLibraryUtil.setBasicTranslatorLibrary(deviceManager);
         //TODO : initialize translatorLibrary + inject into deviceMngr
     }
 
diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/TranslatorLibraryUtil.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/util/TranslatorLibraryUtil.java
new file mode 100644 (file)
index 0000000..02c1d21
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.openflowplugin.impl.util;
+
+import org.opendaylight.openflowplugin.api.OFConstants;
+import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
+import org.opendaylight.openflowplugin.api.openflow.translator.TranslatorLibrarian;
+import org.opendaylight.openflowplugin.impl.translator.PacketReceivedTranslator;
+import org.opendaylight.openflowplugin.impl.translator.PortUpdateTranslator;
+import org.opendaylight.openflowplugin.impl.translator.TranslatorKeyFactory;
+import org.opendaylight.openflowplugin.impl.translator.TranslatorLibraryBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.PortUpdate;
+
+/**
+ * Created by Martin Bobak &lt;mbobak@cisco.com&gt; on 3.4.2015.
+ */
+public final class TranslatorLibraryUtil {
+
+
+    private TranslatorLibraryUtil() {
+        throw new IllegalStateException("This class should not be instantiated");
+    }
+
+    private static final TranslatorKeyFactory of13TranslatorKeyFactory = new TranslatorKeyFactory(OFConstants.OFP_VERSION_1_3);
+    private static final TranslatorKeyFactory of10TranslatorKeyFactory = new TranslatorKeyFactory(OFConstants.OFP_VERSION_1_0);
+    private static final TranslatorLibrary basicTranslatorLibrary;
+
+    static {
+        basicTranslatorLibrary = new TranslatorLibraryBuilder().
+                addTranslator(of13TranslatorKeyFactory.createTranslatorKey(PacketReceived.class), new PacketReceivedTranslator()).
+                addTranslator(of13TranslatorKeyFactory.createTranslatorKey(PortUpdate.class), new PortUpdateTranslator()).
+                addTranslator(of10TranslatorKeyFactory.createTranslatorKey(PacketReceived.class), new PacketReceivedTranslator()).
+                addTranslator(of10TranslatorKeyFactory.createTranslatorKey(PortUpdate.class), new PortUpdateTranslator()).
+                build();
+
+    }
+
+    public static void setBasicTranslatorLibrary(TranslatorLibrarian librarian) {
+        librarian.setTranslatorLibrary(basicTranslatorLibrary);
+    }
+}