From: Tony Tkacik Date: Tue, 20 May 2014 13:42:07 +0000 (+0000) Subject: Merge "BUG-509: remove unused code" X-Git-Tag: autorelease-tag-v20140601202136_82eb3f9~52 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=ed62b66118000e74ef3ddbf53f265ae02e7c8912;hp=fd474e19dd339c1abb9ed528ff3fd052004d7fe2 Merge "BUG-509: remove unused code" --- diff --git a/.gitignore b/.gitignore index 6fc003be27..f8cf74f826 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ classes out/ .externalToolBuilders maven-eclipse.xml +.DS_STORE +.metadata diff --git a/opendaylight/commons/opendaylight/pom.xml b/opendaylight/commons/opendaylight/pom.xml index 81cc16da9f..7cec465da6 100644 --- a/opendaylight/commons/opendaylight/pom.xml +++ b/opendaylight/commons/opendaylight/pom.xml @@ -1392,6 +1392,16 @@ concepts ${yangtools.version} + + org.opendaylight.yangtools + object-cache-api + ${yangtools.version} + + + org.opendaylight.yangtools + object-cache-guava + ${yangtools.version} + org.opendaylight.yangtools restconf-client-api diff --git a/opendaylight/distribution/opendaylight/pom.xml b/opendaylight/distribution/opendaylight/pom.xml index 04818e78c6..48e661f196 100644 --- a/opendaylight/distribution/opendaylight/pom.xml +++ b/opendaylight/distribution/opendaylight/pom.xml @@ -1129,6 +1129,14 @@ org.opendaylight.yangtools concepts + + org.opendaylight.yangtools + object-cache-api + + + org.opendaylight.yangtools + object-cache-guava + org.opendaylight.yangtools restconf-client-api diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend index 00ce312335..57682bc6c9 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/ComponentActivator.xtend @@ -11,13 +11,17 @@ import java.util.Arrays import java.util.Dictionary import java.util.Hashtable import org.apache.felix.dm.Component +import org.opendaylight.controller.clustering.services.IClusterGlobalServices import org.opendaylight.controller.sal.binding.api.BindingAwareBroker import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ConsumerContext -import org.opendaylight.controller.sal.binding.api.BindingAwareConsumer +import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext +import org.opendaylight.controller.sal.binding.api.BindingAwareProvider import org.opendaylight.controller.sal.binding.api.NotificationService import org.opendaylight.controller.sal.binding.api.data.DataBrokerService import org.opendaylight.controller.sal.binding.api.data.DataProviderService +import org.opendaylight.controller.sal.compatibility.adsal.DataPacketServiceAdapter import org.opendaylight.controller.sal.compatibility.topology.TopologyAdapter +import org.opendaylight.controller.sal.compatibility.topology.TopologyProvider import org.opendaylight.controller.sal.core.ComponentActivatorAbstractBase import org.opendaylight.controller.sal.core.Node import org.opendaylight.controller.sal.core.NodeConnector @@ -26,6 +30,7 @@ import org.opendaylight.controller.sal.flowprogrammer.IPluginInFlowProgrammerSer import org.opendaylight.controller.sal.flowprogrammer.IPluginOutFlowProgrammerService import org.opendaylight.controller.sal.inventory.IPluginInInventoryService import org.opendaylight.controller.sal.inventory.IPluginOutInventoryService +import org.opendaylight.controller.sal.packet.IPluginInDataPacketService import org.opendaylight.controller.sal.packet.IPluginOutDataPacketService import org.opendaylight.controller.sal.reader.IPluginInReadService import org.opendaylight.controller.sal.reader.IPluginOutReadService @@ -34,22 +39,15 @@ import org.opendaylight.controller.sal.topology.IPluginOutTopologyService import org.opendaylight.controller.sal.utils.GlobalConstants import org.opendaylight.controller.sal.utils.INodeConnectorFactory import org.opendaylight.controller.sal.utils.INodeFactory -import org.opendaylight.controller.clustering.services.IClusterGlobalServices -import org.opendaylight.controller.sal.packet.IPluginInDataPacketService - import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.SalFlowService -import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.OpendaylightFlowTableStatisticsService import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.topology.discovery.rev130819.FlowTopologyDiscoveryService +import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.OpendaylightPortStatisticsService import org.osgi.framework.BundleContext import static org.opendaylight.controller.sal.compatibility.NodeMapping.* -import org.opendaylight.controller.sal.compatibility.topology.TopologyProvider -import org.opendaylight.controller.sal.compatibility.adsal.DataPacketServiceAdapter -import org.opendaylight.controller.sal.binding.api.BindingAwareProvider -import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext class ComponentActivator extends ComponentActivatorAbstractBase { diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/InventoryAndReadAdapter.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/InventoryAndReadAdapter.xtend index f54defdf14..8908504f15 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/InventoryAndReadAdapter.xtend +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/InventoryAndReadAdapter.xtend @@ -10,11 +10,13 @@ package org.opendaylight.controller.sal.compatibility import java.util.ArrayList import java.util.Collections import java.util.List +import java.util.Map import java.util.Set -import java.util.ArrayList; -import java.util.concurrent.locks.ReentrantLock; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ConcurrentHashMap +import java.util.concurrent.CopyOnWriteArrayList +import java.util.concurrent.locks.Lock +import java.util.concurrent.locks.ReentrantLock +import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader import org.opendaylight.controller.sal.binding.api.data.DataBrokerService import org.opendaylight.controller.sal.binding.api.data.DataProviderService import org.opendaylight.controller.sal.core.Edge @@ -76,10 +78,6 @@ import org.slf4j.LoggerFactory import static extension org.opendaylight.controller.sal.common.util.Arguments.* import static extension org.opendaylight.controller.sal.compatibility.NodeMapping.* -import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader -import java.util.concurrent.ConcurrentHashMap -import java.util.Map -import java.util.HashMap class InventoryAndReadAdapter implements IPluginInReadService, IPluginInInventoryService, diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyMapping.xtend b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyMapping.xtend index 9a19e10417..2d490564e1 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyMapping.xtend +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/main/java/org/opendaylight/controller/sal/compatibility/topology/TopologyMapping.xtend @@ -8,9 +8,9 @@ package org.opendaylight.controller.sal.compatibility.topology import com.google.common.collect.FluentIterable -import java.util.Collections import java.util.List import java.util.concurrent.CopyOnWriteArrayList +import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader import org.opendaylight.controller.sal.core.ConstructionException import org.opendaylight.controller.sal.core.Edge import org.opendaylight.controller.sal.core.Node @@ -21,13 +21,12 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology. import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Link +import org.opendaylight.yangtools.yang.binding.InstanceIdentifier +import org.slf4j.LoggerFactory import static com.google.common.base.Preconditions.* + import static extension org.opendaylight.controller.sal.compatibility.NodeMapping.* -import org.opendaylight.controller.md.sal.binding.util.TypeSafeDataReader -import org.opendaylight.yangtools.yang.binding.InstanceIdentifier -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNodeConnector -import org.slf4j.LoggerFactory class TopologyMapping { private static val LOG = LoggerFactory.getLogger(TopologyMapping); diff --git a/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/TestFromSalConversionsUtils.java b/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/TestFromSalConversionsUtils.java index 63c5664a0c..81ccb35cd9 100644 --- a/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/TestFromSalConversionsUtils.java +++ b/opendaylight/md-sal/compatibility/sal-compatibility/src/test/java/org/opendaylight/controller/sal/compatibility/test/TestFromSalConversionsUtils.java @@ -10,8 +10,8 @@ package org.opendaylight.controller.sal.compatibility.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.opendaylight.controller.sal.compatibility.ProtocolConstants.ETHERNET_ARP; import static org.opendaylight.controller.sal.compatibility.ProtocolConstants.CRUDP; +import static org.opendaylight.controller.sal.compatibility.ProtocolConstants.ETHERNET_ARP; import static org.opendaylight.controller.sal.compatibility.ProtocolConstants.TCP; import static org.opendaylight.controller.sal.compatibility.ProtocolConstants.UDP; @@ -19,17 +19,53 @@ import java.util.ArrayList; import java.util.List; import org.junit.Test; -import org.opendaylight.controller.sal.action.*; +import org.opendaylight.controller.sal.action.Action; +import org.opendaylight.controller.sal.action.Flood; +import org.opendaylight.controller.sal.action.FloodAll; +import org.opendaylight.controller.sal.action.HwPath; +import org.opendaylight.controller.sal.action.Loopback; +import org.opendaylight.controller.sal.action.PopVlan; +import org.opendaylight.controller.sal.action.PushVlan; +import org.opendaylight.controller.sal.action.SetDlDst; +import org.opendaylight.controller.sal.action.SetDlSrc; +import org.opendaylight.controller.sal.action.SetDlType; +import org.opendaylight.controller.sal.action.SetNextHop; +import org.opendaylight.controller.sal.action.SetNwDst; +import org.opendaylight.controller.sal.action.SetNwSrc; +import org.opendaylight.controller.sal.action.SetNwTos; +import org.opendaylight.controller.sal.action.SetTpDst; +import org.opendaylight.controller.sal.action.SetTpSrc; +import org.opendaylight.controller.sal.action.SetVlanCfi; +import org.opendaylight.controller.sal.action.SetVlanId; +import org.opendaylight.controller.sal.action.SetVlanPcp; +import org.opendaylight.controller.sal.action.SwPath; import org.opendaylight.controller.sal.compatibility.MDFlowMapping; import org.opendaylight.controller.sal.compatibility.ToSalConversionsUtils; import org.opendaylight.controller.sal.flowprogrammer.Flow; import org.opendaylight.controller.sal.match.Match; import org.opendaylight.controller.sal.match.MatchType; -import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.NodeFlow; -import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.*; -import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.pop.vlan.action._case.PopVlanAction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.FloodActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.FloodAllActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.HwPathActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.LoopbackActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlDstActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlSrcActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetDlTypeActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNextHopActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwDstActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTosActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpDstActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetTpSrcActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanCfiActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanIdActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetVlanPcpActionCase; +import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SwPathActionCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.Address; import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.address.Ipv4; +import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.NodeFlow; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer3Match; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer4Match; import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatch; @@ -140,7 +176,7 @@ public class TestFromSalConversionsUtils { if (layer4Match instanceof SctpMatch) { assertEquals("Sctp source port is incorrect.", 0xffff, (int) ((SctpMatch) layer4Match) .getSctpSourcePort().getValue()); - assertEquals("Sctp dest port is incorrect.", (int) 0xfffe, (int) ((SctpMatch) layer4Match) + assertEquals("Sctp dest port is incorrect.", 0xfffe, (int) ((SctpMatch) layer4Match) .getSctpDestinationPort().getValue()); sctpFound = true; } @@ -151,9 +187,9 @@ public class TestFromSalConversionsUtils { assertEquals("Wrong protocol", TCP, match.getIpMatch().getIpProtocol().byteValue()); layer4Match = match.getLayer4Match(); if (layer4Match instanceof TcpMatch) { - assertEquals("Tcp source port is incorrect.", (int) 0xabcd, (int) ((TcpMatch) layer4Match) + assertEquals("Tcp source port is incorrect.", 0xabcd, (int) ((TcpMatch) layer4Match) .getTcpSourcePort().getValue()); - assertEquals("Tcp dest port is incorrect.", (int) 0xdcba, (int) ((TcpMatch) layer4Match) + assertEquals("Tcp dest port is incorrect.", 0xdcba, (int) ((TcpMatch) layer4Match) .getTcpDestinationPort().getValue()); sctpFound = true; } @@ -164,9 +200,9 @@ public class TestFromSalConversionsUtils { assertEquals("Wrong protocol", UDP, match.getIpMatch().getIpProtocol().byteValue()); layer4Match = match.getLayer4Match(); if (layer4Match instanceof UdpMatch) { - assertEquals("Udp source port is incorrect.", (int) 0xcdef, (int) ((UdpMatch) layer4Match) + assertEquals("Udp source port is incorrect.", 0xcdef, (int) ((UdpMatch) layer4Match) .getUdpSourcePort().getValue()); - assertEquals("Udp dest port is incorrect.", (int) 0xfedc, (int) ((UdpMatch) layer4Match) + assertEquals("Udp dest port is incorrect.", 0xfedc, (int) ((UdpMatch) layer4Match) .getUdpDestinationPort().getValue()); sctpFound = true; } @@ -227,13 +263,13 @@ public class TestFromSalConversionsUtils { assertEquals("Wrong value of vlad ID in PushVlanAction.", (Integer) 4095, ((PushVlanActionCase) innerAction).getPushVlanAction().getVlanId().getValue()); } else if (innerAction instanceof SetDlDstActionCase) { - assertEquals("Wrong MAC destination address in SetDlDstAction.", "ff:ee:dd:cc:bb:aa", + assertEquals("Wrong MAC destination address in SetDlDstAction.", "ff:ee:dd:cc:bb:aa", ((SetDlDstActionCase) innerAction).getSetDlDstAction().getAddress().getValue()); } else if (innerAction instanceof SetDlSrcActionCase) { - assertEquals("Wrong MAC source address in SetDlDstAction.", "ff:ee:dd:cc:bb:aa", + assertEquals("Wrong MAC source address in SetDlDstAction.", "ff:ee:dd:cc:bb:aa", ((SetDlSrcActionCase) innerAction).getSetDlSrcAction().getAddress().getValue()); } else if (innerAction instanceof SetDlTypeActionCase) { - assertEquals("Wrong data link type in SetDlTypeAction.", (long) 513, + assertEquals("Wrong data link type in SetDlTypeAction.", 513, (long) ((SetDlTypeActionCase) innerAction).getSetDlTypeAction().getDlType().getValue()); } else if (innerAction instanceof SetNextHopActionCase) { Address address = ((SetNextHopActionCase) innerAction).getSetNextHopAction().getAddress(); diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java index 3f9d5c7854..f1be5c6922 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingToNormalizedNodeCodec.java @@ -13,18 +13,17 @@ import java.util.AbstractMap.SimpleEntry; import java.util.LinkedList; import java.util.List; import java.util.Map.Entry; -import java.util.concurrent.Callable; import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException; import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation; import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer; -import org.opendaylight.yangtools.concepts.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.DataContainer; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.Item; import org.opendaylight.yangtools.yang.binding.util.BindingReflections; +import org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.AugmentationIdentifier; @@ -44,6 +43,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.common.base.Optional; +import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -364,9 +364,9 @@ public class BindingToNormalizedNodeCodec implements SchemaContextListener { } else if (List.class.isAssignableFrom(returnType)) { try { return ClassLoaderUtils.withClassLoader(method.getDeclaringClass().getClassLoader(), - new Callable() { + new Supplier() { @Override - public Class call() { + public Class get() { Type listResult = ClassLoaderUtils.getFirstGenericParameter(method .getGenericReturnType()); if (listResult instanceof Class diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java index ddc79ae075..e08e9a4e05 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/ForwardedBackwardsCompatibleDataBroker.java @@ -443,9 +443,6 @@ public class ForwardedBackwardsCompatibleDataBroker extends AbstractForwardedDat } private static class BackwardsCompatibleConfigurationDataChangeInvoker implements BindingDataChangeListener, Delegator { - - - @SuppressWarnings("rawtypes") private final org.opendaylight.controller.md.sal.common.api.data.DataChangeListener delegate; public BackwardsCompatibleConfigurationDataChangeInvoker(final DataChangeListener listener) { diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentConnector.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentConnector.java index b27c80d784..2b40437d64 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentConnector.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/connect/dom/BindingIndependentConnector.java @@ -62,7 +62,6 @@ import org.opendaylight.controller.sal.core.api.notify.NotificationListener; import org.opendaylight.controller.sal.core.api.notify.NotificationPublishService; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.concepts.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.binding.Augmentable; import org.opendaylight.yangtools.yang.binding.Augmentation; import org.opendaylight.yangtools.yang.binding.BaseIdentity; @@ -73,6 +72,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.Notification; import org.opendaylight.yangtools.yang.binding.RpcService; import org.opendaylight.yangtools.yang.binding.util.BindingReflections; +import org.opendaylight.yangtools.yang.binding.util.ClassLoaderUtils; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResult; diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java index f869254dcf..a7c6b0c66f 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/util/compat/DataNormalizationOperation.java @@ -285,7 +285,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { ImmutableMap.Builder keys = ImmutableMap.builder(); for (QName key : keyDefinition) { @@ -325,7 +325,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { return Builders.unkeyedListEntryBuilder().withNodeIdentifier(getIdentifier()); } @@ -343,7 +343,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { return Builders.containerBuilder().withNodeIdentifier(getIdentifier()); } @@ -377,7 +377,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { return Builders.orderedLeafSetBuilder().withNodeIdentifier(getIdentifier()); } @@ -397,7 +397,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { return Builders.leafSetBuilder().withNodeIdentifier(getIdentifier()); } @@ -602,7 +602,7 @@ public abstract class DataNormalizationOperation impleme } @Override - protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { + protected NormalizedNodeContainerBuilder createBuilder(final CompositeNode compositeNode) { return Builders.choiceBuilder().withNodeIdentifier(getIdentifier()); } diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java index b2217a6f0a..5b34fba69a 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java @@ -1,36 +1,28 @@ package org.opendaylight.controller.md.sal.dom.broker.impl.compat; import org.opendaylight.controller.md.sal.common.api.RegistrationListener; -import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; -import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandlerRegistration; import org.opendaylight.controller.md.sal.common.api.data.DataReader; import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener; import org.opendaylight.controller.sal.common.DataStoreIdentifier; import org.opendaylight.controller.sal.core.api.data.DataChangeListener; import org.opendaylight.controller.sal.core.api.data.DataModificationTransaction; import org.opendaylight.controller.sal.core.api.data.DataProviderService; import org.opendaylight.controller.sal.core.api.data.DataValidator; import org.opendaylight.yangtools.concepts.AbstractObjectRegistration; -import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; -import org.opendaylight.yangtools.concepts.util.ListenerRegistry; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; public class BackwardsCompatibleDataBroker implements DataProviderService, SchemaContextListener { - DOMDataBroker backingBroker; - DataNormalizer normalizer; - private final ListenerRegistry fakeRegistry = ListenerRegistry.create(); - + private final DOMDataBroker backingBroker; + private DataNormalizer normalizer; public BackwardsCompatibleDataBroker(final DOMDataBroker newBiDataImpl) { backingBroker = newBiDataImpl; @@ -43,7 +35,7 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem @Override public CompositeNode readConfigurationData(final InstanceIdentifier legacyPath) { - BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); + final BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); try { return tx.readConfigurationData(legacyPath); } finally { @@ -53,7 +45,7 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem @Override public CompositeNode readOperationalData(final InstanceIdentifier legacyPath) { - BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); + final BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); try { return tx.readOperationalData(legacyPath); } finally { @@ -67,9 +59,19 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public ListenerRegistration registerDataChangeListener(final InstanceIdentifier path, + public ListenerRegistration registerDataChangeListener(final InstanceIdentifier legacyPath, final DataChangeListener listener) { - return fakeRegistry .register(listener); + final InstanceIdentifier normalizedPath = normalizer.toNormalized(legacyPath); + + final TranslatingListenerInvoker translatingCfgListener = + TranslatingListenerInvoker.createConfig(listener, normalizer); + translatingCfgListener.register(backingBroker, normalizedPath); + + final TranslatingListenerInvoker translatingOpListener = + TranslatingListenerInvoker.createOperational(listener, normalizer); + translatingOpListener.register(backingBroker, normalizedPath); + + return new DelegateListenerRegistration(translatingCfgListener, translatingOpListener, listener); } @Override @@ -90,7 +92,7 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem return null; } - // Obsolote functionality + // Obsolete functionality @Override public void addValidator(final DataStoreIdentifier store, final DataValidator validator) { @@ -124,25 +126,26 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem throw new UnsupportedOperationException("Data Reader contract is not supported."); } - private final class TranslatingListenerInvoker implements DOMDataChangeListener, Delegator { - + private static class DelegateListenerRegistration implements ListenerRegistration { + private final TranslatingListenerInvoker translatingCfgListener; + private final TranslatingListenerInvoker translatingOpListener; + private final DataChangeListener listener; - private DataChangeListener delegate; + public DelegateListenerRegistration(final TranslatingListenerInvoker translatingCfgListener, final TranslatingListenerInvoker translatingOpListener, final DataChangeListener listener) { + this.translatingCfgListener = translatingCfgListener; + this.translatingOpListener = translatingOpListener; + this.listener = listener; + } @Override - public void onDataChanged(final AsyncDataChangeEvent> normalizedChange) { - - DataChangeEvent legacyChange = null; - delegate.onDataChanged(legacyChange); + public void close() { + translatingCfgListener.close(); + translatingOpListener.close(); } @Override - public DataChangeListener getDelegate() { - - return delegate; + public DataChangeListener getInstance() { + return listener; } - - } - } diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingDataChangeEvent.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingDataChangeEvent.java new file mode 100644 index 0000000000..827e4ca63d --- /dev/null +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingDataChangeEvent.java @@ -0,0 +1,233 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.md.sal.dom.broker.impl.compat; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; +import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationException; +import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer; +import org.opendaylight.yangtools.yang.data.api.CompositeNode; +import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +import com.google.common.collect.Maps; + +public abstract class TranslatingDataChangeEvent implements + DataChangeEvent { + + private TranslatingDataChangeEvent() { + } + + public static DataChangeEvent createOperational( + final AsyncDataChangeEvent> change, final DataNormalizer normalizer) { + return new OperationalChangeEvent(change, normalizer); + } + + public static DataChangeEvent createConfiguration( + final AsyncDataChangeEvent> change, final DataNormalizer normalizer) { + return new ConfigurationChangeEvent(change, normalizer); + } + + @Override + public Map getCreatedOperationalData() { + return Collections.emptyMap(); + } + + @Override + public Map getCreatedConfigurationData() { + return Collections.emptyMap(); + } + + @Override + public Map getUpdatedOperationalData() { + return Collections.emptyMap(); + } + + @Override + public Map getUpdatedConfigurationData() { + return Collections.emptyMap(); + } + + @Override + public Set getRemovedConfigurationData() { + return Collections.emptySet(); + } + + @Override + public Set getRemovedOperationalData() { + return Collections.emptySet(); + } + + @Override + public Map getOriginalConfigurationData() { + return Collections.emptyMap(); + } + + @Override + public Map getOriginalOperationalData() { + return Collections.emptyMap(); + } + + @Override + public CompositeNode getOriginalConfigurationSubtree() { + return null; + } + + @Override + public CompositeNode getOriginalOperationalSubtree() { + return null; + } + + @Override + public CompositeNode getUpdatedConfigurationSubtree() { + return null; + } + + @Override + public CompositeNode getUpdatedOperationalSubtree() { + return null; + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private final static class OperationalChangeEvent extends TranslatingDataChangeEvent { + + private final AsyncDataChangeEvent> delegate; + private final DataNormalizer normalizer; + private Map updatedCache; + + public OperationalChangeEvent(final AsyncDataChangeEvent> change, + final DataNormalizer normalizer) { + this.delegate = change; + this.normalizer = normalizer; + } + + @Override + public Map getCreatedOperationalData() { + return transformToLegacy(normalizer, delegate.getCreatedData()); + } + + + @Override + public Set getRemovedOperationalData() { + return delegate.getRemovedPaths(); + } + + @Override + public CompositeNode getOriginalOperationalSubtree() { + // first argument is unused + return normalizer.toLegacy(null, delegate.getOriginalSubtree()); + } + + @Override + public CompositeNode getUpdatedOperationalSubtree() { + // first argument is unused + return normalizer.toLegacy(null, delegate.getUpdatedSubtree()); + } + + @Override + public Map getOriginalOperationalData() { + return transformToLegacy(normalizer, delegate.getOriginalData()); + } + + @Override + public Map getUpdatedOperationalData() { + if(updatedCache == null) { + final Map updated = transformToLegacy(normalizer, delegate.getUpdatedData()); + final Map created = getCreatedConfigurationData(); + final HashMap updatedComposite = new HashMap<>(created.size() + updated.size()); + updatedComposite.putAll(created); + updatedComposite.putAll(updated); + updatedCache = Collections.unmodifiableMap(updatedComposite); + } + return updatedCache; + } + + @Override + public String toString() { + return "OperationalChangeEvent [delegate=" + delegate + "]"; + } + + } + + private static Map transformToLegacy(final DataNormalizer normalizer, final Map> nodes) { + final Map legacy = Maps.newHashMap(); + + for (final Map.Entry> entry : nodes.entrySet()) { + try { + legacy.put(normalizer.toLegacy(entry.getKey()), normalizer.toLegacy(entry.getKey(), entry.getValue())); + } catch (final DataNormalizationException e) { + throw new IllegalStateException("Unable to transform data change event to legacy format", e); + } + } + return legacy; + } + + private final static class ConfigurationChangeEvent extends TranslatingDataChangeEvent { + + private final AsyncDataChangeEvent> delegate; + private final DataNormalizer normalizer; + private Map updatedCache; + + public ConfigurationChangeEvent(final AsyncDataChangeEvent> change, + final DataNormalizer normalizer) { + this.delegate = change; + this.normalizer = normalizer; + } + + @Override + public Map getCreatedConfigurationData() { + return transformToLegacy(normalizer, delegate.getCreatedData()); + } + + + @Override + public Set getRemovedConfigurationData() { + return delegate.getRemovedPaths(); + } + + @Override + public CompositeNode getOriginalConfigurationSubtree() { + // first argument is unused + return normalizer.toLegacy(null, delegate.getOriginalSubtree()); + } + + @Override + public CompositeNode getUpdatedConfigurationSubtree() { + // first argument is unused + return normalizer.toLegacy(null, delegate.getUpdatedSubtree()); + } + + @Override + public Map getOriginalConfigurationData() { + return transformToLegacy(normalizer, delegate.getOriginalData()); + } + + @Override + public Map getUpdatedConfigurationData() { + if(updatedCache == null) { + final Map updated = transformToLegacy(normalizer, delegate.getUpdatedData()); + final Map created = getCreatedConfigurationData(); + final HashMap updatedComposite = new HashMap<>(created.size() + updated.size()); + updatedComposite.putAll(created); + updatedComposite.putAll(updated); + updatedCache = Collections.unmodifiableMap(updatedComposite); + } + return updatedCache; + } + + @Override + public String toString() { + return "ConfigurationChangeEvent [delegate=" + delegate + "]"; + } + } +} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingListenerInvoker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingListenerInvoker.java new file mode 100644 index 0000000000..1ce252df98 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/TranslatingListenerInvoker.java @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.md.sal.dom.broker.impl.compat; + +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker; +import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; +import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; +import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer; +import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; +import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener; +import org.opendaylight.controller.sal.core.api.data.DataChangeListener; +import org.opendaylight.yangtools.concepts.Delegator; +import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.yangtools.yang.data.api.CompositeNode; +import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +abstract class TranslatingListenerInvoker implements AutoCloseable, DOMDataChangeListener, Delegator { + + private final DataChangeListener delegate; + private final DataNormalizer normalizer; + protected ListenerRegistration reg; + + protected TranslatingListenerInvoker(final DataChangeListener listener, final DataNormalizer normalizer) { + this.delegate = listener; + this.normalizer = normalizer; + } + + static TranslatingListenerInvoker createConfig(final DataChangeListener listener, final DataNormalizer normalizer) { + return new TranslatingConfigListenerInvoker(listener, normalizer); + } + + static TranslatingListenerInvoker createOperational(final DataChangeListener listener, final DataNormalizer normalizer) { + return new TranslatingOperationalListenerInvoker(listener, normalizer); + } + + @Override + public void onDataChanged(final AsyncDataChangeEvent> normalizedChange) { + delegate.onDataChanged(getLegacyEvent(normalizer, normalizedChange)); + } + + abstract DataChangeEvent getLegacyEvent(final DataNormalizer normalizer, + final AsyncDataChangeEvent> normalizedChange); + + @Override + public DataChangeListener getDelegate() { + return delegate; + } + + abstract void register(final DOMDataBroker backingBroker, final InstanceIdentifier normalizedPath); + + @Override + public void close() { + if (reg != null) { + reg.close(); + } + } + + static final class TranslatingConfigListenerInvoker extends TranslatingListenerInvoker { + + public TranslatingConfigListenerInvoker(final DataChangeListener listener, final DataNormalizer normalizer) { + super(listener, normalizer); + } + + DataChangeEvent getLegacyEvent(final DataNormalizer normalizer, final AsyncDataChangeEvent> normalizedChange) { + return TranslatingDataChangeEvent.createConfiguration(normalizedChange, normalizer); + } + + @Override + void register(final DOMDataBroker backingBroker, final InstanceIdentifier normalizedPath) { + reg = backingBroker.registerDataChangeListener(LogicalDatastoreType.CONFIGURATION, normalizedPath, this, + AsyncDataBroker.DataChangeScope.SUBTREE); + } + } + + static final class TranslatingOperationalListenerInvoker extends TranslatingListenerInvoker { + + public TranslatingOperationalListenerInvoker(final DataChangeListener listener, final DataNormalizer normalizer) { + super(listener, normalizer); + } + + DataChangeEvent getLegacyEvent(final DataNormalizer normalizer, final AsyncDataChangeEvent> normalizedChange) { + return TranslatingDataChangeEvent.createOperational(normalizedChange, normalizer); + } + + @Override + void register(final DOMDataBroker backingBroker, final InstanceIdentifier normalizedPath) { + reg = backingBroker.registerDataChangeListener(LogicalDatastoreType.OPERATIONAL, normalizedPath, this, + AsyncDataBroker.DataChangeScope.SUBTREE); + } + } + +} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend index 9cbf4282e4..357a516b57 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/BrokerConfigActivator.xtend @@ -8,29 +8,22 @@ package org.opendaylight.controller.sal.dom.broker import java.util.Hashtable +import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker +import org.opendaylight.controller.md.sal.dom.broker.impl.compat.BackwardsCompatibleDataBroker +import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry import org.opendaylight.controller.sal.core.api.data.DataBrokerService import org.opendaylight.controller.sal.core.api.data.DataProviderService import org.opendaylight.controller.sal.core.api.data.DataStore import org.opendaylight.controller.sal.core.api.model.SchemaService -import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener import org.opendaylight.controller.sal.core.api.mount.MountProvisionService import org.opendaylight.controller.sal.core.api.mount.MountService import org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareDataStoreAdapter import org.opendaylight.controller.sal.dom.broker.impl.SchemaAwareRpcBroker +import org.opendaylight.controller.sal.dom.broker.impl.SchemaContextProviders import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier +import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener import org.osgi.framework.BundleContext import org.osgi.framework.ServiceRegistration -import org.opendaylight.controller.sal.dom.broker.impl.SchemaContextProviders -import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry -import org.opendaylight.controller.md.sal.dom.broker.impl.compat.BackwardsCompatibleDataBroker -import org.opendaylight.controller.md.sal.dom.broker.impl.DOMDataBrokerImpl -import com.google.common.util.concurrent.MoreExecutors -import com.google.common.collect.ImmutableMap -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType -import org.opendaylight.controller.sal.core.spi.data.DOMStore -import org.opendaylight.controller.md.sal.dom.store.impl.InMemoryDOMDataStore -import java.util.concurrent.Executors -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker class BrokerConfigActivator implements AutoCloseable { diff --git a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java index 89274c9ad5..1839de1597 100644 --- a/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java +++ b/opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/config/yang/md/sal/connector/netconf/NetconfConnectorModule.java @@ -17,8 +17,10 @@ import java.io.File; import java.io.InputStream; import java.net.InetAddress; import java.net.InetSocketAddress; +import java.net.URI; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import org.opendaylight.controller.md.sal.common.api.data.DataChangeEvent; import org.opendaylight.controller.netconf.client.NetconfClientDispatcher; import org.opendaylight.controller.netconf.client.NetconfClientDispatcherImpl; import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguration; @@ -27,8 +29,10 @@ import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClient import org.opendaylight.controller.netconf.client.conf.NetconfReconnectingClientConfigurationBuilder; import org.opendaylight.controller.netconf.nettyutil.handler.ssh.authentication.LoginPassword; import org.opendaylight.controller.sal.binding.api.data.DataProviderService; +import org.opendaylight.controller.sal.connect.netconf.InventoryUtils; import org.opendaylight.controller.sal.connect.netconf.NetconfDevice; import org.opendaylight.controller.sal.connect.netconf.NetconfDeviceListener; +import org.opendaylight.controller.sal.core.api.data.DataChangeListener; import org.opendaylight.protocol.framework.ReconnectStrategy; import org.opendaylight.protocol.framework.ReconnectStrategyFactory; import org.opendaylight.protocol.framework.TimedReconnectStrategy; @@ -36,6 +40,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.inventory.rev140108.NetconfNode; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.model.util.repo.AbstractCachingSchemaSourceProvider; import org.opendaylight.yangtools.yang.model.util.repo.FilesystemSchemaCachingProvider; import org.opendaylight.yangtools.yang.model.util.repo.SchemaSourceProvider; diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImpl.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImpl.java index 8f95e73b15..e721084763 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImpl.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImpl.java @@ -180,10 +180,10 @@ public class ClientImpl implements RemoteRpcClient { * @param routeId route identifier * @return remote network address */ - private String lookupRemoteAddressForGlobalRpc(RpcRouter.RouteIdentifier routeId){ + private String lookupRemoteAddressForGlobalRpc(RpcRouter.RouteIdentifier routeId){ checkNotNull(routeId, "route must not be null"); - Optional> routingTable = routingTableProvider.getRoutingTable(); + Optional, String>> routingTable = routingTableProvider.getRoutingTable(); checkNotNull(routingTable.isPresent(), "Routing table is null"); String address = null; @@ -202,10 +202,10 @@ public class ClientImpl implements RemoteRpcClient { * @param routeId route identifier * @return remote network address */ - private String lookupRemoteAddressForRpc(RpcRouter.RouteIdentifier routeId){ + private String lookupRemoteAddressForRpc(RpcRouter.RouteIdentifier routeId){ checkNotNull(routeId, "route must not be null"); - Optional> routingTable = routingTableProvider.getRoutingTable(); + Optional, String>> routingTable = routingTableProvider.getRoutingTable(); checkNotNull(routingTable.isPresent(), "Routing table is null"); String address = routingTable.get().getLastAddedRoute(routeId); @@ -230,7 +230,7 @@ public class ClientImpl implements RemoteRpcClient { */ private void closeZmqContext() { ExecutorService exec = Executors.newSingleThreadExecutor(); - FutureTask zmqTermination = new FutureTask(new Runnable() { + FutureTask zmqTermination = new FutureTask(new Runnable() { @Override public void run() { diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/Context.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/Context.java index 9e66c20613..37bff7b7bb 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/Context.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/Context.java @@ -7,19 +7,19 @@ package org.opendaylight.controller.sal.connector.remoterpc; -import org.zeromq.ZMQ; - import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; +import org.zeromq.ZMQ; + /** * Provides a ZeroMQ Context object */ public class Context { - private ZMQ.Context zmqContext = ZMQ.context(1); + private final ZMQ.Context zmqContext = ZMQ.context(1); private String uri; private final String DEFAULT_RPC_PORT = "5554"; @@ -69,7 +69,7 @@ public class Context { */ private String findIpAddress() { String hostAddress = null; - Enumeration e = null; + Enumeration e = null; try { e = NetworkInterface.getNetworkInterfaces(); } catch (SocketException e1) { @@ -79,7 +79,7 @@ public class Context { NetworkInterface n = (NetworkInterface) e.nextElement(); - Enumeration ee = n.getInetAddresses(); + Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); if ((i instanceof Inet4Address) && (i.isSiteLocalAddress())) diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcClient.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcClient.java index a564a0ad04..94e3232f17 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcClient.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcClient.java @@ -8,14 +8,11 @@ package org.opendaylight.controller.sal.connector.remoterpc; -import org.opendaylight.controller.sal.core.api.RpcImplementation; -import org.opendaylight.controller.sal.core.api.RoutedRpcDefaultImplementation; - public interface RemoteRpcClient extends AutoCloseable{ void setRoutingTableProvider(RoutingTableProvider provider); - + void stop(); - + void start(); } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcProvider.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcProvider.java index 53fbb929bb..76df25682e 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcProvider.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RemoteRpcProvider.java @@ -58,7 +58,7 @@ public class RemoteRpcProvider implements private ProviderSession brokerSession; private RpcProvisionRegistry rpcProvisionRegistry; private BundleContext context; - private ServiceTracker clusterTracker; + private ServiceTracker clusterTracker; public RemoteRpcProvider(ServerImpl server, ClientImpl client) { this.server = server; @@ -170,8 +170,8 @@ public class RemoteRpcProvider implements } - private RoutingTable getRoutingTable(){ - Optional> routingTable = + private RoutingTable, String> getRoutingTable(){ + Optional, String>> routingTable = routingTableProvider.getRoutingTable(); checkState(routingTable.isPresent(), "Routing table is null"); @@ -191,7 +191,7 @@ public class RemoteRpcProvider implements RouteIdentifierImpl routeId = new RouteIdentifierImpl(); routeId.setType(rpc); - RoutingTable routingTable = getRoutingTable(); + RoutingTable, String> routingTable = getRoutingTable(); try { routingTable.addGlobalRoute(routeId, server.getServerAddress()); @@ -212,7 +212,7 @@ public class RemoteRpcProvider implements RouteIdentifierImpl routeId = new RouteIdentifierImpl(); routeId.setType(rpc); - RoutingTable routingTable = getRoutingTable(); + RoutingTable, String> routingTable = getRoutingTable(); try { routingTable.removeGlobalRoute(routeId); @@ -245,9 +245,9 @@ public class RemoteRpcProvider implements * * @param announcements */ - private void announce(Set announcements) { + private void announce(Set> announcements) { _logger.debug("Announcing [{}]", announcements); - RoutingTable routingTable = getRoutingTable(); + RoutingTable, String> routingTable = getRoutingTable(); try { routingTable.addRoutes(announcements, server.getServerAddress()); } catch (RoutingTableException | SystemException e) { @@ -259,9 +259,9 @@ public class RemoteRpcProvider implements * * @param removals */ - private void remove(Set removals){ + private void remove(Set> removals){ _logger.debug("Removing [{}]", removals); - RoutingTable routingTable = getRoutingTable(); + RoutingTable, String> routingTable = getRoutingTable(); try { routingTable.removeRoutes(removals, server.getServerAddress()); } catch (RoutingTableException | SystemException e) { @@ -274,9 +274,9 @@ public class RemoteRpcProvider implements * @param changes * @return */ - private Set getRouteIdentifiers(Map> changes) { + private Set> getRouteIdentifiers(Map> changes) { RouteIdentifierImpl routeId = null; - Set routeIdSet = new HashSet(); + Set> routeIdSet = new HashSet<>(); for (RpcRoutingContext context : changes.keySet()){ routeId = new RouteIdentifierImpl(); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java index 71bab288e6..d960303fcf 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/RoutingTableProvider.java @@ -8,25 +8,24 @@ package org.opendaylight.controller.sal.connector.remoterpc; -import com.google.common.base.Optional; import org.opendaylight.controller.sal.connector.api.RpcRouter; -import org.opendaylight.controller.sal.connector.remoterpc.api.RouteChangeListener; import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable; -import org.opendaylight.controller.sal.connector.remoterpc.dto.RouteIdentifierImpl; import org.opendaylight.controller.sal.connector.remoterpc.impl.RoutingTableImpl; import org.osgi.framework.BundleContext; import org.osgi.util.tracker.ServiceTracker; +import com.google.common.base.Optional; + public class RoutingTableProvider implements AutoCloseable { @SuppressWarnings("rawtypes") final ServiceTracker tracker; - private RoutingTableImpl routingTableImpl = null; + private RoutingTableImpl routingTableImpl = null; //final private RouteChangeListener routeChangeListener; - - + + public RoutingTableProvider(BundleContext ctx){//,RouteChangeListener rcl) { @SuppressWarnings("rawtypes") ServiceTracker rawTracker = new ServiceTracker<>(ctx, RoutingTable.class, null); @@ -35,14 +34,14 @@ public class RoutingTableProvider implements AutoCloseable { //routeChangeListener = rcl; } - - public Optional> getRoutingTable() { + + public Optional, String>> getRoutingTable() { @SuppressWarnings("unchecked") - RoutingTable tracked = tracker.getService(); + RoutingTable, String> tracked = tracker.getService(); if(tracked instanceof RoutingTableImpl){ if(routingTableImpl != tracked){ - routingTableImpl= (RoutingTableImpl)tracked; + routingTableImpl= (RoutingTableImpl)tracked; //routingTableImpl.setRouteChangeListener(routeChangeListener); } } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImpl.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImpl.java index d256b998d4..3acea356ce 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImpl.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImpl.java @@ -7,48 +7,33 @@ */ package org.opendaylight.controller.sal.connector.remoterpc; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; -import com.google.common.collect.Sets; -import org.opendaylight.controller.md.sal.common.api.routing.RouteChange; -import org.opendaylight.controller.sal.connector.remoterpc.api.RouteChangeListener; -import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable; -import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTableException; -import org.opendaylight.controller.sal.connector.remoterpc.api.SystemException; -import org.opendaylight.controller.sal.connector.remoterpc.dto.RouteIdentifierImpl; -import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; -import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry; -import org.opendaylight.controller.sal.core.api.RpcRegistrationListener; -import org.opendaylight.controller.sal.core.api.RpcRoutingContext; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.zeromq.ZMQ; - import java.net.Inet4Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import java.util.HashSet; -import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; +import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; +import org.opendaylight.yangtools.yang.common.QName; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.zeromq.ZMQ; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; /** * ZeroMq based implementation of RpcRouter. */ public class ServerImpl implements RemoteRpcServer { - private Logger _logger = LoggerFactory.getLogger(ServerImpl.class); + private final Logger _logger = LoggerFactory.getLogger(ServerImpl.class); private ExecutorService serverPool; protected ServerRequestHandler handler; @@ -63,7 +48,7 @@ public class ServerImpl implements RemoteRpcServer { private volatile State status = State.STOPPED; private String serverAddress; - private int port; + private final int port; public static enum State { STARTING, STARTED, STOPPED; @@ -167,7 +152,7 @@ public class ServerImpl implements RemoteRpcServer { */ private void closeZmqContext() { ExecutorService exec = Executors.newSingleThreadExecutor(); - FutureTask zmqTermination = new FutureTask(new Runnable() { + FutureTask zmqTermination = new FutureTask(new Runnable() { @Override public void run() { @@ -249,7 +234,7 @@ public class ServerImpl implements RemoteRpcServer { * @return */ private String findIpAddress() { - Enumeration e = null; + Enumeration e = null; try { e = NetworkInterface.getNetworkInterfaces(); } catch (SocketException e1) { @@ -260,7 +245,7 @@ public class ServerImpl implements RemoteRpcServer { NetworkInterface n = (NetworkInterface) e.nextElement(); - Enumeration ee = n.getInetAddresses(); + Enumeration ee = n.getInetAddresses(); while (ee.hasMoreElements()) { InetAddress i = (InetAddress) ee.nextElement(); _logger.debug("Trying address {}", i); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandler.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandler.java index 2041f03afb..a25387d297 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandler.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandler.java @@ -8,38 +8,39 @@ package org.opendaylight.controller.sal.connector.remoterpc; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + import org.opendaylight.controller.sal.connector.api.RpcRouter; import org.opendaylight.controller.sal.connector.remoterpc.dto.Message; -import org.opendaylight.controller.sal.connector.remoterpc.dto.RouteIdentifierImpl; import org.opendaylight.controller.sal.connector.remoterpc.util.XmlUtils; import org.opendaylight.controller.sal.core.api.Broker; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.zeromq.ZMQ; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.Collection; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicInteger; - /** * */ public class ServerRequestHandler implements AutoCloseable{ - private Logger _logger = LoggerFactory.getLogger(ServerRequestHandler.class); + private final Logger _logger = LoggerFactory.getLogger(ServerRequestHandler.class); private final String DEFAULT_NAME = "remote-rpc-worker"; - private String dealerAddress; - private String serverAddress; - private int workerCount; - private ZMQ.Context context; - private Broker.ProviderSession broker; + private final String dealerAddress; + private final String serverAddress; + private final int workerCount; + private final ZMQ.Context context; + private final Broker.ProviderSession broker; private RequestHandlerThreadPool workerPool; private final AtomicInteger threadId = new AtomicInteger(); @@ -87,7 +88,7 @@ public class ServerRequestHandler implements AutoCloseable{ * Worker to handles RPC request */ private class Worker implements Runnable { - private String name; + private final String name; public Worker(int id){ this.name = DEFAULT_NAME + "-" + id; @@ -187,7 +188,7 @@ public class ServerRequestHandler implements AutoCloseable{ } class MessageHandler{ - private ZMQ.Socket socket; + private final ZMQ.Socket socket; private Message message; //parsed message received on zmq server port private boolean messageForBroker = false; //if the message is valid and not a "ping" message @@ -236,7 +237,7 @@ public class ServerRequestHandler implements AutoCloseable{ CompositeNode payload = (result != null) ? result.getResult() : null; String recipient = null; - RpcRouter.RouteIdentifier routeId = null; + RpcRouter.RouteIdentifier routeId = null; if (message != null) { recipient = message.getSender(); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/dto/Message.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/dto/Message.java index 21d02be7d7..cbcfe3e2a9 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/dto/Message.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/main/java/org/opendaylight/controller/sal/connector/remoterpc/dto/Message.java @@ -41,7 +41,7 @@ public class Message implements Serializable { private MessageType type; private String sender; private String recipient; - private RpcRouter.RouteIdentifier route; + private RpcRouter.RouteIdentifier route; private Object payload; public MessageType getType() { @@ -60,11 +60,11 @@ public class Message implements Serializable { this.sender = sender; } - public RpcRouter.RouteIdentifier getRoute() { + public RpcRouter.RouteIdentifier getRoute() { return route; } - public void setRoute(RpcRouter.RouteIdentifier route) { + public void setRoute(RpcRouter.RouteIdentifier route) { this.route = route; } @@ -123,7 +123,7 @@ public class Message implements Serializable { return o.readObject(); } - public static class Response extends Message implements RpcRouter.RpcReply { + public static class Response extends Message implements RpcRouter.RpcReply { private static final long serialVersionUID = 1L; private ResponseCode code; // response code @@ -173,7 +173,7 @@ public class Message implements Serializable { return this; } - public MessageBuilder route(RpcRouter.RouteIdentifier route){ + public MessageBuilder route(RpcRouter.RouteIdentifier route){ message.setRoute(route); return this; } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImplTest.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImplTest.java index 0fa12e351c..f8d14ce62e 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImplTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientImplTest.java @@ -40,8 +40,8 @@ public class ClientImplTest { //mock routing table routingTableProvider = mock(RoutingTableProvider.class); - RoutingTable mockRoutingTable = new MockRoutingTable(); - Optional> optionalRoutingTable = Optional.fromNullable(mockRoutingTable); + RoutingTable, String> mockRoutingTable = new MockRoutingTable(); + Optional, String>> optionalRoutingTable = Optional.fromNullable(mockRoutingTable); when(routingTableProvider.getRoutingTable()).thenReturn(optionalRoutingTable); //mock ClientRequestHandler diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientRequestHandlerTest.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientRequestHandlerTest.java index 1edd004d37..09188683cd 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientRequestHandlerTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ClientRequestHandlerTest.java @@ -99,7 +99,7 @@ public class ClientRequestHandlerTest { private Message handleMessageWithTimeout(final Message request) { Message response = null; - FutureTask task = new FutureTask(new Callable() { + FutureTask task = new FutureTask(new Callable() { @Override public Message call() { diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/MockRoutingTable.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/MockRoutingTable.java index 0fe0155bb6..179051e4d4 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/MockRoutingTable.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/MockRoutingTable.java @@ -7,16 +7,13 @@ */ package org.opendaylight.controller.sal.connector.remoterpc; -import org.opendaylight.controller.sal.connector.remoterpc.api.RouteChangeListener; +import java.util.HashSet; +import java.util.Set; + import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable; import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTableException; import org.opendaylight.controller.sal.connector.remoterpc.api.SystemException; -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - /** * Mock implementation of routing table */ @@ -59,7 +56,7 @@ public class MockRoutingTable implements RoutingTable { } @Override - public Set getRoutes(Object o) { + public Set getRoutes(Object o) { Set routes = new HashSet(); routes.add("localhost:5554"); return routes; diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImplTest.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImplTest.java index 886ff426c7..7ffdf17ce7 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImplTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerImplTest.java @@ -8,28 +8,34 @@ package org.opendaylight.controller.sal.connector.remoterpc; -import com.google.common.base.Optional; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadPoolExecutor; + import junit.framework.Assert; -import org.junit.*; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import org.opendaylight.controller.sal.connector.api.RpcRouter; import org.opendaylight.controller.sal.connector.remoterpc.api.RoutingTable; import org.opendaylight.controller.sal.connector.remoterpc.utils.MessagingUtil; import org.opendaylight.controller.sal.core.api.Broker; import org.opendaylight.controller.sal.core.api.RpcRegistrationListener; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.zeromq.ZMQ; + import zmq.Ctx; import zmq.SocketBase; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.ThreadPoolExecutor; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import com.google.common.base.Optional; public class ServerImplTest { @@ -68,12 +74,12 @@ public class ServerImplTest { server = new ServerImpl(port); server.setBrokerSession(brokerSession); - RoutingTable mockRoutingTable = new MockRoutingTable(); - Optional> optionalRoutingTable = Optional.fromNullable(mockRoutingTable); + RoutingTable, String> mockRoutingTable = new MockRoutingTable(); + Optional, String>> optionalRoutingTable = Optional.fromNullable(mockRoutingTable); when(routingTableProvider.getRoutingTable()).thenReturn(optionalRoutingTable); when(brokerSession.addRpcRegistrationListener(listener)).thenReturn(null); - when(brokerSession.getSupportedRpcs()).thenReturn(Collections.EMPTY_SET); + when(brokerSession.getSupportedRpcs()).thenReturn(Collections.emptySet()); when(brokerSession.rpc(null, mock(CompositeNode.class))).thenReturn(null); server.start(); Thread.sleep(5000);//wait for server to start @@ -178,7 +184,7 @@ public class ServerImplTest { Thread[] threads = new Thread[Thread.activeCount()]; Thread.enumerate(threads); - List foundThreads = new ArrayList(); + List foundThreads = new ArrayList(); for (Thread t : threads) { if (t.getName().startsWith(name)) foundThreads.add(t); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandlerTest.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandlerTest.java index 6e39867e53..e5fbc761b4 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandlerTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/ServerRequestHandlerTest.java @@ -7,7 +7,15 @@ package org.opendaylight.controller.sal.connector.remoterpc; +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import junit.framework.Assert; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -15,22 +23,15 @@ import org.opendaylight.controller.sal.connector.remoterpc.utils.MessagingUtil; import org.opendaylight.controller.sal.core.api.Broker; import org.zeromq.ZMQ; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -import static org.mockito.Mockito.mock; - public class ServerRequestHandlerTest { ServerRequestHandler handler; ZMQ.Context context; ExecutorService executorService = Executors.newCachedThreadPool(); - private int workerCount = 2; - private String mockDealerAddress = "inproc://rpc-request-handler"; - private String mockServerIp = "localhost"; - private int mockServerPort = 5554; + private final int workerCount = 2; + private final String mockDealerAddress = "inproc://rpc-request-handler"; + private final String mockServerIp = "localhost"; + private final int mockServerPort = 5554; @Before public void setUp() throws Exception { @@ -98,7 +99,7 @@ public class ServerRequestHandlerTest { Thread[] threads = new Thread[Thread.activeCount()]; Thread.enumerate(threads); - List foundThreads = new ArrayList(); + List foundThreads = new ArrayList(); for (Thread t : threads) { if (t.getName().startsWith(name)) foundThreads.add(t); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/MessagingUtil.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/MessagingUtil.java index a68ee574f3..883aa52f3f 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/MessagingUtil.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/MessagingUtil.java @@ -7,12 +7,6 @@ package org.opendaylight.controller.sal.connector.remoterpc.utils; -import junit.framework.Assert; -import org.opendaylight.controller.sal.connector.remoterpc.dto.Message; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.zeromq.ZMQ; - import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; @@ -21,6 +15,13 @@ import java.util.concurrent.Executors; import java.util.concurrent.FutureTask; import java.util.concurrent.TimeUnit; +import junit.framework.Assert; + +import org.opendaylight.controller.sal.connector.remoterpc.dto.Message; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.zeromq.ZMQ; + public class MessagingUtil { private static final Logger _logger = LoggerFactory.getLogger(MessagingUtil.class); @@ -160,7 +161,7 @@ public class MessagingUtil { if (context == null) return; ExecutorService exec = Executors.newSingleThreadExecutor(); - FutureTask zmqTermination = new FutureTask(new Runnable() { + FutureTask zmqTermination = new FutureTask(new Runnable() { @Override public void run() { diff --git a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/RemoteServerTestClient.java b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/RemoteServerTestClient.java index a71ab865aa..7a4f4a5974 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/RemoteServerTestClient.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/implementation/src/test/java/org/opendaylight/controller/sal/connector/remoterpc/utils/RemoteServerTestClient.java @@ -1,14 +1,14 @@ package org.opendaylight.controller.sal.connector.remoterpc.utils; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import org.opendaylight.controller.sal.connector.api.RpcRouter; import org.opendaylight.controller.sal.connector.remoterpc.dto.Message; import org.opendaylight.controller.sal.connector.remoterpc.util.XmlUtils; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.zeromq.ZMQ; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - public class RemoteServerTestClient { @@ -39,7 +39,7 @@ public class RemoteServerTestClient { } public Message createAddFlowMessage(String serverAddress ){ - RpcRouter.RouteIdentifier routeIdentifier = getAddFlowRpcIdentifier(); + RpcRouter.RouteIdentifier routeIdentifier = getAddFlowRpcIdentifier(); Message addFlow = new Message.MessageBuilder() .type(Message.MessageType.REQUEST) @@ -52,7 +52,7 @@ public class RemoteServerTestClient { return addFlow; } - private RpcRouter.RouteIdentifier getAddFlowRpcIdentifier(){ + private RpcRouter.RouteIdentifier getAddFlowRpcIdentifier(){ throw new UnsupportedOperationException(); }