Merge "Bug 1029: Remove dead code: samples/clustersession"
authorTony Tkacik <ttkacik@cisco.com>
Wed, 12 Nov 2014 16:12:45 +0000 (16:12 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Wed, 12 Nov 2014 16:12:45 +0000 (16:12 +0000)
1188 files changed:
features/mdsal/src/main/resources/features.xml
features/pom.xml
features/restconf/src/main/resources/features.xml
opendaylight/adsal/appauth/pom.xml [moved from opendaylight/appauth/pom.xml with 97% similarity]
opendaylight/adsal/appauth/src/main/java/org/opendaylight/controller/appauth/Application.java [moved from opendaylight/appauth/src/main/java/org/opendaylight/controller/appauth/Application.java with 100% similarity]
opendaylight/adsal/appauth/src/main/java/org/opendaylight/controller/appauth/authorization/Authorization.java [moved from opendaylight/appauth/src/main/java/org/opendaylight/controller/appauth/authorization/Authorization.java with 100% similarity]
opendaylight/adsal/arphandler/pom.xml [moved from opendaylight/arphandler/pom.xml with 98% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPCacheEvent.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPCacheEvent.java with 100% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPEvent.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPEvent.java with 100% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPReply.java with 100% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPRequest.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/ARPRequest.java with 100% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/Activator.java with 100% similarity]
opendaylight/adsal/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java [moved from opendaylight/arphandler/src/main/java/org/opendaylight/controller/arphandler/internal/ArpHandler.java with 100% similarity]
opendaylight/adsal/arphandler/src/test/java/org/opendaylight/controller/arphandler/internal/ArphandlerTest.java [moved from opendaylight/arphandler/src/test/java/org/opendaylight/controller/arphandler/internal/ArphandlerTest.java with 100% similarity]
opendaylight/adsal/clustering/integrationtest/pom.xml [moved from opendaylight/clustering/integrationtest/pom.xml with 93% similarity]
opendaylight/adsal/clustering/integrationtest/src/test/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusteringServicesIT.java [moved from opendaylight/clustering/integrationtest/src/test/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusteringServicesIT.java with 100% similarity]
opendaylight/adsal/clustering/integrationtest/src/test/resources/logback.xml [moved from opendaylight/clustering/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/clustering/services/pom.xml [moved from opendaylight/clustering/services/pom.xml with 96% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheConfigException.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheConfigException.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheExistException.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheExistException.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheListenerAddException.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/CacheListenerAddException.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ICacheUpdateAware.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ICacheUpdateAware.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterContainerServices.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterContainerServices.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterGlobalServices.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterGlobalServices.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServices.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServices.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServicesCommon.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IClusterServicesCommon.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ICoordinatorChangeAware.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ICoordinatorChangeAware.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IGetUpdates.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IGetUpdates.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IListenRoleChange.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/IListenRoleChange.java with 100% similarity]
opendaylight/adsal/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ListenRoleChangeAddException.java [moved from opendaylight/clustering/services/src/main/java/org/opendaylight/controller/clustering/services/ListenRoleChangeAddException.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/pom.xml [moved from opendaylight/clustering/services_implementation/pom.xml with 98% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/Activator.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/Activator.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/CacheListenerContainer.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/CacheListenerContainer.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClassResolver.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClassResolver.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterContainerManager.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterContainerManager.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterGlobalManager.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterGlobalManager.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerCLI.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerCLI.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerCommon.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerCommon.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/GetUpdatesContainer.java [moved from opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/GetUpdatesContainer.java with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/resources/config/infinispan-config.xml [moved from opendaylight/clustering/services_implementation/src/main/resources/config/infinispan-config.xml with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/main/resources/config/jgroups.xml [moved from opendaylight/clustering/services_implementation/src/main/resources/config/jgroups.xml with 100% similarity]
opendaylight/adsal/clustering/services_implementation/src/test/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerTest.java [moved from opendaylight/clustering/services_implementation/src/test/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManagerTest.java with 100% similarity]
opendaylight/adsal/clustering/stub/pom.xml [moved from opendaylight/clustering/stub/pom.xml with 96% similarity]
opendaylight/adsal/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/Activator.java [moved from opendaylight/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/Activator.java with 100% similarity]
opendaylight/adsal/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterContainerManager.java [moved from opendaylight/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterContainerManager.java with 100% similarity]
opendaylight/adsal/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterGlobalManager.java [moved from opendaylight/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterGlobalManager.java with 100% similarity]
opendaylight/adsal/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterManagerCommon.java [moved from opendaylight/clustering/stub/src/main/java/org/opendaylight/controller/clustering/stub/internal/ClusterManagerCommon.java with 100% similarity]
opendaylight/adsal/clustering/stub/src/test/java/org/opendaylight/controller/clustering/stub/internal/TestClusteringStub.java [moved from opendaylight/clustering/stub/src/test/java/org/opendaylight/controller/clustering/stub/internal/TestClusteringStub.java with 100% similarity]
opendaylight/adsal/clustering/test/pom.xml [moved from opendaylight/clustering/test/pom.xml with 98% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/Activator.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/Activator.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexClass.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexClass.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexClass1.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexClass1.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexContainer.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/ComplexContainer.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/IComplex.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/IComplex.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/LoggingListener.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/LoggingListener.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/SimpleClient.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/SimpleClient.java with 100% similarity]
opendaylight/adsal/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/StringContainer.java [moved from opendaylight/clustering/test/src/main/java/org/opendaylight/controller/clustering/test/internal/StringContainer.java with 100% similarity]
opendaylight/adsal/clustering/test/src/test/java/org/opendaylight/controller/clustering/test/internal/TestClusteringTest.java [moved from opendaylight/clustering/test/src/test/java/org/opendaylight/controller/clustering/test/internal/TestClusteringTest.java with 100% similarity]
opendaylight/adsal/commons/httpclient/pom.xml [moved from opendaylight/commons/httpclient/pom.xml with 96% similarity]
opendaylight/adsal/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPClient.java [moved from opendaylight/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPClient.java with 100% similarity]
opendaylight/adsal/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPRequest.java [moved from opendaylight/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPRequest.java with 100% similarity]
opendaylight/adsal/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPResponse.java [moved from opendaylight/commons/httpclient/src/main/java/org/opendaylight/controller/commons/httpclient/HTTPResponse.java with 100% similarity]
opendaylight/adsal/commons/integrationtest/pom.xml [moved from opendaylight/commons/integrationtest/pom.xml with 96% similarity]
opendaylight/adsal/configuration/api/pom.xml [moved from opendaylight/configuration/api/pom.xml with 96% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/ConfigurationEvent.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/ConfigurationEvent.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/ConfigurationObject.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/ConfigurationObject.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationAware.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationAware.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationAwareCommon.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationAwareCommon.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationContainerAware.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationContainerAware.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationContainerService.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationContainerService.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationService.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationService.java with 100% similarity]
opendaylight/adsal/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationServiceCommon.java [moved from opendaylight/configuration/api/src/main/java/org/opendaylight/controller/configuration/IConfigurationServiceCommon.java with 100% similarity]
opendaylight/adsal/configuration/implementation/pom.xml [moved from opendaylight/configuration/implementation/pom.xml with 97% similarity]
opendaylight/adsal/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/Activator.java [moved from opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/Activator.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java [moved from opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ConfigurationService.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java [moved from opendaylight/configuration/implementation/src/main/java/org/opendaylight/controller/configuration/internal/ContainerConfigurationService.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationAwareTest.java [moved from opendaylight/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationAwareTest.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationContainerAwareTest.java [moved from opendaylight/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationContainerAwareTest.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationContainerImplTest.java [moved from opendaylight/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationContainerImplTest.java with 100% similarity]
opendaylight/adsal/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationImplTest.java [moved from opendaylight/configuration/implementation/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationImplTest.java with 100% similarity]
opendaylight/adsal/configuration/integrationtest/.gitignore [moved from opendaylight/configuration/integrationtest/.gitignore with 100% similarity]
opendaylight/adsal/configuration/integrationtest/pom.xml [moved from opendaylight/configuration/integrationtest/pom.xml with 100% similarity]
opendaylight/adsal/configuration/integrationtest/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationIT.java [moved from opendaylight/configuration/integrationtest/src/test/java/org/opendaylight/controller/configuration/internal/ConfigurationIT.java with 100% similarity]
opendaylight/adsal/configuration/integrationtest/src/test/resources/logback.xml [moved from opendaylight/configuration/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/connectionmanager/api/pom.xml [moved from opendaylight/connectionmanager/api/pom.xml with 96% similarity]
opendaylight/adsal/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/ConnectionMgmtScheme.java [moved from opendaylight/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/ConnectionMgmtScheme.java with 100% similarity]
opendaylight/adsal/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/IConnectionManager.java [moved from opendaylight/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/IConnectionManager.java with 100% similarity]
opendaylight/adsal/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/NodeAccessPermission.java [moved from opendaylight/connectionmanager/api/src/main/java/org/opendaylight/controller/connectionmanager/NodeAccessPermission.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/pom.xml [moved from opendaylight/connectionmanager/implementation/pom.xml with 97% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/Activator.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionManager.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionMgmtEvent.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionMgmtEvent.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionMgmtEventType.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/internal/ConnectionMgmtEventType.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/AbstractScheme.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/AbstractScheme.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/AnyControllerScheme.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/AnyControllerScheme.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/ControllerConfig.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/ControllerConfig.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/LoadBalancedScheme.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/LoadBalancedScheme.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/RoundRobinScheme.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/RoundRobinScheme.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SchemeFactory.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SchemeFactory.java with 100% similarity]
opendaylight/adsal/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java [moved from opendaylight/connectionmanager/implementation/src/main/java/org/opendaylight/controller/connectionmanager/scheme/SingleControllerScheme.java with 100% similarity]
opendaylight/adsal/containermanager/api/pom.xml [moved from opendaylight/containermanager/api/pom.xml with 97% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerChangeEvent.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerChangeEvent.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerConfig.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerConfig.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerData.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerData.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerFlowChangeEvent.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerFlowChangeEvent.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerFlowConfig.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/ContainerFlowConfig.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerAuthorization.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerAuthorization.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerManager.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerManager.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerManagerShell.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/IContainerManagerShell.java with 100% similarity]
opendaylight/adsal/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/NodeConnectorsChangeEvent.java [moved from opendaylight/containermanager/api/src/main/java/org/opendaylight/controller/containermanager/NodeConnectorsChangeEvent.java with 100% similarity]
opendaylight/adsal/containermanager/implementation/pom.xml [moved from opendaylight/containermanager/implementation/pom.xml with 98% similarity]
opendaylight/adsal/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/Activator.java [moved from opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java [moved from opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java with 100% similarity]
opendaylight/adsal/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java [moved from opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java with 100% similarity]
opendaylight/adsal/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/IContainerInternal.java [moved from opendaylight/containermanager/implementation/src/main/java/org/opendaylight/controller/containermanager/internal/IContainerInternal.java with 100% similarity]
opendaylight/adsal/containermanager/it.implementation/pom.xml [moved from opendaylight/containermanager/it.implementation/pom.xml with 97% similarity]
opendaylight/adsal/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/Activator.java [moved from opendaylight/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java [moved from opendaylight/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerImpl.java with 100% similarity]
opendaylight/adsal/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java [moved from opendaylight/containermanager/it.implementation/src/main/java/org/opendaylight/controller/containermanager/internal/ContainerManager.java with 100% similarity]
opendaylight/adsal/containermanager/it.implementation/src/test/java/org/opendaylight/controller/containermanager/internal/ContainerImplTest.java [moved from opendaylight/containermanager/it.implementation/src/test/java/org/opendaylight/controller/containermanager/internal/ContainerImplTest.java with 100% similarity]
opendaylight/adsal/containermanager/it.implementation/src/test/java/org/opendaylight/controller/containermanager/internal/ContainerManagerTest.java [moved from opendaylight/containermanager/it.implementation/src/test/java/org/opendaylight/controller/containermanager/internal/ContainerManagerTest.java with 100% similarity]
opendaylight/adsal/containermanager/shell/pom.xml [moved from opendaylight/containermanager/shell/pom.xml with 96% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainer.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainer.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainerEntry.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainerEntry.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainerFlow.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/AddContainerFlow.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetAuthorizedGroups.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetAuthorizedGroups.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetAuthorizedResources.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetAuthorizedResources.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetResourcesForGroup.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetResourcesForGroup.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetRoles.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetRoles.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetUserLevel.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetUserLevel.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetUserResources.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/ContainermgrGetUserResources.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/CreateContainer.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/CreateContainer.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Pfc.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Pfc.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psc.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psc.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psd.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psd.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psm.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psm.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psp.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/Psp.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainer.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainer.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainerEntry.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainerEntry.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainerFlow.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/RemoveContainerFlow.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/SaveConfig.java [moved from opendaylight/containermanager/shell/src/main/java/org/opendaylight/controller/containermanager/shell/SaveConfig.java with 100% similarity]
opendaylight/adsal/containermanager/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml [moved from opendaylight/containermanager/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml with 100% similarity]
opendaylight/adsal/containermanager/shell/src/test/java/org/opendaylight/controller/containermanager/shell/ContainerManagerShellTest.java [moved from opendaylight/containermanager/shell/src/test/java/org/opendaylight/controller/containermanager/shell/ContainerManagerShellTest.java with 100% similarity]
opendaylight/adsal/dummy-console/README [moved from opendaylight/dummy-console/README with 100% similarity]
opendaylight/adsal/dummy-console/pom.xml [moved from opendaylight/dummy-console/pom.xml with 95% similarity]
opendaylight/adsal/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandInterpreter.java [moved from opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandInterpreter.java with 100% similarity]
opendaylight/adsal/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandProvider.java [moved from opendaylight/dummy-console/src/main/java/org/eclipse/osgi/framework/console/CommandProvider.java with 100% similarity]
opendaylight/adsal/features/adsal-compatibility/pom.xml [moved from features/adsal-compatibility/pom.xml with 96% similarity]
opendaylight/adsal/features/adsal-compatibility/src/main/resources/features.xml [moved from features/adsal-compatibility/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/features/adsal/pom.xml [moved from features/adsal/pom.xml with 98% similarity]
opendaylight/adsal/features/adsal/src/main/resources/features.xml [moved from features/adsal/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/features/base/pom.xml [moved from features/base/pom.xml with 99% similarity]
opendaylight/adsal/features/base/src/main/resources/features.xml [moved from features/base/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/features/controller/pom.xml [moved from features/controller/pom.xml with 95% similarity]
opendaylight/adsal/features/controller/src/main/resources/features.xml [moved from features/controller/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/features/extras/pom.xml [moved from features/extras/pom.xml with 97% similarity]
opendaylight/adsal/features/extras/src/main/resources/features.xml [moved from features/extras/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/features/nsf/pom.xml [moved from features/nsf/pom.xml with 99% similarity]
opendaylight/adsal/features/nsf/src/main/resources/features.xml [moved from features/nsf/src/main/resources/features.xml with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/pom.xml [moved from opendaylight/forwarding/staticrouting/pom.xml with 97% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/IForwardingStaticRouting.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/IForwardingStaticRouting.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/IStaticRoutingAware.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/IStaticRoutingAware.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/StaticRoute.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/StaticRoute.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteConfig.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteConfig.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/internal/Activator.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/internal/Activator.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/internal/StaticRoutingImplementation.java [moved from opendaylight/forwarding/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/internal/StaticRoutingImplementation.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteConfigTest.java [moved from opendaylight/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteConfigTest.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteTest.java [moved from opendaylight/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/StaticRouteTest.java with 100% similarity]
opendaylight/adsal/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/internal/StaticRoutingImplementationTest.java [moved from opendaylight/forwarding/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/internal/StaticRoutingImplementationTest.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/pom.xml [moved from opendaylight/forwardingrulesmanager/api/pom.xml with 97% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowConfig.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowEntry.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowEntry.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowEntryInstall.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/FlowEntryInstall.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/IForwardingRulesManager.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/IForwardingRulesManager.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/IForwardingRulesManagerAware.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/IForwardingRulesManagerAware.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroup.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroup.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupChangeListener.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupChangeListener.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupConfig.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupConfig.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupProvider.java [moved from opendaylight/forwardingrulesmanager/api/src/main/java/org/opendaylight/controller/forwardingrulesmanager/PortGroupProvider.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/api/src/test/java/org/opendaylight/controller/forwardingrulesmanager/frmTest.java [moved from opendaylight/forwardingrulesmanager/api/src/test/java/org/opendaylight/controller/forwardingrulesmanager/frmTest.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/pom.xml [moved from opendaylight/forwardingrulesmanager/implementation/pom.xml with 98% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/implementation/data/FlowEntryDistributionOrder.java [moved from opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/implementation/data/FlowEntryDistributionOrder.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/Activator.java [moved from opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/FlowEntryDistributionOrderFutureTask.java [moved from opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/FlowEntryDistributionOrderFutureTask.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManager.java [moved from opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManager.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManagerCLI.java [moved from opendaylight/forwardingrulesmanager/implementation/src/main/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManagerCLI.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/integrationtest/pom.xml [moved from opendaylight/forwardingrulesmanager/integrationtest/pom.xml with 95% similarity]
opendaylight/adsal/forwardingrulesmanager/integrationtest/src/test/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManagerIT.java [moved from opendaylight/forwardingrulesmanager/integrationtest/src/test/java/org/opendaylight/controller/forwardingrulesmanager/internal/ForwardingRulesManagerIT.java with 100% similarity]
opendaylight/adsal/forwardingrulesmanager/integrationtest/src/test/resources/logback.xml [moved from opendaylight/forwardingrulesmanager/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/hosttracker/api/pom.xml [moved from opendaylight/hosttracker/api/pom.xml with 97% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/HostIdFactory.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/HostIdFactory.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IHostId.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IHostId.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IHostTrackerShell.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IHostTrackerShell.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPHostId.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IPMacHostId.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java [moved from opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java with 100% similarity]
opendaylight/adsal/hosttracker/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java [moved from opendaylight/hosttracker/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java with 100% similarity]
opendaylight/adsal/hosttracker/implementation/pom.xml [moved from opendaylight/hosttracker/implementation/pom.xml with 98% similarity]
opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java [moved from opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java with 100% similarity]
opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java [moved from opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java with 100% similarity]
opendaylight/adsal/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java [moved from opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java with 100% similarity]
opendaylight/adsal/hosttracker/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerTest.java [moved from opendaylight/hosttracker/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerTest.java with 100% similarity]
opendaylight/adsal/hosttracker/integrationtest/pom.xml [moved from opendaylight/hosttracker/integrationtest/pom.xml with 95% similarity]
opendaylight/adsal/hosttracker/integrationtest/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerIT.java [moved from opendaylight/hosttracker/integrationtest/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerIT.java with 100% similarity]
opendaylight/adsal/hosttracker/integrationtest/src/test/resources/logback.xml [moved from opendaylight/hosttracker/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/hosttracker/shell/pom.xml [moved from opendaylight/hosttracker/shell/pom.xml with 96% similarity]
opendaylight/adsal/hosttracker/shell/src/main/java/org/opendaylight/controller/hosttracker/shell/DumpFailedARPReqList.java [moved from opendaylight/hosttracker/shell/src/main/java/org/opendaylight/controller/hosttracker/shell/DumpFailedARPReqList.java with 100% similarity]
opendaylight/adsal/hosttracker/shell/src/main/java/org/opendaylight/controller/hosttracker/shell/DumpPendingARPReqList.java [moved from opendaylight/hosttracker/shell/src/main/java/org/opendaylight/controller/hosttracker/shell/DumpPendingARPReqList.java with 100% similarity]
opendaylight/adsal/hosttracker/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml [moved from opendaylight/hosttracker/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml with 100% similarity]
opendaylight/adsal/hosttracker/shell/src/test/java/org/opendaylight/controller/hosttracker/shell/HostTrackerShellTest.java [moved from opendaylight/hosttracker/shell/src/test/java/org/opendaylight/controller/hosttracker/shell/HostTrackerShellTest.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/pom.xml [moved from opendaylight/hosttracker_new/api/pom.xml with 97% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/Entity.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/Entity.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDevice.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDevice.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceListener.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceListener.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceService.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceService.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClass.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClass.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassListener.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassListener.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassifierService.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassifierService.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/SwitchPort.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/SwitchPort.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java [moved from opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java with 100% similarity]
opendaylight/adsal/hosttracker_new/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java [moved from opendaylight/hosttracker_new/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/pom.xml [moved from opendaylight/hosttracker_new/implementation/pom.xml with 98% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/AttachmentPoint.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/AttachmentPoint.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DefaultEntityClassifier.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DefaultEntityClassifier.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Device.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Device.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndex.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndex.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndexInterator.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndexInterator.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIterator.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIterator.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImpl.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImpl.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceMultiIndex.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceMultiIndex.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndex.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndex.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/IndexedEntity.java [moved from opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/IndexedEntity.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImplTest.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImplTest.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndexTest.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndexTest.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDevice.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDevice.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDeviceManager.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDeviceManager.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifier.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifier.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifierMac.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifierMac.java with 100% similarity]
opendaylight/adsal/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockFlexEntityClassifier.java [moved from opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockFlexEntityClassifier.java with 100% similarity]
opendaylight/adsal/karaf-tomcat-security/pom.xml [moved from opendaylight/karaf-tomcat-security/pom.xml with 96% similarity]
opendaylight/adsal/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java [moved from opendaylight/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java with 100% similarity]
opendaylight/adsal/logging/bridge/pom.xml [moved from opendaylight/logging/bridge/pom.xml with 97% similarity]
opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java [moved from opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/Activator.java with 100% similarity]
opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/LogListenerImpl.java [moved from opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/LogListenerImpl.java with 100% similarity]
opendaylight/adsal/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/UncaughtExceptionPolicy.java [moved from opendaylight/logging/bridge/src/main/java/org/opendaylight/controller/logging/bridge/internal/UncaughtExceptionPolicy.java with 100% similarity]
opendaylight/adsal/logging/bridge/src/test/java/org/opendaylight/controller/logging/bridge/internal/LogListenerImplTest.java [moved from opendaylight/logging/bridge/src/test/java/org/opendaylight/controller/logging/bridge/internal/LogListenerImplTest.java with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/pom.xml [moved from opendaylight/northbound/archetype-app-northbound/pom.xml with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/main/resources/META-INF/maven/archetype-metadata.xml [moved from opendaylight/northbound/archetype-app-northbound/src/main/resources/META-INF/maven/archetype-metadata.xml with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/main/resources/archetype-resources/pom.xml [moved from opendaylight/northbound/archetype-app-northbound/src/main/resources/archetype-resources/pom.xml with 97% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/main/resources/archetype-resources/src/main/java/Northbound.java [moved from opendaylight/northbound/archetype-app-northbound/src/main/resources/archetype-resources/src/main/java/Northbound.java with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/main/resources/archetype-resources/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/archetype-app-northbound/src/main/resources/archetype-resources/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/test/resources/projects/basic/archetype.properties [moved from opendaylight/northbound/archetype-app-northbound/src/test/resources/projects/basic/archetype.properties with 100% similarity]
opendaylight/adsal/northbound/archetype-app-northbound/src/test/resources/projects/basic/goal.txt [moved from opendaylight/northbound/archetype-app-northbound/src/test/resources/projects/basic/goal.txt with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/api/pom.xml [moved from opendaylight/northbound/bundlescanner/api/pom.xml with 96% similarity]
opendaylight/adsal/northbound/bundlescanner/api/src/main/java/org/opendaylight/controller/northbound/bundlescanner/IBundleScanService.java [moved from opendaylight/northbound/bundlescanner/api/src/main/java/org/opendaylight/controller/northbound/bundlescanner/IBundleScanService.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/pom.xml [moved from opendaylight/northbound/bundlescanner/implementation/pom.xml with 97% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java [moved from opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/Activator.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java [moved from opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleInfo.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScanServiceImpl.java [moved from opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScanServiceImpl.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScanner.java [moved from opendaylight/northbound/bundlescanner/implementation/src/main/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScanner.java with 98% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/Animal.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/Animal.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/BasePerson.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/BasePerson.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/Mammal.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/Mammal.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/NoAnnotation.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/NoAnnotation.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/NonRelevantAnnotation.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/NonRelevantAnnotation.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_base/Person.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_base/Person.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_misc/Misc.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_misc/Misc.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_sub1/NoAnnotation.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_sub1/NoAnnotation.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_sub1/Zoo.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_sub1/Zoo.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/Agent.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/Agent.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/Customer.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/Customer.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/NoAnnotation.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/bundle_sub2/NoAnnotation.java with 100% similarity]
opendaylight/adsal/northbound/bundlescanner/implementation/src/test/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScannerTest.java [moved from opendaylight/northbound/bundlescanner/implementation/src/test/java/org/opendaylight/controller/northbound/bundlescanner/internal/BundleScannerTest.java with 98% similarity]
opendaylight/adsal/northbound/commons/pom.xml [moved from opendaylight/northbound/commons/pom.xml with 98% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/JacksonJsonProcessingExceptionMapper.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/JacksonJsonProcessingExceptionMapper.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/NorthboundApplication.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/NorthboundApplication.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/RestMessages.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/RestMessages.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/BadRequestException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/BadRequestException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/GenericExceptionMapper.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/GenericExceptionMapper.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/InternalServerErrorException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/InternalServerErrorException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/MethodNotAllowed.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/MethodNotAllowed.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/MethodNotAllowedException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/MethodNotAllowedException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotAcceptableException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotAcceptableException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotImplemented.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotImplemented.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotImplementedException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/NotImplementedException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceConflictException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceConflictException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceForbiddenException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceForbiddenException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceGoneException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceGoneException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceNotFoundException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ResourceNotFoundException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ServiceUnavailableException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/ServiceUnavailableException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/UnauthorizedException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/UnauthorizedException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/UnsupportedMediaTypeException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/UnsupportedMediaTypeException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/package-info.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/exception/package-info.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Accessor.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Accessor.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/CompareExpression.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/CompareExpression.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Expression.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Expression.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/ExpressionBuilder.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/ExpressionBuilder.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/IteratableTypeInfo.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/IteratableTypeInfo.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/LogicalExpression.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/LogicalExpression.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Query.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Query.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContext.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContext.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContextImpl.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContextImpl.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContextProvider.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryContextProvider.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryException.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryException.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryImpl.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/QueryImpl.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/TypeInfo.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/TypeInfo.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Visitor.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/Visitor.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/WrapperTypeInfo.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/query/WrapperTypeInfo.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/types/StringList.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/types/StringList.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/utils/NorthboundUtils.java [moved from opendaylight/northbound/commons/src/main/java/org/opendaylight/controller/northbound/commons/utils/NorthboundUtils.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/main/javacc/fiql.jj [moved from opendaylight/northbound/commons/src/main/javacc/fiql.jj with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/CommonsNorthboundTest.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/CommonsNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/exception/CommonsNorthboundExceptionTest.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/exception/CommonsNorthboundExceptionTest.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/BookBean.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/BookBean.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/ExpresssionTest.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/ExpresssionTest.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/Library.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/Library.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/PersonBean.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/PersonBean.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/QueryContextTest.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/QueryContextTest.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/ReviewBean.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/ReviewBean.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/XMLAccessorTypeTest.java [moved from opendaylight/northbound/commons/src/test/java/org/opendaylight/controller/northbound/commons/query/XMLAccessorTypeTest.java with 100% similarity]
opendaylight/adsal/northbound/commons/src/test/resources/logback.xml [moved from opendaylight/northbound/commons/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/northbound/connectionmanager/enunciate.xml [moved from opendaylight/northbound/connectionmanager/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/connectionmanager/pom.xml [moved from opendaylight/northbound/connectionmanager/pom.xml with 98% similarity]
opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java [moved from opendaylight/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/ConnectionManagerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/Nodes.java [moved from opendaylight/northbound/connectionmanager/src/main/java/org/opendaylight/controller/connectionmanager/northbound/Nodes.java with 100% similarity]
opendaylight/adsal/northbound/connectionmanager/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/connectionmanager/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/containermanager/enunciate.xml [moved from opendaylight/northbound/containermanager/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/containermanager/pom.xml [moved from opendaylight/northbound/containermanager/pom.xml with 98% similarity]
opendaylight/adsal/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerConfigs.java [moved from opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerConfigs.java with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java [moved from opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthboundRSApplication.java [moved from opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/ContainerManagerNorthboundRSApplication.java with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/FlowSpecConfigs.java [moved from opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/FlowSpecConfigs.java with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/StringList.java [moved from opendaylight/northbound/containermanager/src/main/java/org/opendaylight/controller/containermanager/northbound/StringList.java with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/containermanager/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/containermanager/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/containermanager/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/containermanager/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/containermanager/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/containermanager/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/controllermanager/enunciate.xml [moved from opendaylight/northbound/controllermanager/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/controllermanager/pom.xml [moved from opendaylight/northbound/controllermanager/pom.xml with 98% similarity]
opendaylight/adsal/northbound/controllermanager/src/main/java/org/opendaylight/controller/controllermanager/northbound/ControllerManagerNorthbound.java [moved from opendaylight/northbound/controllermanager/src/main/java/org/opendaylight/controller/controllermanager/northbound/ControllerManagerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/controllermanager/src/main/java/org/opendaylight/controller/controllermanager/northbound/ControllerProperties.java [moved from opendaylight/northbound/controllermanager/src/main/java/org/opendaylight/controller/controllermanager/northbound/ControllerProperties.java with 100% similarity]
opendaylight/adsal/northbound/controllermanager/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/controllermanager/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/controllermanager/src/test/java/org/opendaylight/controller/controllermanager/northbound/ControllerManagerNorthboundTest.java [moved from opendaylight/northbound/controllermanager/src/test/java/org/opendaylight/controller/controllermanager/northbound/ControllerManagerNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/enunciate.xml [moved from opendaylight/northbound/flowprogrammer/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/pom.xml [moved from opendaylight/northbound/flowprogrammer/pom.xml with 98% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/java/org/opendaylight/controller/flowprogrammer/northbound/FlowConfigs.java [moved from opendaylight/northbound/flowprogrammer/src/main/java/org/opendaylight/controller/flowprogrammer/northbound/FlowConfigs.java with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/java/org/opendaylight/controller/flowprogrammer/northbound/FlowProgrammerNorthbound.java [moved from opendaylight/northbound/flowprogrammer/src/main/java/org/opendaylight/controller/flowprogrammer/northbound/FlowProgrammerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/flowprogrammer/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/flowprogrammer/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/flowprogrammer/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/flowprogrammer/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/flowprogrammer/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/flowprogrammer/src/test/java/org/opendaylight/controller/flowprogrammer/northbound/FlowProgrammerNorthboundTest.java [moved from opendaylight/northbound/flowprogrammer/src/test/java/org/opendaylight/controller/flowprogrammer/northbound/FlowProgrammerNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/hosttracker/enunciate.xml [moved from opendaylight/northbound/hosttracker/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/hosttracker/pom.xml [moved from opendaylight/northbound/hosttracker/pom.xml with 98% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostConfig.java [moved from opendaylight/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostConfig.java with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java [moved from opendaylight/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/Hosts.java [moved from opendaylight/northbound/hosttracker/src/main/java/org/opendaylight/controller/hosttracker/northbound/Hosts.java with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/hosttracker/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/hosttracker/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/hosttracker/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/hosttracker/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/hosttracker/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/hosttracker/src/test/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthboundTest.java [moved from opendaylight/northbound/hosttracker/src/test/java/org/opendaylight/controller/hosttracker/northbound/HostTrackerNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/httpservice-bridge/pom.xml [moved from opendaylight/northbound/httpservice-bridge/pom.xml with 95% similarity]
opendaylight/adsal/northbound/httpservice-bridge/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/httpservice-bridge/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/integrationtest/pom.xml [moved from opendaylight/northbound/integrationtest/pom.xml with 100% similarity]
opendaylight/adsal/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java [moved from opendaylight/northbound/integrationtest/src/test/java/org/opendaylight/controller/northbound/integrationtest/NorthboundIT.java with 100% similarity]
opendaylight/adsal/northbound/integrationtest/src/test/resources/exam.properties [moved from opendaylight/northbound/integrationtest/src/test/resources/exam.properties with 100% similarity]
opendaylight/adsal/northbound/integrationtest/src/test/resources/logback.xml [moved from opendaylight/northbound/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/northbound/integrationtest/src/test/resources/tomcat-server.xml [moved from opendaylight/northbound/integrationtest/src/test/resources/tomcat-server.xml with 100% similarity]
opendaylight/adsal/northbound/java-client/enunciate.xml [moved from opendaylight/northbound/java-client/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/java-client/pom.xml [moved from opendaylight/northbound/java-client/pom.xml with 99% similarity]
opendaylight/adsal/northbound/jolokia/pom.xml [moved from opendaylight/northbound/jolokia/pom.xml with 95% similarity]
opendaylight/adsal/northbound/jolokia/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/jolokia/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/networkconfiguration/bridgedomain/enunciate.xml [moved from opendaylight/northbound/networkconfiguration/bridgedomain/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/networkconfiguration/bridgedomain/pom.xml [moved from opendaylight/northbound/networkconfiguration/bridgedomain/pom.xml with 98% similarity]
opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java [moved from opendaylight/northbound/networkconfiguration/bridgedomain/src/main/java/org/opendaylight/controller/networkconfig/bridgedomain/northbound/BridgeDomainNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/networkconfiguration/bridgedomain/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/networkconfiguration/bridgedomain/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/staticrouting/enunciate.xml [moved from opendaylight/northbound/staticrouting/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/staticrouting/pom.xml [moved from opendaylight/northbound/staticrouting/pom.xml with 98% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoute.java [moved from opendaylight/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoute.java with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutes.java [moved from opendaylight/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutes.java with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java [moved from opendaylight/northbound/staticrouting/src/main/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/staticrouting/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/staticrouting/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/staticrouting/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/staticrouting/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/staticrouting/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthboundTest.java [moved from opendaylight/northbound/staticrouting/src/test/java/org/opendaylight/controller/forwarding/staticrouting/northbound/StaticRoutingNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/statistics/enunciate.xml [moved from opendaylight/northbound/statistics/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/statistics/pom.xml [moved from opendaylight/northbound/statistics/pom.xml with 98% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllFlowStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllFlowStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllPortStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllPortStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllTableStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/AllTableStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/FlowStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/FlowStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/PortStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/PortStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/TableStatistics.java [moved from opendaylight/northbound/statistics/src/main/java/org/opendaylight/controller/statistics/northbound/TableStatistics.java with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/statistics/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/statistics/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/statistics/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/statistics/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/statistics/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/statistics/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/statistics/src/test/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthboundTest.java [moved from opendaylight/northbound/statistics/src/test/java/org/opendaylight/controller/statistics/northbound/StatisticsNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/subnets/enunciate.xml [moved from opendaylight/northbound/subnets/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/subnets/pom.xml [moved from opendaylight/northbound/subnets/pom.xml with 98% similarity]
opendaylight/adsal/northbound/subnets/src/main/java/org/opendaylight/controller/subnets/northbound/SubnetConfigs.java [moved from opendaylight/northbound/subnets/src/main/java/org/opendaylight/controller/subnets/northbound/SubnetConfigs.java with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/java/org/opendaylight/controller/subnets/northbound/SubnetsNorthbound.java [moved from opendaylight/northbound/subnets/src/main/java/org/opendaylight/controller/subnets/northbound/SubnetsNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/subnets/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/subnets/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/subnets/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/subnets/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/subnets/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/subnets/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/subnets/src/test/java/org/opendaylight/controller/subnets/northbound/SubnetsNorthboundTest.java [moved from opendaylight/northbound/subnets/src/test/java/org/opendaylight/controller/subnets/northbound/SubnetsNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/swagger-ui/pom.xml [moved from opendaylight/northbound/swagger-ui/pom.xml with 96% similarity]
opendaylight/adsal/northbound/swagger-ui/src/main/java/org/opendaylight/controller/swaggerui/BasePathModifierServlet.java [moved from opendaylight/northbound/swagger-ui/src/main/java/org/opendaylight/controller/swaggerui/BasePathModifierServlet.java with 100% similarity]
opendaylight/adsal/northbound/swagger-ui/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/swagger-ui/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/swagger-ui/src/main/resources/css/custom.css [moved from opendaylight/northbound/swagger-ui/src/main/resources/css/custom.css with 100% similarity]
opendaylight/adsal/northbound/swagger-ui/src/main/resources/images/logo.png [moved from opendaylight/northbound/swagger-ui/src/main/resources/images/logo.png with 100% similarity]
opendaylight/adsal/northbound/swagger-ui/src/main/resources/index.html [moved from opendaylight/northbound/swagger-ui/src/main/resources/index.html with 100% similarity]
opendaylight/adsal/northbound/switchmanager/enunciate.xml [moved from opendaylight/northbound/switchmanager/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/switchmanager/pom.xml [moved from opendaylight/northbound/switchmanager/pom.xml with 98% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeConnectorProperties.java [moved from opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeConnectorProperties.java with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeConnectors.java [moved from opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeConnectors.java with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeProperties.java [moved from opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/NodeProperties.java with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/Nodes.java [moved from opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/Nodes.java with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/SwitchNorthbound.java [moved from opendaylight/northbound/switchmanager/src/main/java/org/opendaylight/controller/switchmanager/northbound/SwitchNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/switchmanager/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/switchmanager/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/switchmanager/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/switchmanager/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/switchmanager/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/switchmanager/src/test/java/org/opendaylight/controller/switchmanager/northbound/SwitchManagerNorthboundTest.java [moved from opendaylight/northbound/switchmanager/src/test/java/org/opendaylight/controller/switchmanager/northbound/SwitchManagerNorthboundTest.java with 100% similarity]
opendaylight/adsal/northbound/topology/enunciate.xml [moved from opendaylight/northbound/topology/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/topology/pom.xml [moved from opendaylight/northbound/topology/pom.xml with 98% similarity]
opendaylight/adsal/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/EdgeProperties.java [moved from opendaylight/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/EdgeProperties.java with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/Topology.java [moved from opendaylight/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/Topology.java with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/TopologyNorthboundJAXRS.java [moved from opendaylight/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/TopologyNorthboundJAXRS.java with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/TopologyUserLinks.java [moved from opendaylight/northbound/topology/src/main/java/org/opendaylight/controller/topology/northbound/TopologyUserLinks.java with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/resources/META-INF/spring.factories [moved from opendaylight/northbound/topology/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/resources/META-INF/spring.handlers [moved from opendaylight/northbound/topology/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/resources/META-INF/spring.schemas [moved from opendaylight/northbound/topology/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/resources/META-INF/spring.tooling [moved from opendaylight/northbound/topology/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/northbound/topology/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/topology/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/topology/src/test/java/org/opendaylight/controller/topology/northbound/TopologyTest.java [moved from opendaylight/northbound/topology/src/test/java/org/opendaylight/controller/topology/northbound/TopologyTest.java with 100% similarity]
opendaylight/adsal/northbound/usermanager/enunciate.xml [moved from opendaylight/northbound/usermanager/enunciate.xml with 100% similarity]
opendaylight/adsal/northbound/usermanager/pom.xml [moved from opendaylight/northbound/usermanager/pom.xml with 98% similarity]
opendaylight/adsal/northbound/usermanager/src/main/java/org/opendaylight/controller/usermanager/northbound/UserManagerNorthbound.java [moved from opendaylight/northbound/usermanager/src/main/java/org/opendaylight/controller/usermanager/northbound/UserManagerNorthbound.java with 100% similarity]
opendaylight/adsal/northbound/usermanager/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/usermanager/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/northbound/usermanager/src/test/java/org/opendaylight/controller/subnets/northbound/UserManagerNorthboundTest.java [moved from opendaylight/northbound/usermanager/src/test/java/org/opendaylight/controller/subnets/northbound/UserManagerNorthboundTest.java with 100% similarity]
opendaylight/adsal/northboundtest/unit_test_suite/pom.xml [moved from opendaylight/northboundtest/unit_test_suite/pom.xml with 97% similarity]
opendaylight/adsal/northboundtest/unit_test_suite/src/main/java/org/opendaylight/controller/northboundtest/unittestsuite/internal/API3UnitTest.java [moved from opendaylight/northboundtest/unit_test_suite/src/main/java/org/opendaylight/controller/northboundtest/unittestsuite/internal/API3UnitTest.java with 100% similarity]
opendaylight/adsal/northboundtest/unit_test_suite/src/main/java/org/opendaylight/controller/northboundtest/unittestsuite/internal/Activator.java [moved from opendaylight/northboundtest/unit_test_suite/src/main/java/org/opendaylight/controller/northboundtest/unittestsuite/internal/Activator.java with 100% similarity]
opendaylight/adsal/pom.xml [new file with mode: 0644]
opendaylight/adsal/protocol_plugins/openflow/pom.xml [moved from opendaylight/protocol_plugins/openflow/pom.xml with 98% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDataPacketListen.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDataPacketListen.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDataPacketMux.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDataPacketMux.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDiscoveryListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IDiscoveryListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IFlowProgrammerNotifier.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IFlowProgrammerNotifier.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryProvider.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryProvider.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimExternalListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimExternalListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IInventoryShimInternalListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsManager.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IOFStatisticsManager.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadFilterInternalListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IReadServiceFilter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/IRefreshInternalProvider.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/ITopologyServiceShimListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/ITopologyServiceShimListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IController.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IController.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IMessageListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IMessageListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IMessageReadWrite.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/IMessageReadWrite.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitch.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitchStateListener.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/ISwitchStateListener.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/Controller.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/Controller.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/ControllerIO.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/ControllerIO.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/MessageReadWriteService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/MessageReadWriteService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/PriorityMessage.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/PriorityMessage.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SecureMessageReadWriteService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SecureMessageReadWriteService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/StatisticsCollector.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/StatisticsCollector.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SwitchEvent.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SwitchEvent.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SwitchHandler.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SwitchHandler.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SynchronousMessage.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/core/internal/SynchronousMessage.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Activator.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketMuxDemux.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketMuxDemux.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DataPacketServices.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DescStatisticsConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DescStatisticsConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/DiscoveryService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerNotifier.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerNotifier.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowStatisticsConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowStatisticsConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceHelper.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceHelper.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/InventoryServiceShim.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/OFStatisticsManager.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/OFStatisticsManager.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/PortConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/PortConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/PortStatisticsConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/PortStatisticsConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/ReadService.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/ReadService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/ReadServiceFilter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/ReadServiceFilter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TableConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TableConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TableStatisticsConverter.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TableStatisticsConverter.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServiceShim.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServices.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/TopologyServices.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Utils.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/internal/Utils.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6Error.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6Error.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6FlowMod.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6FlowMod.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6Match.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6Match.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6StatsReply.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6StatsReply.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6StatsRequest.java [moved from opendaylight/protocol_plugins/openflow/src/main/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6StatsRequest.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java [moved from opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/internal/FlowProgrammerServiceTest.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6ExtensionTest.java [moved from opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6ExtensionTest.java with 100% similarity]
opendaylight/adsal/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6MatchTest.java [moved from opendaylight/protocol_plugins/openflow/src/test/java/org/opendaylight/controller/protocol_plugin/openflow/vendorextension/v6extension/V6MatchTest.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/pom.xml [moved from opendaylight/protocol_plugins/stub/pom.xml with 97% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/Activator.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/FlowProgrammerService.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/FlowProgrammerService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/InventoryService.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/InventoryService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/ReadService.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeConnectorFactory.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeConnectorFactory.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/StubNodeFactory.java with 100% similarity]
opendaylight/adsal/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/TopologyServices.java [moved from opendaylight/protocol_plugins/stub/src/main/java/org/opendaylight/controller/protocol_plugins/stub/internal/TopologyServices.java with 100% similarity]
opendaylight/adsal/routing/dijkstra_implementation/pom.xml [moved from opendaylight/routing/dijkstra_implementation/pom.xml with 98% similarity]
opendaylight/adsal/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/Activator.java [moved from opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/Activator.java with 100% similarity]
opendaylight/adsal/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java [moved from opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java with 100% similarity]
opendaylight/adsal/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementationCLI.java [moved from opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementationCLI.java with 100% similarity]
opendaylight/adsal/routing/dijkstra_implementation/src/test/java/org/opendaylight/controller/routing/dijkstra_implementation/DijkstraTest.java [moved from opendaylight/routing/dijkstra_implementation/src/test/java/org/opendaylight/controller/routing/dijkstra_implementation/DijkstraTest.java with 100% similarity]
opendaylight/adsal/routing/dijkstra_implementation/src/test/java/org/opendaylight/controller/routing/dijkstra_implementation/MaxThruputTest.java [moved from opendaylight/routing/dijkstra_implementation/src/test/java/org/opendaylight/controller/routing/dijkstra_implementation/MaxThruputTest.java with 100% similarity]
opendaylight/adsal/sal/api/pom.xml [moved from opendaylight/sal/api/pom.xml with 97% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/ActionType.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/ActionType.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Controller.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Controller.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Drop.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Drop.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Enqueue.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Enqueue.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Flood.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Flood.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/FloodAll.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/FloodAll.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/HwPath.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/HwPath.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Loopback.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Loopback.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/Output.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Output.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/PopVlan.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/PopVlan.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/PushVlan.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/PushVlan.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlType.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetDlType.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNextHop.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNextHop.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwTos.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetNwTos.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetTpDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetTpDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetTpSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetTpSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanCfi.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanCfi.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanId.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanId.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanPcp.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SetVlanPcp.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SupportedFlowActions.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SupportedFlowActions.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/action/SwPath.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/SwPath.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AppRole.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AppRole.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AppRoleLevel.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AppRoleLevel.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AuthResultEnum.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/AuthResultEnum.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/IResourceAuthorization.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/Privilege.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/Privilege.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/Resource.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/Resource.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/ResourceGroup.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/ResourceGroup.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/UserLevel.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/authorization/UserLevel.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Actions.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/AdvertisedBandwidth.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/AdvertisedBandwidth.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Bandwidth.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Bandwidth.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Buffers.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Capabilities.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ComponentActivatorAbstractBase.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Config.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/ConstructionException.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ConstructionException.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/ContainerFlow.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ContainerFlow.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/ContainerServiceDependency.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ContainerServiceDependency.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Description.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Description.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Edge.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Edge.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/ForwardingMode.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/ForwardingMode.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Host.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Host.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainer.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainer.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerAware.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerListener.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerLocalListener.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/IContainerLocalListener.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Latency.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/MacAddress.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/MacAddress.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Name.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Node.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/NodeConnector.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/NodeConnector.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/NodeTable.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/NodeTable.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Path.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Path.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/PeerBandwidth.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/PeerBandwidth.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Property.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/State.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/SupportedBandwidth.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/SupportedBandwidth.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tables.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/Tier.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/TimeStamp.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/core/UpdateType.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/discovery/IDiscoveryService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/discovery/IDiscoveryService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/Flow.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/Flow.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IFlowProgrammerListener.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IFlowProgrammerListener.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IFlowProgrammerService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IFlowProgrammerService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginInFlowProgrammerService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginOutFlowProgrammerService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/flowprogrammer/IPluginOutFlowProgrammerService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IInventoryService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IInventoryService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IListenInventoryUpdates.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IListenInventoryUpdates.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IPluginInInventoryService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IPluginInInventoryService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IPluginOutInventoryService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/inventory/IPluginOutInventoryService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/Match.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/Match.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/MatchField.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/MatchField.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/MatchType.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/MatchType.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlType.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlType.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlVlan.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlVlan.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlVlanPriority.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/DlVlanPriority.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/InPort.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/InPort.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/Match.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/Match.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/MatchField.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/MatchField.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwProtocol.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwProtocol.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwTos.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/NwTos.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/TpDst.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/TpDst.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/TpSrc.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/match/extensible/TpSrc.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ARP.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ARP.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/BitBufferHelper.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/BitBufferHelper.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/BufferException.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/BufferException.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/Ethernet.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/Ethernet.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IDataPacketService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IDataPacketService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IEEE8021Q.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IListenDataPacket.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IListenDataPacket.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPluginInDataPacketService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPluginInDataPacketService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPluginOutDataPacketService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPluginOutDataPacketService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPv4.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/IPv4.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LLDP.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LLDP.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LLDPTLV.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LLDPTLV.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LinkEncap.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/LinkEncap.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/Packet.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/Packet.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/PacketException.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/PacketException.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/PacketResult.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/PacketResult.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/RawPacket.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/RawPacket.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/TCP.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/TCP.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/UDP.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/UDP.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/address/DataLinkAddress.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/address/DataLinkAddress.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/packet/address/EthernetAddress.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/address/EthernetAddress.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/FlowOnNode.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/FlowOnNode.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginInReadService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IPluginOutReadService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/IReadServiceListener.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeConnectorStatistics.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeConnectorStatistics.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeDescription.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeDescription.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeTableStatistics.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/reader/NodeTableStatistics.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IListenRoutingUpdates.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IListenRoutingUpdates.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/routing/IRouting.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IListenTopoUpdates.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginInTopologyService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginInTopologyService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/IPluginOutTopologyService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/topology/ITopologyService.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/ITopologyService.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/topology/TopoEdgeUpdate.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/topology/TopoEdgeUpdate.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ConfigurationObject.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/Direction.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/Direction.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/EtherTypes.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/EtherTypes.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/FilterIterator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/FilterIterator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/GUIField.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/GUIField.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/GlobalConstants.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/GlobalConstants.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/HexEncode.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/HexEncode.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeConnectorFactory.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/INodeFactory.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IObjectReader.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IObjectReader.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IterableIterator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IterableIterator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ListenerDispatcher.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ListenerDispatcher.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/MultiIterator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/MultiIterator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NetUtils.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NetUtils.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeConnectorCreator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeConnectorCreator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeCreator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeCreator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeTableCreator.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/NodeTableCreator.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ObjectReader.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ObjectReader.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ObjectWriter.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ObjectWriter.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ReadFromFile.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ReadFromFile.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ServiceHelper.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ServiceHelper.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/SingletonTask.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/SingletonTask.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/Status.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/Status.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/StatusCode.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/StatusCode.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/TierHelper.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/TierHelper.java with 100% similarity]
opendaylight/adsal/sal/api/src/main/java/org/opendaylight/controller/sal/utils/WriteToFile.java [moved from opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/WriteToFile.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/action/ActionTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/action/ActionTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/authorization/AuthorizationTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/authorization/AuthorizationTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/EdgeTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/EdgeTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeConnectorTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeConnectorTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeTableTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeTableTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/NodeTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/PathTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/PathTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/core/PropertyTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/core/PropertyTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/flowprogrammer/FlowTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/flowprogrammer/FlowTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/match/MatchExtensibleTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/match/MatchExtensibleTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/match/MatchTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/match/MatchTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/ARPTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/ARPTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/BitBufferHelperTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/BitBufferHelperTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/EthernetTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/EthernetTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/ICMPTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/ICMPTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/IEEE8021QTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/IEEE8021QTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/IPv4Test.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/IPv4Test.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/PacketTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/PacketTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/TCPTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/TCPTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/UDPTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/UDPTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/packet/address/EthernetAddressTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/packet/address/EthernetAddressTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/reader/FlowOnNodeTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/reader/FlowOnNodeTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeConnectorStatisticsTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeConnectorStatisticsTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeDescriptionTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeDescriptionTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeTableStatisticsTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/reader/NodeTableStatisticsTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/utils/EtherTypesTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/EtherTypesTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/utils/HexEncodeTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/HexEncodeTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/utils/IPProtocolsTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/IPProtocolsTest.java with 100% similarity]
opendaylight/adsal/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java [moved from opendaylight/sal/api/src/test/java/org/opendaylight/controller/sal/utils/NetUtilsTest.java with 100% similarity]
opendaylight/adsal/sal/connection/api/pom.xml [moved from opendaylight/sal/connection/api/pom.xml with 96% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/ConnectionConstants.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/ConnectionConstants.java with 100% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/ConnectionLocality.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/ConnectionLocality.java with 100% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionListener.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionListener.java with 100% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IConnectionService.java with 100% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginInConnectionService.java with 100% similarity]
opendaylight/adsal/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java [moved from opendaylight/sal/connection/api/src/main/java/org/opendaylight/controller/sal/connection/IPluginOutConnectionService.java with 100% similarity]
opendaylight/adsal/sal/connection/implementation/pom.xml [moved from opendaylight/sal/connection/implementation/pom.xml with 97% similarity]
opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/Activator.java [moved from opendaylight/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/Activator.java with 100% similarity]
opendaylight/adsal/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java [moved from opendaylight/sal/connection/implementation/src/main/java/org/opendaylight/controller/sal/connection/implementation/internal/ConnectionService.java with 97% similarity]
opendaylight/adsal/sal/implementation/pom.xml [moved from opendaylight/sal/implementation/pom.xml with 97% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Activator.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/DataPacketService.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/DataPacketService.java with 96% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/FlowProgrammerService.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/FlowProgrammerService.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Inventory.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Inventory.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/ProtocolService.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/ProtocolService.java with 99% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/ReadService.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/ReadService.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Topology.java [moved from opendaylight/sal/implementation/src/main/java/org/opendaylight/controller/sal/implementation/internal/Topology.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/test/java/org/opendaylight/controller/sal/implementation/DataPacketServiceTest.java [moved from opendaylight/sal/implementation/src/test/java/org/opendaylight/controller/sal/implementation/DataPacketServiceTest.java with 100% similarity]
opendaylight/adsal/sal/implementation/src/test/java/org/opendaylight/controller/sal/implementation/ProtocolServiceTest.java [moved from opendaylight/sal/implementation/src/test/java/org/opendaylight/controller/sal/implementation/ProtocolServiceTest.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/api/pom.xml [moved from opendaylight/sal/networkconfiguration/api/pom.xml with 96% similarity]
opendaylight/adsal/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/BridgeDomainConfigServiceException.java [moved from opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/BridgeDomainConfigServiceException.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/ConfigConstants.java [moved from opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/ConfigConstants.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java [moved from opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IBridgeDomainConfigService.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java [moved from opendaylight/sal/networkconfiguration/api/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/IPluginInBridgeDomainConfigService.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/implementation/pom.xml [moved from opendaylight/sal/networkconfiguration/implementation/pom.xml with 96% similarity]
opendaylight/adsal/sal/networkconfiguration/implementation/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/internal/BridgeDomainConfigService.java [moved from opendaylight/sal/networkconfiguration/implementation/src/main/java/org/opendaylight/controller/sal/networkconfig/bridgedomain/internal/BridgeDomainConfigService.java with 100% similarity]
opendaylight/adsal/sal/networkconfiguration/implementation/src/main/java/org/opendaylight/controller/sal/networkconfig/internal/Activator.java [moved from opendaylight/sal/networkconfiguration/implementation/src/main/java/org/opendaylight/controller/sal/networkconfig/internal/Activator.java with 100% similarity]
opendaylight/adsal/samples/clustersession/pom.xml [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSession.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionData.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionManager.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionUtil.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/impl/ClusterSessionServiceImpl.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionManagerTest.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionServiceImplTest.java [new file with mode: 0644]
opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionUtilTest.java [new file with mode: 0644]
opendaylight/adsal/samples/loadbalancer/pom.xml [moved from opendaylight/samples/loadbalancer/pom.xml with 98% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/ConfigManager.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/IConfigManager.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/IConfigManager.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/LBConst.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/LBConst.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/LBUtil.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/LBUtil.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/Client.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/Client.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/Pool.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/Pool.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/PoolMember.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/PoolMember.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/VIP.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/entities/VIP.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/Activator.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/Activator.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerService.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/ILoadBalancingPolicy.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/ILoadBalancingPolicy.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RandomLBPolicy.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RandomLBPolicy.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RoundRobinLBPolicy.java [moved from opendaylight/samples/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/policies/RoundRobinLBPolicy.java with 100% similarity]
opendaylight/adsal/samples/loadbalancer/src/test/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerTest.java [moved from opendaylight/samples/loadbalancer/src/test/java/org/opendaylight/controller/samples/loadbalancer/internal/LoadBalancerTest.java with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/enunciate.xml [moved from opendaylight/samples/northbound/loadbalancer/enunciate.xml with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/pom.xml [moved from opendaylight/samples/northbound/loadbalancer/pom.xml with 98% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/LoadBalancerNorthbound.java [moved from opendaylight/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/LoadBalancerNorthbound.java with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/NBConst.java [moved from opendaylight/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/NBConst.java with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/Pools.java [moved from opendaylight/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/Pools.java with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/VIPs.java [moved from opendaylight/samples/northbound/loadbalancer/src/main/java/org/opendaylight/controller/samples/loadbalancer/northbound/VIPs.java with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.factories [moved from opendaylight/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.handlers [moved from opendaylight/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.schemas [moved from opendaylight/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.tooling [moved from opendaylight/samples/northbound/loadbalancer/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/samples/northbound/loadbalancer/src/main/resources/WEB-INF/web.xml [moved from opendaylight/samples/northbound/loadbalancer/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/pom.xml [moved from opendaylight/samples/simpleforwarding/pom.xml with 98% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/HostNodePair.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/HostNodePair.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/IBroadcastHandler.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/IBroadcastHandler.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/IBroadcastPortSelector.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/IBroadcastPortSelector.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/Activator.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/Activator.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/SimpleBroadcastHandlerImpl.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/SimpleBroadcastHandlerImpl.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/SimpleForwardingImpl.java [moved from opendaylight/samples/simpleforwarding/src/main/java/org/opendaylight/controller/samples/simpleforwarding/internal/SimpleForwardingImpl.java with 100% similarity]
opendaylight/adsal/samples/simpleforwarding/src/test/java/org/opendaylight/controller/samples/simpleforwarding/internal/HostSwitchTest.java [moved from opendaylight/samples/simpleforwarding/src/test/java/org/opendaylight/controller/samples/simpleforwarding/internal/HostSwitchTest.java with 100% similarity]
opendaylight/adsal/security/pom.xml [moved from opendaylight/security/pom.xml with 97% similarity]
opendaylight/adsal/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java [moved from opendaylight/security/src/main/java/org/opendaylight/controller/security/ControllerCustomRealm.java with 100% similarity]
opendaylight/adsal/statisticsmanager/api/pom.xml [moved from opendaylight/statisticsmanager/api/pom.xml with 96% similarity]
opendaylight/adsal/statisticsmanager/api/src/main/java/org/opendaylight/controller/statisticsmanager/IStatisticsManager.java [moved from opendaylight/statisticsmanager/api/src/main/java/org/opendaylight/controller/statisticsmanager/IStatisticsManager.java with 100% similarity]
opendaylight/adsal/statisticsmanager/implementation/pom.xml [moved from opendaylight/statisticsmanager/implementation/pom.xml with 98% similarity]
opendaylight/adsal/statisticsmanager/implementation/src/main/java/org/opendaylight/controller/statisticsmanager/internal/Activator.java [moved from opendaylight/statisticsmanager/implementation/src/main/java/org/opendaylight/controller/statisticsmanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/statisticsmanager/implementation/src/main/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManager.java [moved from opendaylight/statisticsmanager/implementation/src/main/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManager.java with 100% similarity]
opendaylight/adsal/statisticsmanager/implementation/src/test/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManagerTest.java [moved from opendaylight/statisticsmanager/implementation/src/test/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManagerTest.java with 100% similarity]
opendaylight/adsal/statisticsmanager/integrationtest/pom.xml [moved from opendaylight/statisticsmanager/integrationtest/pom.xml with 95% similarity]
opendaylight/adsal/statisticsmanager/integrationtest/src/test/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManagerIT.java [moved from opendaylight/statisticsmanager/integrationtest/src/test/java/org/opendaylight/controller/statisticsmanager/internal/StatisticsManagerIT.java with 100% similarity]
opendaylight/adsal/statisticsmanager/integrationtest/src/test/resources/logback.xml [moved from opendaylight/statisticsmanager/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/switchmanager/api/pom.xml [moved from opendaylight/switchmanager/api/pom.xml with 98% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/IInventoryListener.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/IInventoryListener.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISpanAware.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISpanAware.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISwitchManager.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISwitchManager.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISwitchManagerAware.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/ISwitchManagerAware.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SpanConfig.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SpanConfig.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/Subnet.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/Subnet.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SubnetConfig.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/Switch.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/Switch.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SwitchConfig.java [moved from opendaylight/switchmanager/api/src/main/java/org/opendaylight/controller/switchmanager/SwitchConfig.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SubnetConfigTest.java [moved from opendaylight/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SubnetConfigTest.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SubnetTest.java [moved from opendaylight/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SubnetTest.java with 100% similarity]
opendaylight/adsal/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SwitchTest.java [moved from opendaylight/switchmanager/api/src/test/java/org/opendaylight/controller/switchmanager/SwitchTest.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/pom.xml [moved from opendaylight/switchmanager/implementation/pom.xml with 98% similarity]
opendaylight/adsal/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/Activator.java [moved from opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/ControllerProperties.java [moved from opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/ControllerProperties.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/IControllerProperties.java [moved from opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/IControllerProperties.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManager.java [moved from opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManager.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerCLI.java [moved from opendaylight/switchmanager/implementation/src/main/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerCLI.java with 100% similarity]
opendaylight/adsal/switchmanager/implementation/src/test/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerTest.java [moved from opendaylight/switchmanager/implementation/src/test/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerTest.java with 100% similarity]
opendaylight/adsal/switchmanager/integrationtest/pom.xml [moved from opendaylight/switchmanager/integrationtest/pom.xml with 94% similarity]
opendaylight/adsal/switchmanager/integrationtest/src/test/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerIT.java [moved from opendaylight/switchmanager/integrationtest/src/test/java/org/opendaylight/controller/switchmanager/internal/SwitchManagerIT.java with 100% similarity]
opendaylight/adsal/switchmanager/integrationtest/src/test/resources/logback.xml [moved from opendaylight/switchmanager/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/topologymanager/implementation/pom.xml [moved from opendaylight/topologymanager/implementation/pom.xml with 96% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManager.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManager.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerAware.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerAware.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerClusterWideAware.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerClusterWideAware.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerShell.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/ITopologyManagerShell.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/TopologyUserLinkConfig.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/internal/Activator.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java [moved from opendaylight/topologymanager/implementation/src/main/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImpl.java with 100% similarity]
opendaylight/adsal/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java [moved from opendaylight/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java with 100% similarity]
opendaylight/adsal/topologymanager/integrationtest/pom.xml [moved from opendaylight/topologymanager/integrationtest/pom.xml with 93% similarity]
opendaylight/adsal/topologymanager/integrationtest/src/test/java/org/opendaylight/controller/topologymanager/TopologyManagerIT.java [moved from opendaylight/topologymanager/integrationtest/src/test/java/org/opendaylight/controller/topologymanager/TopologyManagerIT.java with 100% similarity]
opendaylight/adsal/topologymanager/integrationtest/src/test/resources/logback.xml [moved from opendaylight/topologymanager/integrationtest/src/test/resources/logback.xml with 100% similarity]
opendaylight/adsal/topologymanager/shell/pom.xml [moved from opendaylight/topologymanager/shell/pom.xml with 90% similarity]
opendaylight/adsal/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/AddUserLink.java [moved from opendaylight/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/AddUserLink.java with 100% similarity]
opendaylight/adsal/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/DeleteUserLink.java [moved from opendaylight/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/DeleteUserLink.java with 100% similarity]
opendaylight/adsal/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/PrintNodeEdges.java [moved from opendaylight/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/PrintNodeEdges.java with 100% similarity]
opendaylight/adsal/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/PrintUserLink.java [moved from opendaylight/topologymanager/shell/src/main/java/org/opendaylight/controller/topologymanager/shell/PrintUserLink.java with 100% similarity]
opendaylight/adsal/topologymanager/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml [moved from opendaylight/topologymanager/shell/src/main/resources/OSGI-INF/blueprint/blueprint.xml with 100% similarity]
opendaylight/adsal/usermanager/api/pom.xml [moved from opendaylight/usermanager/api/pom.xml with 98% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthResponse.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthResponse.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthenticatedUser.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthenticatedUser.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthorizationConfig.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/AuthorizationConfig.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/IAAAProvider.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/IAAAProvider.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ISessionManager.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ISessionManager.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/IUserManager.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/IUserManager.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ODLUserLevel.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ODLUserLevel.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ServerConfig.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/ServerConfig.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java [moved from opendaylight/usermanager/api/src/main/java/org/opendaylight/controller/usermanager/UserConfig.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthResponseTest.java [moved from opendaylight/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthResponseTest.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthenticatedUserTest.java [moved from opendaylight/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthenticatedUserTest.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthorizationUserConfigTest.java [moved from opendaylight/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/AuthorizationUserConfigTest.java with 100% similarity]
opendaylight/adsal/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/ServerConfigTest.java [moved from opendaylight/usermanager/api/src/test/java/org/opendaylight/controller/usermanager/ServerConfigTest.java with 100% similarity]
opendaylight/adsal/usermanager/implementation/pom.xml [moved from opendaylight/usermanager/implementation/pom.xml with 98% similarity]
opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/Activator.java [moved from opendaylight/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/Activator.java with 100% similarity]
opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java [moved from opendaylight/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/internal/UserManager.java with 100% similarity]
opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/security/SessionManager.java [moved from opendaylight/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/security/SessionManager.java with 100% similarity]
opendaylight/adsal/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/security/UserSecurityContextRepository.java [moved from opendaylight/usermanager/implementation/src/main/java/org/opendaylight/controller/usermanager/security/UserSecurityContextRepository.java with 100% similarity]
opendaylight/adsal/usermanager/implementation/src/test/java/org/opendaylight/controller/usermanager/internal/UserManagerImplTest.java [moved from opendaylight/usermanager/implementation/src/test/java/org/opendaylight/controller/usermanager/internal/UserManagerImplTest.java with 100% similarity]
opendaylight/adsal/web/brandfragment/pom.xml [moved from opendaylight/web/brandfragment/pom.xml with 95% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/WEB-INF/jsp/customerror.jsp [moved from opendaylight/web/brandfragment/src/main/resources/WEB-INF/jsp/customerror.jsp with 100% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/WEB-INF/jsp/customlogin.jsp [moved from opendaylight/web/brandfragment/src/main/resources/WEB-INF/jsp/customlogin.jsp with 100% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/WEB-INF/jsp/custommain.jsp [moved from opendaylight/web/brandfragment/src/main/resources/WEB-INF/jsp/custommain.jsp with 100% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/css/customlogin.less [moved from opendaylight/web/brandfragment/src/main/resources/css/customlogin.less with 100% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/css/custommain.less [moved from opendaylight/web/brandfragment/src/main/resources/css/custommain.less with 100% similarity]
opendaylight/adsal/web/brandfragment/src/main/resources/img/logo.png [moved from opendaylight/web/brandfragment/src/main/resources/img/logo.png with 100% similarity]
opendaylight/adsal/web/devices/pom.xml [moved from opendaylight/web/devices/pom.xml with 98% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/Devices.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/DevicesJsonBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/DevicesJsonBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/NodeJsonBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/NodeJsonBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/PortJsonBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/PortJsonBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/SpanPortJsonBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/SpanPortJsonBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/StatusJsonBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/StatusJsonBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/java/org/opendaylight/controller/devices/web/SubnetGatewayPortBean.java [moved from opendaylight/web/devices/src/main/java/org/opendaylight/controller/devices/web/SubnetGatewayPortBean.java with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/META-INF/spring.factories [moved from opendaylight/web/devices/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/META-INF/spring.handlers [moved from opendaylight/web/devices/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/META-INF/spring.schemas [moved from opendaylight/web/devices/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/META-INF/spring.tooling [moved from opendaylight/web/devices/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/WEB-INF/Devices-servlet.xml [moved from opendaylight/web/devices/src/main/resources/WEB-INF/Devices-servlet.xml with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/WEB-INF/jsp/autherror.jsp [moved from opendaylight/web/devices/src/main/resources/WEB-INF/jsp/autherror.jsp with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/WEB-INF/jsp/error.jsp [moved from opendaylight/web/devices/src/main/resources/WEB-INF/jsp/error.jsp with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/WEB-INF/jsp/login.jsp [moved from opendaylight/web/devices/src/main/resources/WEB-INF/jsp/login.jsp with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/WEB-INF/web.xml [moved from opendaylight/web/devices/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/web/devices/src/main/resources/js/page.js [moved from opendaylight/web/devices/src/main/resources/js/page.js with 100% similarity]
opendaylight/adsal/web/flows/pom.xml [moved from opendaylight/web/flows/pom.xml with 98% similarity]
opendaylight/adsal/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java [moved from opendaylight/web/flows/src/main/java/org/opendaylight/controller/flows/web/Flows.java with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/META-INF/spring.factories [moved from opendaylight/web/flows/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/META-INF/spring.handlers [moved from opendaylight/web/flows/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/META-INF/spring.schemas [moved from opendaylight/web/flows/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/META-INF/spring.tooling [moved from opendaylight/web/flows/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/WEB-INF/Flows-servlet.xml [moved from opendaylight/web/flows/src/main/resources/WEB-INF/Flows-servlet.xml with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/WEB-INF/jsp/autherror.jsp [moved from opendaylight/web/flows/src/main/resources/WEB-INF/jsp/autherror.jsp with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/WEB-INF/jsp/error.jsp [moved from opendaylight/web/flows/src/main/resources/WEB-INF/jsp/error.jsp with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/WEB-INF/jsp/login.jsp [moved from opendaylight/web/flows/src/main/resources/WEB-INF/jsp/login.jsp with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/WEB-INF/web.xml [moved from opendaylight/web/flows/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/web/flows/src/main/resources/js/page.js [moved from opendaylight/web/flows/src/main/resources/js/page.js with 100% similarity]
opendaylight/adsal/web/osgi-brandfragment/pom.xml [moved from opendaylight/web/osgi-brandfragment/pom.xml with 94% similarity]
opendaylight/adsal/web/osgi-brandfragment/src/main/resources/META-INF/webconsole.properties [moved from opendaylight/web/osgi-brandfragment/src/main/resources/META-INF/webconsole.properties with 100% similarity]
opendaylight/adsal/web/osgi-brandfragment/src/main/resources/res/imgs/odl/favicon.ico [moved from opendaylight/web/osgi-brandfragment/src/main/resources/res/imgs/odl/favicon.ico with 100% similarity]
opendaylight/adsal/web/osgi-brandfragment/src/main/resources/res/imgs/odl/logo.png [moved from opendaylight/web/osgi-brandfragment/src/main/resources/res/imgs/odl/logo.png with 100% similarity]
opendaylight/adsal/web/root/pom.xml [moved from opendaylight/web/root/pom.xml with 98% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/ClusterNodeBean.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/ClusterNodeBean.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/ControllerUISessionManager.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/ControllerUISessionManager.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/DaylightWeb.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWebAdmin.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/DaylightWebAdmin.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/DaylightWebUtil.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/DaylightWebUtil.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/IDaylightWeb.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/IDaylightWeb.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/NodeBean.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/NodeBean.java with 100% similarity]
opendaylight/adsal/web/root/src/main/java/org/opendaylight/controller/web/UserBean.java [moved from opendaylight/web/root/src/main/java/org/opendaylight/controller/web/UserBean.java with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/META-INF/spring.factories [moved from opendaylight/web/root/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/META-INF/spring.handlers [moved from opendaylight/web/root/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/META-INF/spring.schemas [moved from opendaylight/web/root/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/META-INF/spring.tooling [moved from opendaylight/web/root/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/RootGUI-servlet.xml [moved from opendaylight/web/root/src/main/resources/WEB-INF/RootGUI-servlet.xml with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/jsp/autherror.jsp [moved from opendaylight/web/root/src/main/resources/WEB-INF/jsp/autherror.jsp with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/jsp/error.jsp [moved from opendaylight/web/root/src/main/resources/WEB-INF/jsp/error.jsp with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/jsp/login.jsp [moved from opendaylight/web/root/src/main/resources/WEB-INF/jsp/login.jsp with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/jsp/main.jsp [moved from opendaylight/web/root/src/main/resources/WEB-INF/jsp/main.jsp with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/spring/servlet/security.xml [moved from opendaylight/web/root/src/main/resources/WEB-INF/spring/servlet/security.xml with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/WEB-INF/web.xml [moved from opendaylight/web/root/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/bootstrap.min.css [moved from opendaylight/web/root/src/main/resources/css/bootstrap.min.css with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/fuelux-responsive.min.css [moved from opendaylight/web/root/src/main/resources/css/fuelux-responsive.min.css with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/fuelux.min.css [moved from opendaylight/web/root/src/main/resources/css/fuelux.min.css with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/login.less [moved from opendaylight/web/root/src/main/resources/css/login.less with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/one.less [moved from opendaylight/web/root/src/main/resources/css/one.less with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/css/opendaylight.css [moved from opendaylight/web/root/src/main/resources/css/opendaylight.css with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/Device_pc_3045_default_64.png [moved from opendaylight/web/root/src/main/resources/img/Device_pc_3045_default_64.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/Device_switch_3062_unknown_64.png [moved from opendaylight/web/root/src/main/resources/img/Device_switch_3062_unknown_64.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/Expand16T.png [moved from opendaylight/web/root/src/main/resources/img/Expand16T.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/Key_0024_16.png [moved from opendaylight/web/root/src/main/resources/img/Key_0024_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/alert_unreachable_2008_128.png [moved from opendaylight/web/root/src/main/resources/img/alert_unreachable_2008_128.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/form.png [moved from opendaylight/web/root/src/main/resources/img/form.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/logo.png [moved from opendaylight/web/root/src/main/resources/img/logo.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/logo_16.png [moved from opendaylight/web/root/src/main/resources/img/logo_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/nextpageleft.png [moved from opendaylight/web/root/src/main/resources/img/nextpageleft.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/nextpageright.png [moved from opendaylight/web/root/src/main/resources/img/nextpageright.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/open_1054_16.png [moved from opendaylight/web/root/src/main/resources/img/open_1054_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/open_1054_24.png [moved from opendaylight/web/root/src/main/resources/img/open_1054_24.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/save_as_0106_16.png [moved from opendaylight/web/root/src/main/resources/img/save_as_0106_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/save_as_0106_24.png [moved from opendaylight/web/root/src/main/resources/img/save_as_0106_24.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/search.png [moved from opendaylight/web/root/src/main/resources/img/search.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/searchremove.png [moved from opendaylight/web/root/src/main/resources/img/searchremove.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/sort_down.png [moved from opendaylight/web/root/src/main/resources/img/sort_down.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/sort_up.png [moved from opendaylight/web/root/src/main/resources/img/sort_up.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/topology_view_1033_128.png [moved from opendaylight/web/root/src/main/resources/img/topology_view_1033_128.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/topology_view_1033_16.png [moved from opendaylight/web/root/src/main/resources/img/topology_view_1033_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/user_0020_16.png [moved from opendaylight/web/root/src/main/resources/img/user_0020_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/user_0020_24.png [moved from opendaylight/web/root/src/main/resources/img/user_0020_24.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/user_group_0107_16.png [moved from opendaylight/web/root/src/main/resources/img/user_group_0107_16.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/img/user_group_0107_24.png [moved from opendaylight/web/root/src/main/resources/img/user_group_0107_24.png with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/bootstrap.min.js [moved from opendaylight/web/root/src/main/resources/js/bootstrap.min.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/datasource.js [moved from opendaylight/web/root/src/main/resources/js/datasource.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/COPYING [moved from opendaylight/web/root/src/main/resources/js/fuelux/COPYING with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/all.min.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/all.min.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/checkbox.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/checkbox.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/combobox.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/combobox.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/datagrid.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/datagrid.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/loader.min.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/loader.min.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/pillbox.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/pillbox.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/radio.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/radio.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/search.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/search.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/select.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/select.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/spinner.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/spinner.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/tree.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/tree.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/util.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/util.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/fuelux/wizard.js [moved from opendaylight/web/root/src/main/resources/js/fuelux/wizard.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/jit.js [moved from opendaylight/web/root/src/main/resources/js/jit.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/jquery-1.9.1.min.js [moved from opendaylight/web/root/src/main/resources/js/jquery-1.9.1.min.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/less-1.3.3.min.js [moved from opendaylight/web/root/src/main/resources/js/less-1.3.3.min.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/lib.js [moved from opendaylight/web/root/src/main/resources/js/lib.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/open-topology.js [moved from opendaylight/web/root/src/main/resources/js/open-topology.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/open.js [moved from opendaylight/web/root/src/main/resources/js/open.js with 100% similarity]
opendaylight/adsal/web/root/src/main/resources/js/underscore-min.js [moved from opendaylight/web/root/src/main/resources/js/underscore-min.js with 100% similarity]
opendaylight/adsal/web/topology/pom.xml [moved from opendaylight/web/topology/pom.xml with 98% similarity]
opendaylight/adsal/web/topology/src/main/java/org/opendaylight/controller/topology/web/Topology.java [moved from opendaylight/web/topology/src/main/java/org/opendaylight/controller/topology/web/Topology.java with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/META-INF/spring.factories [moved from opendaylight/web/topology/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/META-INF/spring.handlers [moved from opendaylight/web/topology/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/META-INF/spring.schemas [moved from opendaylight/web/topology/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/META-INF/spring.tooling [moved from opendaylight/web/topology/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/WEB-INF/Topology-servlet.xml [moved from opendaylight/web/topology/src/main/resources/WEB-INF/Topology-servlet.xml with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/WEB-INF/jsp/autherror.jsp [moved from opendaylight/web/topology/src/main/resources/WEB-INF/jsp/autherror.jsp with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/WEB-INF/jsp/error.jsp [moved from opendaylight/web/topology/src/main/resources/WEB-INF/jsp/error.jsp with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/WEB-INF/jsp/login.jsp [moved from opendaylight/web/topology/src/main/resources/WEB-INF/jsp/login.jsp with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/WEB-INF/web.xml [moved from opendaylight/web/topology/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/web/topology/src/main/resources/js/page.js [moved from opendaylight/web/topology/src/main/resources/js/page.js with 100% similarity]
opendaylight/adsal/web/topology/src/test/java/org/opendaylight/controller/topology/web/TopologyTest.java [moved from opendaylight/web/topology/src/test/java/org/opendaylight/controller/topology/web/TopologyTest.java with 100% similarity]
opendaylight/adsal/web/troubleshoot/pom.xml [moved from opendaylight/web/troubleshoot/pom.xml with 98% similarity]
opendaylight/adsal/web/troubleshoot/src/main/java/org/opendaylight/controller/troubleshoot/web/Troubleshoot.java [moved from opendaylight/web/troubleshoot/src/main/java/org/opendaylight/controller/troubleshoot/web/Troubleshoot.java with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/java/org/opendaylight/controller/troubleshoot/web/TroubleshootingJsonBean.java [moved from opendaylight/web/troubleshoot/src/main/java/org/opendaylight/controller/troubleshoot/web/TroubleshootingJsonBean.java with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/META-INF/spring.factories [moved from opendaylight/web/troubleshoot/src/main/resources/META-INF/spring.factories with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/META-INF/spring.handlers [moved from opendaylight/web/troubleshoot/src/main/resources/META-INF/spring.handlers with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/META-INF/spring.schemas [moved from opendaylight/web/troubleshoot/src/main/resources/META-INF/spring.schemas with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/META-INF/spring.tooling [moved from opendaylight/web/troubleshoot/src/main/resources/META-INF/spring.tooling with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/WEB-INF/Troubleshoot-servlet.xml [moved from opendaylight/web/troubleshoot/src/main/resources/WEB-INF/Troubleshoot-servlet.xml with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/WEB-INF/jsp/autherror.jsp [moved from opendaylight/web/troubleshoot/src/main/resources/WEB-INF/jsp/autherror.jsp with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/WEB-INF/jsp/error.jsp [moved from opendaylight/web/troubleshoot/src/main/resources/WEB-INF/jsp/error.jsp with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/WEB-INF/jsp/login.jsp [moved from opendaylight/web/troubleshoot/src/main/resources/WEB-INF/jsp/login.jsp with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/WEB-INF/web.xml [moved from opendaylight/web/troubleshoot/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/adsal/web/troubleshoot/src/main/resources/js/page.js [moved from opendaylight/web/troubleshoot/src/main/resources/js/page.js with 100% similarity]
opendaylight/commons/filter-valve/src/test/java/org/opendaylight/controller/filtervalve/cors/model/UrlMatcherTest.java
opendaylight/commons/opendaylight/pom.xml
opendaylight/config/config-manager/src/test/java/org/opendaylight/controller/config/manager/impl/AbstractConfigTest.java
opendaylight/config/config-persister-api/src/test/java/org/opendaylight/controller/config/persist/test/PropertiesProviderTest.java
opendaylight/config/yang-jmx-generator/src/test/java/org/opendaylight/controller/config/yangjmxgenerator/SchemaContextTest.java
opendaylight/distribution/opendaylight-karaf-empty/pom.xml
opendaylight/distribution/opendaylight-karaf/pom.xml
opendaylight/distribution/opendaylight/pom.xml
opendaylight/distribution/p2site/opendayligh-target-platform-p2site.launch [deleted file]
opendaylight/distribution/p2site/pom.xml [deleted file]
opendaylight/md-sal/inventory-manager/src/main/java/org/opendaylight/controller/md/inventory/manager/NodeChangeCommiter.java
opendaylight/md-sal/sal-akka-raft/pom.xml
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/ClientActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/ExampleActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValue.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/KeyValueSaved.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/PrintRole.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/example/messages/PrintState.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/ReplicatedLogImplEntry.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/Snapshot.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplyLogEntries.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplySnapshot.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ApplyState.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/CommitEntry.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/ElectionTimeout.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/PersistEntry.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/Replicate.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/SaveSnapshot.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/base/messages/SendHeartBeat.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Leader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/FindLeader.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/client/messages/FindLeaderReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AbstractRaftRPC.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntries.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/AppendEntriesReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshot.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/InstallSnapshotReply.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVote.java
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/messages/RequestVoteReply.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorTest.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/CandidateTest.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/LeaderTest.java
opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/MessageCollectorActor.java
opendaylight/md-sal/sal-binding-broker/pom.xml
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/RuntimeMappingModule.java
opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java
opendaylight/md-sal/sal-binding-dom-it/pom.xml
opendaylight/md-sal/sal-clustering-commons/pom.xml
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/CommonConfig.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailbox.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/Monitor.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodeGetter.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodeNavigator.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodePrinter.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodeVisitor.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializer.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeType.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueType.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeInputStreamReader.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/NormalizedNodeOutputStreamWriter.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/ValueTypes.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/raft/protobuff/client/messages/CompositeModificationPayload.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/common/actor/MeteredBoundedMailboxTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/NormalizedNodeToNodeCodecTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/PathUtilsTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/NormalizedNodeSerializerTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializerTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/InstanceIdentifierUtilsTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/xml/codec/XmlUtilsTest.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataChangeListenerRegistration.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardManager.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/exceptions/NotInitializedException.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/exceptions/PrimaryNotFoundException.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/exceptions/TimeoutException.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/exceptions/UnknownMessageException.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ActorInitialized.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ActorNotInitialized.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardManagerTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTestKit.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxyTest.java
opendaylight/md-sal/sal-dom-broker/pom.xml
opendaylight/md-sal/sal-dom-broker/src/test/java/org/opendaylight/controller/sal/dom/broker/BackwardsCompatibleMountPointTest.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLAdapter.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrint.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintNode.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLBluePrintRelation.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLColumn.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/XSQLODLUtils.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCCommand.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCResultSet.java
opendaylight/md-sal/sal-dom-xsql/src/main/java/org/opendaylight/controller/md/sal/dom/xsql/jdbc/JDBCStatement.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java
opendaylight/md-sal/sal-netconf-connector/src/main/java/org/opendaylight/controller/sal/connect/netconf/util/NetconfMessageTransformUtil.java
opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/NetconfToRpcRequestTest.java
opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java [new file with mode: 0644]
opendaylight/md-sal/sal-remoterpc-connector/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcManager.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/ExecuteRpc.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/InvokeRpc.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/RpcResponse.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RoutingTable.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/BucketImpl.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/gossip/Messages.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/utils/ConditionalProbe.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/gossip/GossiperTest.java
opendaylight/md-sal/sal-rest-docgen/pom.xml
opendaylight/md-sal/sal-rest-docgen/src/main/java/org/opendaylight/controller/sal/rest/doc/DocProvider.java
opendaylight/md-sal/sal-restconf-broker/src/main/java/org/opendaylight/controller/sal/restconf/broker/impl/NotificationServiceImpl.java
opendaylight/md-sal/sal-restconf-broker/src/main/java/org/opendaylight/controller/sal/restconf/broker/listeners/RemoteNotificationListener.java
opendaylight/md-sal/sal-restconf-broker/src/main/java/org/opendaylight/controller/sal/restconf/broker/listeners/SalNotificationListener.java
opendaylight/md-sal/statistics-manager/pom.xml
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/SimpleCompositeAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/SimpleIdentityRefAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/main/java/org/opendaylight/controller/netconf/confignetconfconnector/mapping/attributes/toxml/SimpleUnionAttributeWritingStrategy.java
opendaylight/netconf/config-netconf-connector/src/test/java/org/opendaylight/controller/netconf/confignetconfconnector/operations/runtimerpc/RuntimeRpcElementResolvedTest.java
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorFactoryTest.java
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/NetconfClientSessionNegotiatorTest.java
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/SimpleNetconfClientSessionListenerTest.java
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/SshClientChannelInitializerTest.java
opendaylight/netconf/netconf-client/src/test/java/org/opendaylight/controller/netconf/client/TcpClientChannelInitializerTest.java
opendaylight/netconf/netconf-impl/src/test/java/org/opendaylight/controller/netconf/impl/NetconfMonitoringServiceImplTest.java
opendaylight/netconf/netconf-it/src/test/java/org/opendaylight/controller/netconf/it/NetconfITSecureTest.java
opendaylight/netconf/netconf-netty-util/pom.xml
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServer.java
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfiguration.java [new file with mode: 0644]
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfigurationBuilder.java [new file with mode: 0644]
opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/osgi/NetconfSSHActivator.java
opendaylight/netconf/netconf-ssh/src/test/java/org/opendaylight/controller/netconf/netty/SSHTest.java
opendaylight/netconf/netconf-ssh/src/test/java/org/opendaylight/controller/netconf/ssh/authentication/SSHServerTest.java
opendaylight/netconf/netconf-testtool/src/main/java/org/opendaylight/controller/netconf/test/tool/NetconfDeviceSimulator.java
opendaylight/netconf/pom.xml
opendaylight/networkconfiguration/neutron/northbound/enunciate.xml [moved from opendaylight/northbound/networkconfiguration/neutron/enunciate.xml with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/pom.xml [moved from opendaylight/northbound/networkconfiguration/neutron/pom.xml with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/INeutronRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/INeutronRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallPolicyNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallPolicyNorthbound.java with 99% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallPolicyRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallPolicyRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRuleRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRuleRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRulesNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFirewallRulesNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFloatingIPRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFloatingIPRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFloatingIPsNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronFloatingIPsNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerHealthMonitorNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerHealthMonitorNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerHealthMonitorRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerHealthMonitorRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerListenerNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerListenerNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerListenerRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerListenerRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolMemberRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolMemberRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolMembersNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolMembersNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerPoolRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronLoadBalancerRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworkRequest.java with 93% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworksNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNetworksNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNorthboundRSApplication.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronNorthboundRSApplication.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPageLink.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPageLink.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortRequest.java with 93% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortsNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronPortsNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronRouterRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronRouterRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronRoutersNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronRoutersNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityGroupRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityGroupRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityGroupsNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityGroupsNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityRuleRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityRuleRequest.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityRulesNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSecurityRulesNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetRequest.java with 93% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/NeutronSubnetsNorthbound.java with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/java/org/opendaylight/controller/networkconfig/neutron/northbound/PaginatedRequestFactory.java with 63% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/resources/WEB-INF/web.xml [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/resources/WEB-INF/web.xml with 100% similarity]
opendaylight/networkconfiguration/neutron/northbound/src/main/resources/org/opendaylight/controller/networkconfig/neutron/northbound/jaxb.properties [moved from opendaylight/northbound/networkconfiguration/neutron/src/main/resources/org/opendaylight/controller/networkconfig/neutron/northbound/jaxb.properties with 100% similarity]
pom.xml

index fb524081e7b0ac44f8382058810ba7ac2272b639..540cea1bbc299ec89ea8e11f17a92ec480f602a1 100644 (file)
         <configfile finalname="configuration/initial/module-shards.conf">mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/xml/moduleshardconf</configfile>
         <configfile finalname="configuration/initial/modules.conf">mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/xml/moduleconf</configfile>
     </feature>
+
+    <feature name='odl-clustering-test-app' version='${project.version}'>
+        <feature version='${yangtools.version}'>odl-yangtools-models</feature>
+        <feature version='${project.version}'>odl-mdsal-broker</feature>
+        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-model/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-provider/${project.version}</bundle>
+        <configfile finalname="${config.configfile.directory}/20-clustering-test-app.xml">mvn:org.opendaylight.controller.samples/clustering-it-config/${project.version}/xml/config</configfile>
+    </feature>
+
 </features>
index 5270e3f5cdf702110d7c4028c9099873dc0b1bab..ba938c6a6fb7d88ad143f0639186df04d928ff73 100644 (file)
     <maven>3.0</maven>
   </prerequisites>
   <modules>
-    <module>base</module>
-    <module>controller</module>
-    <module>adsal</module>
-    <module>nsf</module>
-    <module>extras</module>
     <module>config</module>
     <module>config-persister</module>
     <module>config-netty</module>
@@ -25,7 +20,6 @@
     <module>flow</module>
     <module>netconf</module>
     <module>protocol-framework</module>
-    <module>adsal-compatibility</module>
     <module>akka</module>
     <module>netconf-connector</module>
     <module>restconf</module>
index ab42330eacd6c415f9ae91e375ed9d3fd097595d..123b00767ef6a178fc4895970ce9a9071998af45 100644 (file)
@@ -38,7 +38,6 @@
         -->
         <feature version='${project.version}'>odl-restconf</feature>
         <feature version='${project.version}'>odl-mdsal-apidocs</feature>
-        <feature version='${project.version}'>odl-clustering-test-app</feature>
     </feature>
     <!--
         Necessary TODO: Define your features.  It is useful to list then in order of dependency.  So if A depends on B, list A first.
         <bundle>wrap:mvn:org.json/json/${org.json.version}</bundle>
     </feature>
 
-    <feature name='odl-clustering-test-app' version='${project.version}'>
-        <feature version='${project.version}'>odl-mdsal-clustering</feature>
-        <feature version='${project.version}'>odl-restconf</feature>
-        <feature version='${yangtools.version}'>odl-yangtools-models</feature>
-        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-model/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-provider/${project.version}</bundle>
-        <configfile finalname="${config.configfile.directory}/20-clustering-test-app.xml">mvn:org.opendaylight.controller.samples/clustering-it-config/${project.version}/xml/config</configfile>
-        <configfile finalname="configuration/initial/module-shards.conf" override="true" >mvn:org.opendaylight.controller.samples/clustering-it-config/${project.version}/xml/testmoduleshardconf</configfile>
-        <configfile finalname="configuration/initial/modules.conf" override="true">mvn:org.opendaylight.controller.samples/clustering-it-config/${project.version}/xml/testmoduleconf</configfile>
-    </feature>
-
     <feature name='odl-toaster-rest' version='${project.version}'>
         <feature version='${project.version}'>odl-restconf</feature>
         <feature version='${project.version}'>odl-toaster</feature>
similarity index 97%
rename from opendaylight/appauth/pom.xml
rename to opendaylight/adsal/appauth/pom.xml
index 8a035510bf5426e21cf7ce3993563cf91c5c9263..7c0c999a0f0be63c19fa5bf8ea77e357b6b48c63 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../commons/opendaylight</relativePath>
+    <relativePath>../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>appauth</artifactId>
   <version>0.5.0-SNAPSHOT</version>
similarity index 98%
rename from opendaylight/arphandler/pom.xml
rename to opendaylight/adsal/arphandler/pom.xml
index ffd528beb0c161dfcf68c43ba5f82a9f83163e25..d9e18ea6abd8f98d0a6100285a7f0d8c74db0cfe 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../commons/opendaylight</relativePath>
+    <relativePath>../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>arphandler</artifactId>
   <version>0.6.0-SNAPSHOT</version>
similarity index 93%
rename from opendaylight/clustering/integrationtest/pom.xml
rename to opendaylight/adsal/clustering/integrationtest/pom.xml
index fecf4f8034ac359a3b0499b3e882612102c52f44..ea18d61f0336bd01e58b4d42a49a859a80780874 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>clustering.services.integrationtest</artifactId>
   <version>0.5.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
 
   <dependencies>
@@ -92,7 +92,7 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 96%
rename from opendaylight/clustering/services/pom.xml
rename to opendaylight/adsal/clustering/services/pom.xml
index 8c66e70cbe8bb30e93c30720bdaf46c6c99b57eb..550f580ebd0f7b8e4e2b2664fdb3bb034a58a308 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>clustering.services</artifactId>
similarity index 98%
rename from opendaylight/clustering/services_implementation/pom.xml
rename to opendaylight/adsal/clustering/services_implementation/pom.xml
index f11f7a14c0631db619ea5d3f0e532e95cfc22cdc..36cd35d891b9fc4d1064af45690acb495b450613 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>clustering.services-implementation</artifactId>
similarity index 96%
rename from opendaylight/clustering/stub/pom.xml
rename to opendaylight/adsal/clustering/stub/pom.xml
index 211dcc29d02d32b700b2cff077f16121193a75cf..7ab30110f3da7c0d3bf85a13d2873f8ee929c132 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>clustering.stub</artifactId>
similarity index 98%
rename from opendaylight/clustering/test/pom.xml
rename to opendaylight/adsal/clustering/test/pom.xml
index 93294f229092537745bf4b45864e57ec772749b2..93407ea3d78a00a70f994977522099e40333a8bf 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>clustering.test</artifactId>
similarity index 96%
rename from opendaylight/commons/httpclient/pom.xml
rename to opendaylight/adsal/commons/httpclient/pom.xml
index 39364cbcbaee86d2fdf238b1825c5092d79beafa..93a537c00c9a5da7eea346dc8b552895cdd13503 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>commons.httpclient</artifactId>
@@ -62,7 +62,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <failsOnError>true</failsOnError>
           <configLocation>controller/checkstyle.xml</configLocation>
similarity index 96%
rename from opendaylight/commons/integrationtest/pom.xml
rename to opendaylight/adsal/commons/integrationtest/pom.xml
index ad4e166cbd492fbd2279a8fe3e4fa10545ac7e2e..1701964bf1855cbf967e9e113cacd157608012a7 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>commons.integrationtest</artifactId>
@@ -80,7 +80,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <failsOnError>true</failsOnError>
           <configLocation>controller/checkstyle.xml</configLocation>
@@ -96,7 +95,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>${surefire.version}</version>
         <configuration>
           <skipTests>true</skipTests>
         </configuration>
similarity index 96%
rename from opendaylight/configuration/api/pom.xml
rename to opendaylight/adsal/configuration/api/pom.xml
index 50f19278c6a2df8c1a8fc2ff774d528c68700ab6..dec934bf6e13d0935bd60ea7fb8fc480bf10149f 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>configuration</artifactId>
similarity index 97%
rename from opendaylight/configuration/implementation/pom.xml
rename to opendaylight/adsal/configuration/implementation/pom.xml
index 4387de70eaf96de3091ceaaf255823b07024b729..a35d2e94066c5978c3624c728d145bf2062bc6f1 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>configuration.implementation</artifactId>
similarity index 96%
rename from opendaylight/connectionmanager/api/pom.xml
rename to opendaylight/adsal/connectionmanager/api/pom.xml
index 2718ed1afea9fb1eb4901fd1c2d4d08f10ad5005..aee485419c1789a1314fee22bc3523d41720bfda 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>connectionmanager</artifactId>
similarity index 97%
rename from opendaylight/connectionmanager/implementation/pom.xml
rename to opendaylight/adsal/connectionmanager/implementation/pom.xml
index fe2514e58a0876e692f3a1f945c5899ca44a8e39..b8293609a235937e13ca12b633a41ffdc670da01 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>connectionmanager.implementation</artifactId>
similarity index 97%
rename from opendaylight/containermanager/api/pom.xml
rename to opendaylight/adsal/containermanager/api/pom.xml
index c9b54a1b6c61dee45ace9536620c2c7559f714e8..31b209410d0f326f2cfd35eaa35fafe5233069aa 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>containermanager</artifactId>
similarity index 98%
rename from opendaylight/containermanager/implementation/pom.xml
rename to opendaylight/adsal/containermanager/implementation/pom.xml
index 013cd62576efc0ea1f54e463c77f62b4948cdf59..b096ba6c01673f5cacaaf47dd614539a538ea72f 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>containermanager.implementation</artifactId>
similarity index 97%
rename from opendaylight/containermanager/it.implementation/pom.xml
rename to opendaylight/adsal/containermanager/it.implementation/pom.xml
index 8e0475d4a380ce79c5144746a84a3feb3ba02282..e5ad7a7508705217b2401deb666b33b5e00f7d3b 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>containermanager.it.implementation</artifactId>
similarity index 96%
rename from opendaylight/containermanager/shell/pom.xml
rename to opendaylight/adsal/containermanager/shell/pom.xml
index c1c2d2055be32050f34370edcef5eaa9d23bd917..065df2c8291d4961c7138e38d9e73fa11b16dddd 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>containermanager.shell</artifactId>
   <version>${containermanager.shell.version}</version>
similarity index 95%
rename from opendaylight/dummy-console/pom.xml
rename to opendaylight/adsal/dummy-console/pom.xml
index 4195e53310a643b5dbf521621928f8a0da5098e0..c8a1a22ae7bb946f496d25226e5e8b21dae92bf0 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../commons/opendaylight</relativePath>
+    <relativePath>../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>dummy-console</artifactId>
   <version>1.2.0-SNAPSHOT</version>
similarity index 96%
rename from features/adsal-compatibility/pom.xml
rename to opendaylight/adsal/features/adsal-compatibility/pom.xml
index 7b8af644450d396aef145cda4efab903657f2011..d8d1888ba38504397f8058ac1737feb44549a39c 100644 (file)
@@ -11,7 +11,7 @@
      <groupId>org.opendaylight.controller</groupId>\r
      <artifactId>commons.opendaylight</artifactId>\r
      <version>1.5.0-SNAPSHOT</version>\r
-     <relativePath>../../opendaylight/commons/opendaylight</relativePath>\r
+     <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>\r
    </parent>\r
    <artifactId>features-adsal-compatibility</artifactId>\r
    <packaging>jar</packaging>\r
similarity index 98%
rename from features/adsal/pom.xml
rename to opendaylight/adsal/features/adsal/pom.xml
index 429edf828fe5b613c1722af9c632409368d74315..57fa1e2c3fd5768510f9af24dae6144ab268bc48 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <artifactId>features-adsal</artifactId>
   <version>${sal.version}</version>
similarity index 99%
rename from features/base/pom.xml
rename to opendaylight/adsal/features/base/pom.xml
index cd84eeaf3395df9718dad12e9e9c006d82d39d04..795a323cc1b7d1af20e77df071dfccd3848c23eb 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <artifactId>features-base</artifactId>
   <packaging>jar</packaging>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>features-test</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
     </dependency>
     <!-- dependency for opendaylight-karaf-empty for use by testing -->
     <dependency>
similarity index 95%
rename from features/controller/pom.xml
rename to opendaylight/adsal/features/controller/pom.xml
index 5dd2bd4a2a416af11c3ce2fb796e2602f6aeb120..34be32ff7fc069016ca32f10d564c22beaab66af 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <artifactId>controller-features</artifactId>
   <packaging>pom</packaging>
similarity index 97%
rename from features/extras/pom.xml
rename to opendaylight/adsal/features/extras/pom.xml
index e4356e6b4994dbd5cbee154e2c7441bb6b745d8c..103fbefad46490d624cdaa200fafe3b43d32e873 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <artifactId>extras-features</artifactId>
   <packaging>kar</packaging>
similarity index 99%
rename from features/nsf/pom.xml
rename to opendaylight/adsal/features/nsf/pom.xml
index 00dc219b39b354b9900ca0b78826c1ce6412fa73..0c8e8380096e0ddad62cc8ca7e6289eb404983aa 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <artifactId>features-nsf</artifactId>
   <version>${nsf.version}</version>
similarity index 97%
rename from opendaylight/forwarding/staticrouting/pom.xml
rename to opendaylight/adsal/forwarding/staticrouting/pom.xml
index b006cece40d6ca0603817c7a3f67beaed3a32f59..526c384750a9e4bf7337d1617f74e53526c10b15 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>forwarding.staticrouting</artifactId>
similarity index 97%
rename from opendaylight/forwardingrulesmanager/api/pom.xml
rename to opendaylight/adsal/forwardingrulesmanager/api/pom.xml
index 3f667e16f08f3a1d9558f6af77379434c71124fa..fc3549a597474f1a3bec0b94884b405767e5c48c 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>forwardingrulesmanager</artifactId>
similarity index 98%
rename from opendaylight/forwardingrulesmanager/implementation/pom.xml
rename to opendaylight/adsal/forwardingrulesmanager/implementation/pom.xml
index 959b71f855802aa17bc007315ed146b881093ad9..80a275c03cad9ee5bf671a39348627e21e92ca69 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>forwardingrulesmanager.implementation</artifactId>
similarity index 95%
rename from opendaylight/forwardingrulesmanager/integrationtest/pom.xml
rename to opendaylight/adsal/forwardingrulesmanager/integrationtest/pom.xml
index 60b934a492f03bc0749cca246b2f346c2d13dadd..0f9b3caea902970b91dcd026d2204c7e89d491d9 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>forwardingrulesmanager.integrationtest</artifactId>
   <version>0.5.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
 
   <dependencies>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 97%
rename from opendaylight/hosttracker/api/pom.xml
rename to opendaylight/adsal/hosttracker/api/pom.xml
index 10532baa6e2556cff8bba0478d84a19a0abf3a3e..6bc28f03c3f6de2441e1a6e6df8535505858282f 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker</artifactId>
   <version>0.6.0-SNAPSHOT</version>
similarity index 98%
rename from opendaylight/hosttracker/implementation/pom.xml
rename to opendaylight/adsal/hosttracker/implementation/pom.xml
index 370f88defa378156eb7ce12780664c293e7d3796..64254e8b92602d6a6fedc87ed0db93408a8b6eac 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker.implementation</artifactId>
   <version>0.6.0-SNAPSHOT</version>
similarity index 95%
rename from opendaylight/hosttracker/integrationtest/pom.xml
rename to opendaylight/adsal/hosttracker/integrationtest/pom.xml
index dabccf3f7119742948c32d479ad22d2b48b465cd..63610cc3e33206be6d83785ba34428961140d3ed 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>hosttracker.integrationtest</artifactId>
   <version>0.6.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
 
   <dependencies>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 96%
rename from opendaylight/hosttracker/shell/pom.xml
rename to opendaylight/adsal/hosttracker/shell/pom.xml
index 9088ae359b610808b2031e685e385639355bf187..0292e113ee6407c9ab69e25724c9271f641060ed 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker.shell</artifactId>
   <version>${hosttracker.shell.version}</version>
similarity index 97%
rename from opendaylight/hosttracker_new/api/pom.xml
rename to opendaylight/adsal/hosttracker_new/api/pom.xml
index db27345d1892601414d7668c5e7b813bd53de18b..cdb3fd95b6ad5753b1c2d4eaf46a5002a1850777 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker_new</artifactId>
   <version>0.5.0-SNAPSHOT</version>
similarity index 98%
rename from opendaylight/hosttracker_new/implementation/pom.xml
rename to opendaylight/adsal/hosttracker_new/implementation/pom.xml
index d3661a12c8841892675f6badeed8e6a9115525d4..268465eed374c71ebcc7a3d6ba3ef294d974df71 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker_new.implementation</artifactId>
   <version>0.5.0-SNAPSHOT</version>
similarity index 96%
rename from opendaylight/karaf-tomcat-security/pom.xml
rename to opendaylight/adsal/karaf-tomcat-security/pom.xml
index 30d57d048abff4a3baeb922cc6c58544d671321a..d2dc040bba998d178c92355605e94d75db8b3b75 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../commons/opendaylight</relativePath>
+    <relativePath>../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>karaf-tomcat-security</artifactId>
similarity index 97%
rename from opendaylight/logging/bridge/pom.xml
rename to opendaylight/adsal/logging/bridge/pom.xml
index dc37e301791d22137ca359eb336e5430428ae850..5ebbe4564ba23ae9784d925eda6bd47329b41c76 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>logging.bridge</artifactId>
similarity index 97%
rename from opendaylight/northbound/archetype-app-northbound/src/main/resources/archetype-resources/pom.xml
rename to opendaylight/adsal/northbound/archetype-app-northbound/src/main/resources/archetype-resources/pom.xml
index adb0c9870503e16ed7f2d0763a857181be1c5f6c..73bdf0921b6a798700bf384264e7aeb045c4c2e9 100644 (file)
@@ -6,7 +6,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>${artifactId}</artifactId>
similarity index 96%
rename from opendaylight/northbound/bundlescanner/api/pom.xml
rename to opendaylight/adsal/northbound/bundlescanner/api/pom.xml
index 78bfd385796a16a4ef914e967dfc92c8cd3956c8..d94272b342eefe2cf4fbd8fd60abdc19afb289ba 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>bundlescanner</artifactId>
similarity index 97%
rename from opendaylight/northbound/bundlescanner/implementation/pom.xml
rename to opendaylight/adsal/northbound/bundlescanner/implementation/pom.xml
index 5694b2adcf43b9a2d12cdd03b123d1d14eb56c3e..d4d57a1be9ea27efcff8f48efd0e73552df0f755 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>bundlescanner.implementation</artifactId>
@@ -294,8 +294,8 @@ import org.slf4j.LoggerFactory;
         if (classes == null || classes.size() == 0) return;
         Map<String,String> names = new HashMap<String,String>();
         StringBuilder conflictsMsg = new StringBuilder();
-        for (Class c : classes) {
-            XmlRootElement root = (XmlRootElement) c.getAnnotation(XmlRootElement.class);
+        for (Class<?> c : classes) {
+            XmlRootElement root = c.getAnnotation(XmlRootElement.class);
             if (root == null) continue;
             String rootName = root.name();
             if ("##default".equals(rootName)) {
@@ -216,7 +216,7 @@ public class BundleScannerTest {
         }
 
         @Override
-        public Enumeration findEntries(String path, String filePattern, boolean recurse) {
+        public Enumeration<URL> findEntries(String path, String filePattern, boolean recurse) {
             return Collections.enumeration(classes);
         }
 
similarity index 98%
rename from opendaylight/northbound/commons/pom.xml
rename to opendaylight/adsal/northbound/commons/pom.xml
index 9d229e4e7072d27970ea1a3602443a0e11d78134..8290bcdf38969fff515dd9b8d06835230ee30308 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>commons.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/connectionmanager/pom.xml
rename to opendaylight/adsal/northbound/connectionmanager/pom.xml
index 893dcd14f34104c96533a5bae72d0e20d75e3202..b68bc25545b31b4791f1b1dc39152d4c0b83d503 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>connectionmanager.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/containermanager/pom.xml
rename to opendaylight/adsal/northbound/containermanager/pom.xml
index 74fd115dee1fbb8033be1ea0d4532d300cb10707..8898a06f645209d10738b2f52c3e4542c99ce78b 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>containermanager.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/controllermanager/pom.xml
rename to opendaylight/adsal/northbound/controllermanager/pom.xml
index 33f9a06246a55b9cbbdc002b52ebac6c90e0a8dc..395dd2dc29d082967f4ddfdf0deb8d0cc0aa55d9 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>controllermanager.northbound</artifactId>
   <version>0.1.0-SNAPSHOT</version>
similarity index 98%
rename from opendaylight/northbound/flowprogrammer/pom.xml
rename to opendaylight/adsal/northbound/flowprogrammer/pom.xml
index 083a7a2cb8539d475b00e246954e4ea7ccbe766f..fdc7340a354e14ec294ec471cdc80cd1c5285667 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>flowprogrammer.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/hosttracker/pom.xml
rename to opendaylight/adsal/northbound/hosttracker/pom.xml
index 3cd3f36be04c2e9912dba333bc79dfe2a011280e..778125af281733024a65cd4c6c615659ea6b5cf1 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>hosttracker.northbound</artifactId>
   <version>0.5.0-SNAPSHOT</version>
similarity index 95%
rename from opendaylight/northbound/httpservice-bridge/pom.xml
rename to opendaylight/adsal/northbound/httpservice-bridge/pom.xml
index deeabd9d00c0ef3a6a422468847ab6b12b1058bb..12ee95c983f5cbb2fac85c81c04d1edf606666c7 100644 (file)
@@ -6,7 +6,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>httpservice-bridge</artifactId>
similarity index 99%
rename from opendaylight/northbound/java-client/pom.xml
rename to opendaylight/adsal/northbound/java-client/pom.xml
index a4bcde461ecb9c21433d4b93d7206cea6af8df8c..5a4c18e88cb6022f0887cbc80b682273a968a28e 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>northbound.client</artifactId>
similarity index 95%
rename from opendaylight/northbound/jolokia/pom.xml
rename to opendaylight/adsal/northbound/jolokia/pom.xml
index 07e3a7d36ba3109677d291134b9f44a0a5656453..b078e486a8d6f55381fcd0274920f1b017af5a06 100644 (file)
@@ -6,7 +6,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>jolokia-bridge</artifactId>
similarity index 98%
rename from opendaylight/northbound/networkconfiguration/bridgedomain/pom.xml
rename to opendaylight/adsal/northbound/networkconfiguration/bridgedomain/pom.xml
index 8b552ba25a6625b1978078473f973739f709c8c4..f78ff9660839134e50f2fc3bee18c0c789add9cf 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>networkconfig.bridgedomain.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/staticrouting/pom.xml
rename to opendaylight/adsal/northbound/staticrouting/pom.xml
index 761f1f08e9b65ed73091f634902d564fd71c9722..3a89369b186d06131b8d571580e237a857d71a59 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>forwarding.staticrouting.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/statistics/pom.xml
rename to opendaylight/adsal/northbound/statistics/pom.xml
index 4ae3d8746c44f3e0d6339892e07b49eea313f1b2..0d42ffbb809d74a4ee9ffbe5257313fab6bb8d33 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>statistics.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/subnets/pom.xml
rename to opendaylight/adsal/northbound/subnets/pom.xml
index 1efb974b51467036add7c2fddcc4ee02f68fbde9..1eaa45dddd5e49568fe30883becaff0c28519038 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>subnets.northbound</artifactId>
similarity index 96%
rename from opendaylight/northbound/swagger-ui/pom.xml
rename to opendaylight/adsal/northbound/swagger-ui/pom.xml
index bbb80a7811f45ef07831c65bedf0c203d79c9fd6..ba1e5c0bc4eaae907511ac2a045dcdb2def50044 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>swagger-ui</artifactId>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>usermanager.northbound</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>networkconfig.neutron.northbound</artifactId>
+    </dependency>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
                   </fileset>
                   <mapper>
                     <regexpmapper from="^(.*)/([^/]+)/*/target/enunciate/generate/swagger/ui/(.*Northbound).*$$" to="\3"></regexpmapper>
+                    <regexpmapper from="^(.*)/neutron/([^/]+)/*/target/enunciate/generate/swagger/ui/(.*resource-list.json)$$" to="neutron-\3"></regexpmapper>
                     <regexpmapper from="^(.*)/([^/]+)/*/target/enunciate/generate/swagger/ui/(.*resource-list.json)$$" to="\2-\3"></regexpmapper>
                   </mapper>
                 </copy>
similarity index 98%
rename from opendaylight/northbound/switchmanager/pom.xml
rename to opendaylight/adsal/northbound/switchmanager/pom.xml
index 1b876f4420cf2cafc01f8eef90cf8bae2eed5cd8..b7aaae58d0c384b2c6ea5013b618e116b88a1618 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>switchmanager.northbound</artifactId>
   <version>0.5.0-SNAPSHOT</version>
similarity index 98%
rename from opendaylight/northbound/topology/pom.xml
rename to opendaylight/adsal/northbound/topology/pom.xml
index 270148420c2e16f6498997fca6d5b85b2a8b40a9..60a12700aa9f09f1f5a61e8892810bf761a96678 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>topology.northbound</artifactId>
similarity index 98%
rename from opendaylight/northbound/usermanager/pom.xml
rename to opendaylight/adsal/northbound/usermanager/pom.xml
index fe32bcf5d3840ddbcd735cc48eb5b91c6b593bfa..e51ef2faa93f21eddd5eb84cd53c6d2f91910069 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>usermanager.northbound</artifactId>
similarity index 97%
rename from opendaylight/northboundtest/unit_test_suite/pom.xml
rename to opendaylight/adsal/northboundtest/unit_test_suite/pom.xml
index 11c885db308c9ad1a96f8a1120f599385e25db98..9f33a4db5dcac1abcb8a7e3c1ca2370e1e02c2cd 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath>../../../../opendaylight/commons/opendaylight</relativePath>
   </parent>
   <scm>
     <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
diff --git a/opendaylight/adsal/pom.xml b/opendaylight/adsal/pom.xml
new file mode 100644 (file)
index 0000000..23db4d5
--- /dev/null
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.parent</artifactId>
+    <version>1.1.0-SNAPSHOT</version>
+    <relativePath>../commons/parent</relativePath>
+  </parent>
+
+  <artifactId>adsal-parent</artifactId>
+  <packaging>pom</packaging>
+  <modules>
+    <module>forwarding/staticrouting</module>
+    <module>clustering/services</module>
+    <module>clustering/services_implementation</module>
+    <module>clustering/stub</module>
+    <module>clustering/test</module>
+    <module>configuration/api</module>
+    <module>configuration/implementation</module>
+    <module>routing/dijkstra_implementation</module>
+    <module>arphandler</module>
+    <module>forwardingrulesmanager/api</module>
+    <module>forwardingrulesmanager/implementation</module>
+    <module>hosttracker/api</module>
+    <module>hosttracker/implementation</module>
+    <module>hosttracker/shell</module>
+    <module>hosttracker_new/api</module>
+    <module>hosttracker_new/implementation</module>
+    <module>containermanager/api</module>
+    <module>containermanager/implementation</module>
+    <module>containermanager/shell</module>
+    <module>appauth</module>
+    <module>switchmanager/api</module>
+    <module>switchmanager/implementation</module>
+    <module>statisticsmanager/api</module>
+    <module>statisticsmanager/implementation</module>
+    <module>topologymanager/implementation</module>
+    <module>topologymanager/shell</module>
+    <module>usermanager/api</module>
+    <module>usermanager/implementation</module>
+    <module>connectionmanager/api</module>
+    <module>connectionmanager/implementation</module>
+    <module>security</module>
+    <module>karaf-tomcat-security</module>
+
+    <!-- SAL bundles -->
+    <module>sal/api</module>
+    <module>sal/implementation</module>
+
+    <!-- SAL Extension bundles -->
+    <module>sal/connection/api</module>
+    <module>sal/connection/implementation</module>
+    <module>sal/networkconfiguration/api</module>
+    <module>sal/networkconfiguration/implementation</module>
+
+    <!--  Web bundles -->
+    <module>web/root</module>
+    <module>web/flows</module>
+    <module>web/devices</module>
+    <module>web/troubleshoot</module>
+    <module>web/topology</module>
+    <module>web/osgi-brandfragment</module>
+
+    <!-- Northbound bundles -->
+    <module>northbound/commons</module>
+    <module>northbound/bundlescanner/api</module>
+    <module>northbound/bundlescanner/implementation</module>
+    <module>northbound/topology</module>
+    <module>northbound/staticrouting</module>
+    <module>northbound/statistics</module>
+    <module>northbound/flowprogrammer</module>
+    <module>northbound/hosttracker</module>
+    <module>northbound/subnets</module>
+    <module>northbound/switchmanager</module>
+    <module>northbound/containermanager</module>
+    <module>northbound/networkconfiguration/bridgedomain</module>
+    <module>northbound/httpservice-bridge</module>
+    <module>northbound/jolokia</module>
+    <module>northbound/connectionmanager</module>
+    <module>northbound/usermanager</module>
+    <module>northbound/controllermanager</module>
+
+    <!-- Debug and logging -->
+    <module>logging/bridge</module>
+
+    <!-- Southbound bundles -->
+    <module>protocol_plugins/openflow</module>
+    <module>protocol_plugins/stub</module>
+
+    <!-- Samples -->
+    <module>samples/simpleforwarding</module>
+    <module>samples/loadbalancer</module>
+    <module>samples/northbound/loadbalancer</module>
+
+    <module>dummy-console</module>
+
+    <!-- features -->
+    <module>features/base</module>
+    <module>features/controller</module>
+    <module>features/adsal</module>
+    <module>features/nsf</module>
+    <module>features/extras</module>
+    <module>features/adsal-compatibility</module>
+  </modules>
+  <profiles>
+    <profile>
+      <id>integrationtests</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>clustering/integrationtest</module>
+        <module>configuration/integrationtest</module>
+        <module>forwardingrulesmanager/integrationtest</module>
+        <module>hosttracker/integrationtest</module>
+        <module>switchmanager/integrationtest</module>
+        <module>topologymanager/integrationtest</module>
+        <!-- Northbound integration tests -->
+        <module>northbound/integrationtest</module>
+        <module>statisticsmanager/integrationtest</module>
+        <module>containermanager/it.implementation</module>
+        <module>commons/integrationtest</module>
+
+        <module>commons/httpclient</module>
+      </modules>
+    </profile>
+    <profile>
+      <id>docs</id>
+      <activation>
+        <activeByDefault>false</activeByDefault>
+      </activation>
+      <modules>
+        <module>northbound/java-client</module>
+        <module>northbound/swagger-ui</module>
+      </modules>
+    </profile>
+  </profiles>
+</project>
similarity index 98%
rename from opendaylight/protocol_plugins/openflow/pom.xml
rename to opendaylight/adsal/protocol_plugins/openflow/pom.xml
index 16fadee1cc9c5a65d8b0920c15a0d940e975cb34..7cb7602d4f580cb57c0d6846cad7763107b7161a 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>protocol_plugins.openflow</artifactId>
similarity index 97%
rename from opendaylight/protocol_plugins/stub/pom.xml
rename to opendaylight/adsal/protocol_plugins/stub/pom.xml
index 4c7b8965fbbfc4383810c95583d0c39d963d8da0..1fb84a51edcc61c6a0b0eaf85ab54c15176be02c 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>protocol_plugins.stub</artifactId>
similarity index 98%
rename from opendaylight/routing/dijkstra_implementation/pom.xml
rename to opendaylight/adsal/routing/dijkstra_implementation/pom.xml
index b1b68b8cb7a47dd927b6c526c54730f93d933110..7f429ff96717b7aa94a1c044e665d6cc8e04f612 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>routing.dijkstra_implementation</artifactId>
similarity index 97%
rename from opendaylight/sal/api/pom.xml
rename to opendaylight/adsal/sal/api/pom.xml
index 50ac61fccbe94875cdafb33da26dfc54e8abd959..d5d6256bc9b64ab7c9da75a617b5df6757b47ead 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal</artifactId>
similarity index 96%
rename from opendaylight/sal/connection/api/pom.xml
rename to opendaylight/adsal/sal/connection/api/pom.xml
index 780631791d64e9fa96c5e0313fcd762147b368a6..fe07526960a99031fe26800f8824252b292986a6 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal.connection</artifactId>
similarity index 97%
rename from opendaylight/sal/connection/implementation/pom.xml
rename to opendaylight/adsal/sal/connection/implementation/pom.xml
index a7d5dfafb9919bf1a894976b30b4de28bf371d0a..b3c99daee374ae2922a77d4e5457dc4cb35134e1 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal.connection.implementation</artifactId>
@@ -11,7 +11,6 @@ package org.opendaylight.controller.sal.connection.implementation.internal;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-
 import org.opendaylight.controller.sal.connection.ConnectionConstants;
 import org.opendaylight.controller.sal.connection.ConnectionLocality;
 import org.opendaylight.controller.sal.connection.IConnectionListener;
@@ -32,7 +31,7 @@ public class ConnectionService implements IPluginOutConnectionService, IConnecti
     private ConcurrentMap<String, IPluginInConnectionService> pluginService =
             new ConcurrentHashMap<String, IPluginInConnectionService>();
 
-    void setPluginService (Map props, IPluginInConnectionService s) {
+    void setPluginService (Map<?, ?> props, IPluginInConnectionService s) {
         String type = null;
         Object value = props.get(GlobalConstants.PROTOCOLPLUGINTYPE.toString());
         if (value instanceof String) {
@@ -46,7 +45,7 @@ public class ConnectionService implements IPluginOutConnectionService, IConnecti
         }
     }
 
-    void unsetPluginService(Map props, IPluginInConnectionService s) {
+    void unsetPluginService(Map<?, ?> props, IPluginInConnectionService s) {
         String type = null;
 
         Object value = props.get(GlobalConstants.PROTOCOLPLUGINTYPE.toString());
similarity index 97%
rename from opendaylight/sal/implementation/pom.xml
rename to opendaylight/adsal/sal/implementation/pom.xml
index 3f1aa86be8151db5a89e5c42ac1cfcbffeccf6e4..bce6e3b5473f3f1a95b202e7a8937a2f971bf0af 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal.implementation</artifactId>
@@ -204,23 +204,22 @@ public class DataPacketService implements IPluginOutDataPacketService,
         }
     }
 
-    void setPluginInDataService(Map props, IPluginInDataPacketService s) {
+    void setPluginInDataService(Map<?, ?> props, IPluginInDataPacketService s) {
         ProtocolService.set(this.pluginInDataService, props, s, logger);
     }
 
-    void unsetPluginInDataService(Map props, IPluginInDataPacketService s) {
+    void unsetPluginInDataService(Map<?, ?> props, IPluginInDataPacketService s) {
         ProtocolService.unset(this.pluginInDataService, props, s, logger);
     }
 
-    void setListenDataPacket(Map props, IListenDataPacket s) {
+    void setListenDataPacket(Map<?, ?> props, IListenDataPacket s) {
         if (this.listenDataPacket == null || this.indexDataPacket == null) {
             logger.error("data structure to store data is NULL");
             return;
         }
         logger.trace("Received setListenDataPacket request");
-        for (Object e : props.entrySet()) {
-            Map.Entry entry = (Map.Entry) e;
-            logger.trace("Prop key:({}) value:({})",entry.getKey(), entry.getValue());
+        for (Map.Entry<?, ?> e : props.entrySet()) {
+            logger.trace("Prop key:({}) value:({})",e.getKey(), e.getValue());
         }
 
         String listenerName = null;
@@ -295,15 +294,14 @@ public class DataPacketService implements IPluginOutDataPacketService,
         }
     }
 
-    void unsetListenDataPacket(Map props, IListenDataPacket s) {
+    void unsetListenDataPacket(Map<?, ?> props, IListenDataPacket s) {
         if (this.listenDataPacket == null || this.indexDataPacket == null) {
             logger.error("data structure to store data is NULL");
             return;
         }
         logger.trace("Received UNsetListenDataPacket request");
-        for (Object e : props.entrySet()) {
-            Map.Entry entry = (Map.Entry) e;
-            logger.trace("Prop key:({}) value:({})",entry.getKey(), entry.getValue());
+        for (Map.Entry<?, ?> e : props.entrySet()) {
+            logger.trace("Prop key:({}) value:({})",e.getKey(), e.getValue());
         }
 
         String listenerName = null;
@@ -195,7 +195,7 @@ public final class ProtocolService<T> {
             return false;
         }
 
-        ProtocolService plugin = (ProtocolService)o;
+        ProtocolService<?> plugin = (ProtocolService<?>)o;
         return (service.equals(plugin.service) && priority == plugin.priority);
     }
 
similarity index 96%
rename from opendaylight/sal/networkconfiguration/api/pom.xml
rename to opendaylight/adsal/sal/networkconfiguration/api/pom.xml
index 4b183497450dcb7c0d29819c02ebb55692be7ce0..bbeb2969d6a9edcb5339f2b8e40867f9a42b6b47 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal.networkconfiguration</artifactId>
similarity index 96%
rename from opendaylight/sal/networkconfiguration/implementation/pom.xml
rename to opendaylight/adsal/sal/networkconfiguration/implementation/pom.xml
index bf476a924aea347aeaf1dae87a0ed9ee0222a588..df8c6d2169fdc2902abc9de903a3af0030404824 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>sal.networkconfiguration.implementation</artifactId>
diff --git a/opendaylight/adsal/samples/clustersession/pom.xml b/opendaylight/adsal/samples/clustersession/pom.xml
new file mode 100644 (file)
index 0000000..2a5e07a
--- /dev/null
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>commons.opendaylight</artifactId>
+    <version>1.5.0-SNAPSHOT</version>
+    <relativePath>../../../commons/opendaylight</relativePath>
+  </parent>
+  <groupId>org.opendaylight.controller</groupId>
+  <artifactId>clustersession</artifactId>
+  <version>1.1.0-SNAPSHOT</version>
+  <packaging>bundle</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>equinoxSDK381</groupId>
+      <artifactId>javax.servlet</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.catalina.ha</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.coyote</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.juli.extras</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>orbit</groupId>
+      <artifactId>org.apache.tomcat.util</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>clustering.services</artifactId>
+      <version>0.6.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>jcl-over-slf4j</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.osgi</groupId>
+      <artifactId>org.osgi.core</artifactId>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.mockito</groupId>
+      <artifactId>mockito-all</artifactId>
+      <version>1.9.5</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-api-mockito</artifactId>
+      <version>1.5.4</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.powermock</groupId>
+      <artifactId>powermock-module-junit4</artifactId>
+      <version>1.5.4</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>2.4.0</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Fragment-Host>org.eclipse.gemini.web.tomcat</Fragment-Host>
+            <Export-Package>org.opendaylight.controller.clustersession</Export-Package>
+            <Import-Package>org.apache.catalina,
+              org.apache.catalina.session,
+              org.apache.catalina.util,
+              org.apache.catalina.ha.session,
+              javax.servlet,
+              javax.servlet.http,
+              org.slf4j,
+              org.osgi.framework,
+              org.eclipse.osgi.framework.console,
+              org.opendaylight.controller.clustering.services</Import-Package>
+          </instructions>
+          <manifestLocation>${project.basedir}/META-INF</manifestLocation>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSession.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSession.java
new file mode 100644 (file)
index 0000000..dc93700
--- /dev/null
@@ -0,0 +1,162 @@
+package org.opendaylight.controller.clustersession;
+
+import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.catalina.Manager;
+import org.apache.catalina.SessionListener;
+import org.apache.catalina.session.StandardSession;
+import org.opendaylight.controller.clustersession.service.ClusterSessionService;
+
+public class ClusterSession extends StandardSession implements Serializable {
+
+  private static final long serialVersionUID = 1L;
+
+  private transient ClusterSessionService sessionService;
+
+  public ClusterSession(Manager manager, ClusterSessionService sessionService) {
+    super(manager);
+    this.sessionService = sessionService;
+  }
+
+  public void setSessionService(ClusterSessionService sessionService){
+    this.sessionService = sessionService;
+  }
+
+  @Override
+  public void setAuthType(String authType) {
+    super.setAuthType(authType);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setCreationTime(long time) {
+    super.setCreationTime(time);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setMaxInactiveInterval(int interval) {
+    super.setMaxInactiveInterval(interval);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setNew(boolean isNew) {
+    super.setNew(isNew);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setPrincipal(Principal principal) {
+    super.setPrincipal(principal);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setValid(boolean isValid) {
+    super.setValid(isValid);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void access() {
+    super.access();
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void endAccess() {
+    super.endAccess();
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void removeAttribute(String name, boolean notify) {
+    super.removeAttribute(name, notify);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setAttribute(String name, Object value, boolean notify) {
+    super.setAttribute(name, value, notify);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void recycle() {
+    super.recycle();
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void removeNote(String name) {
+    super.removeNote(name);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void addSessionListener(SessionListener listener) {
+    super.addSessionListener(listener);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void removeSessionListener(SessionListener listener) {
+    super.removeSessionListener(listener);
+    sessionService.updateSession(this);
+  }
+
+  @Override
+  public void setNote(String name, Object value) {
+    super.setNote(name, value);
+    sessionService.updateSession(this);
+  }
+
+  /*
+   * Certain fields inside Standard session are not serialized, We need to process them here
+   */
+   public void afterDeserialization(){
+    if (listeners == null){
+      listeners = new ArrayList<SessionListener>();
+    }
+    if (notes == null){
+      notes = new ConcurrentHashMap<String, Object>();
+    }
+    if(support == null){
+      support = new PropertyChangeSupport(this);
+    }
+   }
+
+   @Override
+   public String toString() {
+     StringBuilder sb = new StringBuilder();
+     sb.append("ClusterSession[");
+     sb.append(id);
+     sb.append(", isNew : ");
+     sb.append(isNew);
+     sb.append(", isValid : ");
+     sb.append(isValid);
+     sb.append("]");
+     return sb.toString();
+   }
+
+   /*
+    * These methods are added for deserialization purpose
+    */
+
+   public void setAuthTypeInternal(String authType){
+     this.authType = authType;
+   }
+
+   public void setPrincipalInternal(Principal principal){
+     this.principal = principal;
+   }
+
+   public void setNoteInternal(String name, Object value) {
+     notes.put(name, value);
+   }
+}
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionData.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionData.java
new file mode 100644 (file)
index 0000000..b5796d2
--- /dev/null
@@ -0,0 +1,79 @@
+package org.opendaylight.controller.clustersession;
+
+import java.io.Serializable;
+import java.util.Arrays;
+
+public class ClusterSessionData implements Serializable{
+
+  private static final long serialVersionUID = 1L;
+
+  private ClusterSession session;
+
+  private byte[] principalData;
+
+  private byte[] savedRequestData;
+
+  private byte[] savedPrincipalData;
+
+  private String authType;
+
+  private String userName;
+
+  private String password;
+
+  public ClusterSession getSession() {
+    return session;
+  }
+
+  public void setSession(final ClusterSession session) {
+    this.session = session;
+  }
+
+  public byte[] getPrincipalData() {
+    return principalData;
+  }
+
+  public void setPrincipalData(final byte[] principalData) {
+    this.principalData = Arrays.copyOf(principalData, principalData.length);
+  }
+
+  public String getAuthType() {
+    return authType;
+  }
+
+  public void setAuthType(String authType) {
+    this.authType = authType;
+  }
+
+  public byte[] getSavedRequestData() {
+    return savedRequestData;
+  }
+
+  public void setSavedRequestData(byte[] savedRequestData) {
+    this.savedRequestData = Arrays.copyOf(savedRequestData, savedRequestData.length);
+  }
+
+  public byte[] getSavedPrincipalData() {
+    return savedPrincipalData;
+  }
+
+  public void setSavedPrincipalData(byte[] savedPrincipalData) {
+    this.savedPrincipalData = Arrays.copyOf(savedPrincipalData, savedPrincipalData.length);
+  }
+
+  public String getUserName() {
+    return userName;
+  }
+
+  public void setUserName(String userName) {
+    this.userName = userName;
+  }
+
+  public String getPassword() {
+    return password;
+  }
+
+  public void setPassword(String password) {
+    this.password = password;
+  }
+}
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionManager.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionManager.java
new file mode 100644 (file)
index 0000000..e285bb4
--- /dev/null
@@ -0,0 +1,222 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ */
+package org.opendaylight.controller.clustersession;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.LifecycleState;
+import org.apache.catalina.Session;
+import org.apache.catalina.session.ManagerBase;
+import org.apache.catalina.util.SessionIdGenerator;
+import org.opendaylight.controller.clustersession.impl.ClusterSessionServiceImpl;
+import org.opendaylight.controller.clustersession.service.ClusterSessionService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+/**
+ * ClusterSession Manager is a custom session manager, that is used to persist session data
+ * across cluster of a storage such as infinispan or memcache
+ * @author harman singh
+ *
+ */
+public class ClusterSessionManager extends ManagerBase{
+  /**
+   * Has this component been _started yet?
+   */
+  protected boolean started = false;
+
+  protected ClusterSessionService sessionService;
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(ClusterSessionManager.class);
+  /**
+   * The descriptive information about this implementation.
+   */
+  protected static final String INFO = "ClusterSessionManager/1.0";
+
+  /**
+   * The descriptive name of this Manager implementation (for logging).
+   */
+  protected static final String NAME = "ClusterSessionManager";
+
+  public ClusterSessionManager(){
+    sessionService = new ClusterSessionServiceImpl(this);
+  }
+
+  /**
+   * Return descriptive information about this Manager implementation and
+   * the corresponding version number, in the format
+   * <code>&lt;description&gt;/&lt;version&gt;</code>.
+   */
+  @Override
+  public String getInfo(){
+    return INFO;
+  }
+
+  /**
+   * Return the descriptive short name of this Manager implementation.
+   */
+  @Override
+  public String getName(){
+    return NAME;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void load() throws ClassNotFoundException, IOException {
+    // We are not persisting any session in database, infinispan does not persist data.
+    // loading of persisted session is not required.
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void unload() throws IOException {
+    // We are not persisting any session in database, infinispan does not persist data.
+    // unloading of session to persistence layer is not required.
+  }
+
+  /**
+   * Start this component and implement the requirements
+   * of {@link org.apache.catalina.util.LifecycleBase#startInternal()}.
+   *
+   * @exception LifecycleException if this component detects a fatal error
+   *  that prevents this component from being used
+   */
+  @Override
+  protected synchronized void startInternal() throws LifecycleException {
+    sessionIdGenerator = new SessionIdGenerator();
+    sessionIdGenerator.setJvmRoute(getJvmRoute());
+    sessionIdGenerator.setSecureRandomAlgorithm(getSecureRandomAlgorithm());
+    sessionIdGenerator.setSecureRandomClass(getSecureRandomClass());
+    sessionIdGenerator.setSecureRandomProvider(getSecureRandomProvider());
+    sessionIdGenerator.setSessionIdLength(getSessionIdLength());
+    sessionService.startInternal(sessionIdGenerator);
+    setState(LifecycleState.STARTING);
+  }
+
+  /**
+   * Stop this component and implement the requirements
+   * of {@link org.apache.catalina.util.LifecycleBase#stopInternal()}.
+   *
+   * @exception LifecycleException if this component detects a fatal error
+   *  that prevents this component from being used
+   */
+  @Override
+  protected synchronized void stopInternal() throws LifecycleException {
+    setState(LifecycleState.STOPPING);
+
+    // Expire all active sessions
+    Session sessions[] = findSessions();
+    for (int i = 0; i < sessions.length; i++) {
+      Session session = sessions[i];
+      try {
+        if (session.isValid()) {
+          session.expire();
+        }
+      } catch (Exception e) {
+        LOGGER.warn(e.toString());
+      } finally {
+        // Measure against memory leaking if references to the session
+        // object are kept in a shared field somewhere
+        session.recycle();
+      }
+    }
+    // Require a new random number generator if we are restarted
+    super.stopInternal();
+    sessionService.stopInternal();
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void expireSession(final String sessionId){
+    LOGGER.debug("SESSION EXPIRE : ", sessionId);
+    sessionService.expireSession(sessionId);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void remove(final Session session){
+    LOGGER.debug("SESSION REMOVE : ", session.getId());
+    sessionService.removeSession(session.getId());
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void remove(Session session, boolean update) {
+    sessionService.removeSession(session.getId());
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session findSession(final String id) throws IOException{
+    return sessionService.findSession(id);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session createSession(final String sessionId){
+    LOGGER.debug("SESSION CREATE : ", sessionId);
+    if(sessionId != null){
+      Session session = sessionService.findSession(sessionId);
+      if(session != null){
+        return session;
+      }
+    }
+    return sessionService.createSession(sessionId);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session createEmptySession(){
+    return sessionService.createEmptySession();
+  }
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void add(Session session){
+    LOGGER.debug("SESSION ADD : ", session.getId());
+    sessionService.addSession((ClusterSession)session);
+  }
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public HashMap<String, String> getSession(String sessionId){
+    return sessionService.getSession(sessionId);
+  }
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session[] findSessions() {
+    return sessionService.findSessions();
+  }
+
+  public ClusterSessionService getSessionService() {
+    return sessionService;
+  }
+
+  public void setSessionService(ClusterSessionService sessionService) {
+    this.sessionService = sessionService;
+  }
+
+}
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionUtil.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/ClusterSessionUtil.java
new file mode 100644 (file)
index 0000000..01fad1a
--- /dev/null
@@ -0,0 +1,269 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ */
+package org.opendaylight.controller.clustersession;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.apache.catalina.authenticator.Constants;
+import org.apache.catalina.authenticator.SavedRequest;
+import org.apache.catalina.ha.session.SerializablePrincipal;
+import org.apache.catalina.realm.GenericPrincipal;
+import org.opendaylight.controller.clustersession.service.ClusterSessionService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ClusterSessionUtil will be used to convert ClusterSession object into ClusterSessionData object,
+ * which is serializable and can be passed for storage. This class also perform deserialization to
+ * create ClusterSession object
+ * @author harman singh
+ *
+ */
+
+public class ClusterSessionUtil {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(ClusterSessionUtil.class);
+
+  private ClusterSessionUtil() {
+
+  }
+
+  /**
+   * Serialize the ClusterSession object to provide ClusterSessionData object,
+   * that will be used for storage like in inifinispan or memcache etc.
+   * @param session an instance of ClusterSession
+   * @return an instance of ClusterSessionData
+   */
+  public static ClusterSessionData getSerializableSession(ClusterSession session) {
+    if(session == null){
+      return null;
+    }
+    ClusterSessionData sessionData = new ClusterSessionData();
+    sessionData.setSession(session);
+    sessionData.setAuthType(session.getAuthType());
+    sessionData.setPrincipalData(serializePrincipal(session.getPrincipal()));
+    sessionData.setSavedRequestData(serializeSavedRequest(session.getNote(Constants.FORM_REQUEST_NOTE)));
+    Principal notePrincipal = (Principal) session.getNote(Constants.FORM_PRINCIPAL_NOTE);
+    byte[] principalBytes = serializePrincipal(notePrincipal);
+    sessionData.setSavedPrincipalData(principalBytes);
+    if(session.getPrincipal() == null && notePrincipal != null){
+      sessionData.setPrincipalData(principalBytes);
+    }
+    sessionData.setUserName((String) session.getNote(Constants.FORM_USERNAME));
+    sessionData.setPassword((String) session.getNote(Constants.FORM_PASSWORD));
+    return sessionData;
+  }
+
+  /**
+   * Deserialize the ClusterSessionData object that usually comes from storage
+   * to provide ClusterSession object,
+   * that will be used by Session Manager
+   * @param sessionData an instance of ClusterSessionData
+   * @param sessionService an instance of ClusterSessionService
+   * @param manager an instance of ClusterSessionManager
+   * @return an instance of ClusterSession
+   */
+
+  public static ClusterSession getDeserializedSession(ClusterSessionData sessionData, ClusterSessionService sessionService,
+      ClusterSessionManager manager) {
+    if(sessionData == null){
+      return null;
+    }
+    ClusterSession session = sessionData.getSession();
+    session.afterDeserialization();
+    session.setManager(manager);
+    session.setSessionService(sessionService);
+    if(sessionData.getAuthType() != null) {
+      session.setAuthTypeInternal(sessionData.getAuthType());
+    }
+    if(sessionData.getPrincipalData() != null && sessionData.getPrincipalData().length > 0){
+      session.setPrincipalInternal(deserializePrincipal(sessionData.getPrincipalData()));
+    }
+    if(sessionData.getSavedPrincipalData() != null && sessionData.getSavedPrincipalData().length > 0){
+      session.setNoteInternal(Constants.FORM_PRINCIPAL_NOTE, deserializePrincipal(sessionData.getSavedPrincipalData()));
+    }
+    if(sessionData.getSavedRequestData() != null && sessionData.getSavedRequestData().length > 0){
+      session.setNoteInternal(Constants.FORM_REQUEST_NOTE, deserializeSavedRequest(sessionData.getSavedRequestData()));
+    }
+    if(sessionData.getUserName() != null){
+      session.setNoteInternal(Constants.FORM_USERNAME, sessionData.getUserName());
+    }
+    if(sessionData.getPassword() != null){
+      session.setNoteInternal(Constants.FORM_PASSWORD, sessionData.getPassword());
+    }
+    return session;
+  }
+
+  private static byte[] serializePrincipal(final Principal principal){
+    if(principal == null) {
+      return new byte[0];
+    }
+    ByteArrayOutputStream bos = null;
+    ObjectOutputStream oos = null;
+    try {
+      bos = new ByteArrayOutputStream();
+      oos = new ObjectOutputStream(bos);
+      SerializablePrincipal.writePrincipal((GenericPrincipal) principal, oos );
+      oos.flush();
+      return bos.toByteArray();
+    } catch (IOException e) {
+      throw new IllegalArgumentException( "Non-serializable object", e);
+    } finally {
+      closeSilently(bos);
+      closeSilently(oos);
+    }
+  }
+
+  private static byte[] serializeSavedRequest(final Object obj) {
+    if(obj == null) {
+      return new byte[0];
+    }
+    final SavedRequest savedRequest = (SavedRequest) obj;
+    ByteArrayOutputStream bos = null;
+    ObjectOutputStream oos = null;
+    try {
+      bos = new ByteArrayOutputStream();
+      oos = new ObjectOutputStream(bos);
+      oos.writeObject(savedRequest.getContentType());
+      oos.writeObject(getHeaders(savedRequest));
+      oos.writeObject(newArrayList(savedRequest.getLocales()));
+      oos.writeObject(savedRequest.getMethod());
+      oos.writeObject(savedRequest.getQueryString());
+      oos.writeObject(savedRequest.getRequestURI());
+      oos.writeObject(savedRequest.getDecodedRequestURI());
+      oos.flush();
+      return bos.toByteArray();
+    } catch (IOException e) {
+      throw new IllegalArgumentException( "Non-serializable object", e);
+    } finally {
+      closeSilently(bos);
+      closeSilently(oos);
+    }
+  }
+
+  private static Principal deserializePrincipal(final byte[] data) {
+    ByteArrayInputStream bis = null;
+    ObjectInputStream ois = null;
+    try {
+      bis = new ByteArrayInputStream(data);
+      ois = new ObjectInputStream(bis);
+      return SerializablePrincipal.readPrincipal(ois);
+    } catch (IOException e) {
+      throw new IllegalArgumentException( "Could not deserialize principal", e);
+    } catch (ClassNotFoundException e) {
+      throw new IllegalArgumentException( "Could not deserialize principal", e);
+    } finally {
+      closeSilently(bis);
+      closeSilently(ois);
+    }
+  }
+
+  @SuppressWarnings("unchecked")
+  private static SavedRequest deserializeSavedRequest(final byte[] data) {
+    ByteArrayInputStream bis = null;
+    ObjectInputStream ois = null;
+    try {
+      bis = new ByteArrayInputStream(data);
+      ois = new ObjectInputStream(bis);
+      final SavedRequest savedRequest = new SavedRequest();
+      savedRequest.setContentType((String) ois.readObject());
+      setHeaders(savedRequest, (Map<String, List<String>>) ois.readObject());
+      setLocales(savedRequest, (List<Locale>) ois.readObject());
+      savedRequest.setMethod((String) ois.readObject());
+      savedRequest.setQueryString((String) ois.readObject());
+      savedRequest.setRequestURI((String) ois.readObject());
+      savedRequest.setDecodedRequestURI((String) ois.readObject());
+      return savedRequest;
+    } catch (final IOException e) {
+      throw new IllegalArgumentException( "Could not deserialize SavedRequest", e );
+    } catch (final ClassNotFoundException e) {
+      throw new IllegalArgumentException( "Could not deserialize SavedRequest", e );
+    } finally {
+      closeSilently(bis);
+      closeSilently(ois);
+    }
+  }
+
+  private static void setLocales(final SavedRequest savedRequest, final List<Locale> locales) {
+    if(locales != null && !locales.isEmpty()) {
+      for (final Locale locale : locales) {
+        savedRequest.addLocale(locale);
+      }
+    }
+  }
+
+  private static <T> List<T> newArrayList(final Iterator<T> iter) {
+    if(!iter.hasNext()) {
+      return Collections.emptyList();
+    }
+    final List<T> result = new ArrayList<T>();
+    while (iter.hasNext()) {
+      result.add(iter.next());
+    }
+    return result;
+  }
+
+  private static Map<String, List<String>> getHeaders(final SavedRequest obj) {
+    final Map<String, List<String>> result = new HashMap<String, List<String>>();
+    final Iterator<String> namesIter = obj.getHeaderNames();
+    while (namesIter.hasNext()) {
+      final String name = namesIter.next();
+      final List<String> values = new ArrayList<String>();
+      result.put(name, values);
+      final Iterator<String> valuesIter = obj.getHeaderValues(name);
+      while (valuesIter.hasNext()) {
+        final String value = valuesIter.next();
+        values.add(value);
+      }
+    }
+    return result;
+  }
+
+  private static void setHeaders(final SavedRequest obj, final Map<String, List<String>> headers) {
+    if(headers != null) {
+      for (final Entry<String, List<String>> entry : headers.entrySet()) {
+        final List<String> values = entry.getValue();
+        for (final String value : values) {
+          obj.addHeader(entry.getKey(), value);
+        }
+      }
+    }
+  }
+
+  private static void closeSilently(final OutputStream os) {
+    if (os != null) {
+      try {
+        os.close();
+      } catch (final IOException f) {
+        LOGGER.debug("Exception occurred while closing output stream",  f.toString());
+      }
+    }
+  }
+
+  private static void closeSilently(final InputStream is) {
+    if (is != null) {
+      try {
+        is.close();
+      } catch (final IOException f) {
+        LOGGER.debug("Exception occurred while closing input stream", f.toString());
+      }
+    }
+  }
+}
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/impl/ClusterSessionServiceImpl.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/impl/ClusterSessionServiceImpl.java
new file mode 100644 (file)
index 0000000..e1c7dfd
--- /dev/null
@@ -0,0 +1,328 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ */
+package org.opendaylight.controller.clustersession.impl;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.EnumSet;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.catalina.Session;
+import org.apache.catalina.util.SessionIdGenerator;
+import org.opendaylight.controller.clustering.services.CacheConfigException;
+import org.opendaylight.controller.clustering.services.CacheExistException;
+import org.opendaylight.controller.clustering.services.IClusterGlobalServices;
+import org.opendaylight.controller.clustering.services.IClusterServices;
+import org.opendaylight.controller.clustersession.ClusterSession;
+import org.opendaylight.controller.clustersession.ClusterSessionData;
+import org.opendaylight.controller.clustersession.ClusterSessionManager;
+import org.opendaylight.controller.clustersession.ClusterSessionUtil;
+import org.opendaylight.controller.clustersession.service.ClusterSessionService;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+import org.osgi.util.tracker.ServiceTrackerCustomizer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation to persist and retrieve session data from infinispan cache
+ * @author harman singh
+ *
+ */
+public class ClusterSessionServiceImpl implements ClusterSessionService,
+  ServiceTrackerCustomizer<IClusterGlobalServices, IClusterGlobalServices>{
+
+  private IClusterGlobalServices clusterGlobalServices = null;
+  private static final Logger LOGGER = LoggerFactory.getLogger(ClusterSessionServiceImpl.class);
+  private ConcurrentMap<String, ClusterSessionData> sessions = null;
+  private static final String SESSION_CACHE = "customSessionManager.sessionData";
+  private ClusterSessionManager manager = null;
+  private SessionIdGenerator sessionIdGenerator = null;
+  private BundleContext context = null;
+  private ServiceTracker<IClusterGlobalServices, IClusterGlobalServices> clusterTracker;
+  public ClusterSessionServiceImpl(ClusterSessionManager manager) {
+    this.manager = manager;
+  }
+  /**
+   * This method initialize the cluster service of opendaylight and
+   * create a cache map in infinispan
+   */
+
+  @Override
+  public void startInternal(SessionIdGenerator sessionIdGenerator){
+    this.sessionIdGenerator = sessionIdGenerator;
+    context = FrameworkUtil.getBundle(ClusterSessionManager.class).getBundleContext();
+    getClusterService();
+    createCache();
+  }
+
+  /**
+   * Removes the cluster service tracker while shut down
+   */
+  @Override
+  public void stopInternal(){
+    if(clusterTracker != null){
+      clusterTracker.close();
+    }
+  }
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session findSession(final String id){
+    if(id == null) {
+      return null;
+    }
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return null;
+    }
+    ClusterSessionData sessionData = sessions.get(id);
+    if(sessionData != null) {
+      LOGGER.debug("SESSION FOUND : ", id);
+    } else {
+      LOGGER.debug("SESSION NOTFOUND : ", id);
+    }
+    return ClusterSessionUtil.getDeserializedSession(sessionData, this, this.manager);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session[] findSessions() {
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return new Session[0];
+    }
+    Collection<ClusterSessionData> sessionDataList = sessions.values();
+    ArrayList<ClusterSession> sessionList = new ArrayList<ClusterSession>();
+    for(ClusterSessionData sessionData : sessionDataList){
+      sessionList.add(ClusterSessionUtil.getDeserializedSession(sessionData, this, this.manager));
+    }
+    return sessionList.toArray(new Session[0]);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void removeSession(final String id){
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return;
+    }
+    sessions.remove(id);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void expireSession(final String id){
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return;
+    }
+    ClusterSessionData sessionData = sessions.get(id);
+    if(sessionData != null) {
+      sessionData.getSession().expire();
+      removeSession(id);
+    }
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session createSession(final String sessionId){
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return null;
+    }
+    Session session = createEmptySession();
+    session.setNew(true);
+    session.setValid(true);
+    session.setCreationTime(System.currentTimeMillis());
+    String id = sessionId;
+    if (id == null) {
+      id = generateSessionId();
+    }
+    session.setId(id);
+    return session;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void addSession(final ClusterSession session){
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return;
+    }
+    ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(session);
+    sessions.put(session.getId(), sessionData);
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public Session createEmptySession(){
+    return getNewSession();
+  }
+
+  /**
+   * Returns information about the session with the given session id.
+   *
+   * <p>The session information is organized as a HashMap, mapping
+   * session attribute names to the String representation of their values.
+   *
+   * @param sessionId Session id
+   *
+   * @return HashMap mapping session attribute names to the String
+   * representation of their values, or null if no session with the
+   * specified id exists, or if the session does not have any attributes
+   */
+  public HashMap<String, String> getSession(String sessionId) {
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return null;
+    }
+    ClusterSessionData sessionData = sessions.get(sessionId);
+    if (sessionData == null) {
+      return null;
+    }
+    ClusterSession s = ClusterSessionUtil.getDeserializedSession(sessionData, this, this.manager);
+    Enumeration<String> ee = s.getAttributeNames();
+    if (ee == null || !ee.hasMoreElements()) {
+      return null;
+    }
+    HashMap<String, String> map = new HashMap<String, String>();
+    while (ee.hasMoreElements()) {
+      String attrName = ee.nextElement();
+      map.put(attrName, s.getAttribute(attrName).toString());
+    }
+    return map;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override
+  public void updateSession(ClusterSession session) {
+    if(sessions == null) {
+      LOGGER.debug("Session cache not present, try to create.");
+      createCache();
+      return;
+    }
+    if(session.getId() != null && sessions.get(session.getId()) != null){
+      ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(session);
+      sessions.put(session.getId(), sessionData);
+    }
+  }
+
+  @Override
+  public IClusterGlobalServices addingService(ServiceReference<IClusterGlobalServices> reference) {
+      if (clusterGlobalServices == null) {
+        this.clusterGlobalServices = context.getService(reference);
+        createCache();
+        return clusterGlobalServices;
+      }
+      return null;
+  }
+
+  @Override
+  public void modifiedService(ServiceReference<IClusterGlobalServices> reference, IClusterGlobalServices service) {
+    // This method is added from ServiceTracker interface, We don't have to modify service.
+  }
+
+  @Override
+  public void removedService(ServiceReference<IClusterGlobalServices> reference, IClusterGlobalServices service) {
+      if (clusterGlobalServices == service) {
+          clusterGlobalServices = null;
+      }
+  }
+
+  /*
+   * Return an instance of Standard Session object with current session manager
+   */
+  private ClusterSession getNewSession() {
+    return new ClusterSession(this.manager, this);
+  }
+
+  /*
+   * Generate and return a new session identifier.
+   */
+  private String generateSessionId() {
+    String result = null;
+    do {
+      result = sessionIdGenerator.generateSessionId();
+    } while (sessions.containsKey(result));
+    return result;
+  }
+
+  private void createCache() {
+    allocateCache();
+    retrieveCache();
+  }
+
+  /*
+   * This is a fragment bundle, so We can't use Activator to set Service.
+   * This is the alternative to get registered clustered service
+   */
+  private void getClusterService(){
+    if (context != null) {
+      clusterTracker = new ServiceTracker<>(context, IClusterGlobalServices.class, this);
+      clusterTracker.open();
+    }
+  }
+
+  /*
+   * Allocate space in infinispan to persist session data
+   */
+  private void allocateCache() {
+    if (clusterGlobalServices == null) {
+      LOGGER.trace("un-initialized clusterGlobalService, can't create cache");
+      return;
+    }
+    try {
+      clusterGlobalServices.createCache(SESSION_CACHE,
+          EnumSet.of(IClusterServices.cacheMode.SYNC , IClusterServices.cacheMode.TRANSACTIONAL));
+
+    } catch (CacheConfigException cce) {
+      LOGGER.error("Cache configuration invalid - check cache mode", cce.toString());
+    } catch (CacheExistException ce) {
+      LOGGER.debug("Skipping cache creation as already present", ce.toString());
+    }
+  }
+
+  /*
+   * Fetch cached session data map object from infinispan
+   */
+  @SuppressWarnings("unchecked")
+  private void retrieveCache(){
+    if (clusterGlobalServices == null) {
+      LOGGER.trace("un-initialized clusterGlobalService, can't retrieve cache");
+      return;
+    }
+    sessions = (ConcurrentMap<String, ClusterSessionData>)clusterGlobalServices.getCache(SESSION_CACHE);
+    if(sessions == null){
+      LOGGER.warn("Failed to get session cache");
+    }
+  }
+}
\ No newline at end of file
diff --git a/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java b/opendaylight/adsal/samples/clustersession/src/main/java/org/opendaylight/controller/clustersession/service/ClusterSessionService.java
new file mode 100644 (file)
index 0000000..9991b33
--- /dev/null
@@ -0,0 +1,84 @@
+package org.opendaylight.controller.clustersession.service;
+
+import java.util.HashMap;
+
+import org.apache.catalina.Session;
+import org.apache.catalina.util.SessionIdGenerator;
+import org.opendaylight.controller.clustersession.ClusterSession;
+
+/**
+ * A service to handle session persistence and retrieval in any data store
+ *
+ * @author harman singh
+ *
+ */
+public interface ClusterSessionService {
+
+  /**
+   * This method performs all startup operations
+   */
+  void startInternal(SessionIdGenerator sessionIdGenerator);
+
+  /**
+   * Method to perform all clean up operations
+   */
+  void stopInternal();
+
+  /**
+   * Find Session object based on provided session id from persistance
+   * @param id
+   * @return an instance of Session
+   */
+  Session findSession(final String id);
+
+  /**
+   * Get an array of session objects available in storage
+   */
+  Session[] findSessions();
+
+  /**
+   * Remove a session object from persistence
+   * @param id of session object need to be removed
+   */
+  void removeSession(final String id);
+
+  /**
+   * Expire and remove a session object from persistence
+   * @param id of session object need to be expired
+   */
+  void expireSession(final String id);
+
+  /**
+   * Create a session object based on session id, if session is not present
+   * use random session id
+   * @param sessionId
+   * @return an instance of Session
+   */
+  Session createSession(final String sessionId);
+
+  /**
+   * Add a session object in persistence
+   * @param session an instance of ClusterSession
+   */
+  void addSession(final ClusterSession session);
+
+  /**
+   * Create an empty Session object
+   * @return session object
+   */
+  Session createEmptySession();
+
+  /**
+   * Fetch attributes of Session object fetched by supplied session id
+   * @param sessionId
+   * @return
+   */
+  HashMap<String, String> getSession(String sessionId);
+
+  /**
+   * update the session object in persistence
+   * @param session
+   */
+  void updateSession(final ClusterSession session);
+
+}
diff --git a/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionManagerTest.java b/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionManagerTest.java
new file mode 100644 (file)
index 0000000..9aae2bb
--- /dev/null
@@ -0,0 +1,157 @@
+package org.opendaylight.controller.clustersession;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.Session;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.opendaylight.controller.clustering.services.IClusterGlobalServices;
+import org.opendaylight.controller.clustersession.impl.ClusterSessionServiceImpl;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({FrameworkUtil.class})
+public class ClusterSessionManagerTest {
+  static ClusterSessionManager manager = null;
+  static ClusterSessionServiceImpl sessionService = null;
+  private static final String SESSION_CACHE = "customSessionManager.sessionData";
+  static ConcurrentMap<String, ClusterSessionData> sessions = new ConcurrentHashMap<String, ClusterSessionData>();
+  private String sessionId = "1234567";
+  final String AUTH_TYPE = "FORM";
+  final String ATTRIBUTE_NAME = "AuthType";
+  final int SESSION_ID_LENGTH = 7;
+  @SuppressWarnings("unchecked")
+  @BeforeClass
+  public static void init(){
+    Bundle bundle = mock(Bundle.class);
+    BundleContext context = mock(BundleContext.class);
+    IClusterGlobalServices clusterGlobalService = mock(IClusterGlobalServices.class);
+    ServiceReference<IClusterGlobalServices> serviceReference = mock(ServiceReference.class);
+    PowerMockito.mockStatic(FrameworkUtil.class);
+    when(FrameworkUtil.getBundle(ClusterSessionManager.class)).thenReturn(bundle);
+    when(bundle.getBundleContext()).thenReturn(context);
+    when(context.getService(serviceReference)).thenReturn(clusterGlobalService);
+    when((ConcurrentMap<String, ClusterSessionData>)clusterGlobalService.getCache(SESSION_CACHE)).thenReturn(sessions);
+    Context containerContext = mock(Context.class);
+    manager = new ClusterSessionManager();
+    manager.setContainer(containerContext);
+    try {
+      manager.startInternal();
+    } catch (LifecycleException e) {
+    }
+    sessionService = (ClusterSessionServiceImpl) manager.getSessionService();
+    sessionService.addingService(serviceReference);
+  }
+
+  @Test
+  public void checkSessionManagerCreated(){
+    assertEquals("session manager info does not match", "ClusterSessionManager/1.0", manager.getInfo());
+    assertEquals("session manager name does not match", "ClusterSessionManager", manager.getName());
+  }
+
+  @Test
+  public void testCreateEmptySession(){
+    Session session = manager.createEmptySession();
+    assertEquals("session manager does not match", manager, session.getManager());
+  }
+
+  @Test
+  public void testCreateRandomSessionId(){
+    Session session = manager.createSession(null);
+    assertEquals("Session should be valid", true, session.isValid());
+    manager.remove(session);
+  }
+
+  @Test
+  public void testCreateSession(){
+    Session session = manager.createSession(sessionId);
+    assertEquals("Session should be valid", true, session.isValid());
+    assertEquals("Session id does not match", sessionId, session.getId());
+    manager.remove(session);
+  }
+
+  @Test
+  public void testReCreateSession(){
+    Session session = manager.createSession(sessionId);
+    assertEquals("Session should be valid", true, session.isValid());
+    assertEquals("Session id does not match", sessionId, session.getId());
+    manager.createSession(sessionId);
+    manager.remove(session);
+  }
+
+  @Test
+  public void testSessionCRUD() throws IOException{
+    Session foundSession = manager.findSession(sessionId);
+    assertNull("Session should not exist here", foundSession);
+    Session session = manager.createSession(sessionId);
+    manager.add(session);
+    foundSession = manager.findSession(sessionId);
+    assertEquals("Session was not found, id does not match", sessionId, foundSession.getId());
+    manager.remove(session);
+    foundSession = manager.findSession(sessionId);
+    assertEquals("Session was not removed", null, foundSession);
+  }
+
+  @Test
+  public void testExpireSession() throws IOException{
+    Session session = manager.createSession(sessionId);
+    session.setAuthType(AUTH_TYPE);
+    manager.add(session);
+    Session foundSession = manager.findSession(sessionId);
+    assertEquals("Session was not found", sessionId, foundSession.getId());
+    manager.expireSession(sessionId);
+    foundSession = manager.findSession(sessionId);
+    assertEquals("Session was not expired", null, foundSession);
+  }
+
+  @Test
+  public void testFindSessions(){
+    Session session = manager.createSession(sessionId);
+    session.setAuthType(AUTH_TYPE);
+    manager.add(session);
+    Session[] sessions = manager.findSessions();
+    assertEquals("Session array size does not match", 1, sessions.length);
+    assertEquals("Session array size does not match", sessionId, sessions[0].getId());
+    manager.remove(session);
+  }
+
+  @Test
+  public void testGetSession(){
+    ClusterSession session = (ClusterSession) manager.createSession(sessionId);
+    session.setAttribute(ATTRIBUTE_NAME, AUTH_TYPE);
+    manager.add(session);
+    HashMap<String, String> sessionAttributes = manager.getSession(sessionId);
+    assertNotNull("Session attribute should not be null", sessionAttributes);
+    assertEquals("Session attribute size does not match", 1, sessionAttributes.size());
+    assertEquals("Session attribute size does not match", AUTH_TYPE, sessionAttributes.get(ATTRIBUTE_NAME));
+    manager.remove(session);
+  }
+
+  @AfterClass
+  public static void cleanup(){
+    try {
+      manager.stopInternal();
+    } catch (LifecycleException e) {
+    }
+  }
+
+}
\ No newline at end of file
diff --git a/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionServiceImplTest.java b/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionServiceImplTest.java
new file mode 100644 (file)
index 0000000..1835db5
--- /dev/null
@@ -0,0 +1,162 @@
+package org.opendaylight.controller.clustersession;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.Session;
+import org.apache.catalina.util.SessionIdGenerator;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.opendaylight.controller.clustering.services.IClusterGlobalServices;
+import org.opendaylight.controller.clustersession.impl.ClusterSessionServiceImpl;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({FrameworkUtil.class})
+public class ClusterSessionServiceImplTest {
+  static ClusterSessionManager manager = null;
+  static ClusterSessionServiceImpl sessionService = null;
+  private static final String SESSION_CACHE = "customSessionManager.sessionData";
+  static ConcurrentMap<String, ClusterSessionData> sessions = new ConcurrentHashMap<String, ClusterSessionData>();
+  private String sessionId = "1234567";
+  final String AUTH_TYPE = "FORM";
+  final String ATTRIBUTE_NAME = "AuthType";
+
+  @SuppressWarnings("unchecked")
+  @BeforeClass
+  public static void init(){
+    Bundle bundle = mock(Bundle.class);
+    BundleContext context = mock(BundleContext.class);
+    IClusterGlobalServices clusterGlobalService = mock(IClusterGlobalServices.class);
+    ServiceReference<IClusterGlobalServices> serviceReference = mock(ServiceReference.class);
+    PowerMockito.mockStatic(FrameworkUtil.class);
+    when(FrameworkUtil.getBundle(ClusterSessionManager.class)).thenReturn(bundle);
+    when(bundle.getBundleContext()).thenReturn(context);
+    when(context.getService(serviceReference)).thenReturn(clusterGlobalService);
+    when((ConcurrentMap<String, ClusterSessionData>)clusterGlobalService.getCache(SESSION_CACHE)).thenReturn(sessions);
+    Context containerContext = mock(Context.class);
+    manager = new ClusterSessionManager();
+    sessionService = (ClusterSessionServiceImpl) manager.getSessionService();
+    manager.setContainer(containerContext);
+    sessionService.startInternal(new SessionIdGenerator());
+    sessionService.addingService(serviceReference);
+  }
+
+  @Test
+  public void testCreateEmptySession(){
+    Session session = sessionService.createEmptySession();
+    assertEquals("session manager does not match", manager, session.getManager());
+  }
+
+  @Test
+  public void testCreateSessionwithRandomId(){
+    Session session = sessionService.createSession(null);
+    assertEquals("Session should be valid", true, session.isValid());
+    sessionService.removeSession(session.getId());
+  }
+
+  @Test
+  public void testCreateSession(){
+    Session session = sessionService.createSession(sessionId);
+    assertEquals("Session should be valid", true, session.isValid());
+    assertEquals("Session id does not match", sessionId, session.getId());
+    sessionService.removeSession(sessionId);
+  }
+
+  @Test
+  public void testNullfindSession() {
+    Session session = sessionService.findSession(null);
+    assertNull("Session should be null", session);
+  }
+
+  @Test
+  public void testSessionCRUD(){
+    Session foundSession = sessionService.findSession(sessionId);
+    assertNull("Session should not exist here", foundSession);
+    Session session = sessionService.createSession(sessionId);
+    foundSession = sessionService.findSession(sessionId);
+    assertEquals("Session was not added", sessionId, foundSession.getId());
+    session.setAuthType(AUTH_TYPE);
+    sessionService.updateSession((ClusterSession)session);
+    foundSession = sessionService.findSession(sessionId);
+    assertEquals("Session was not found, id does not match", sessionId, foundSession.getId());
+    assertEquals("Session was not found, auth type does match", AUTH_TYPE, foundSession.getAuthType());
+    sessionService.removeSession(sessionId);
+    foundSession = sessionService.findSession(sessionId);
+    assertEquals("Session was not removed", null, foundSession);
+  }
+
+  @Test
+  public void testExpireSession(){
+    Session session = sessionService.createSession(sessionId);
+    session.setAuthType(AUTH_TYPE);
+    sessionService.addSession((ClusterSession)session);
+    Session foundSession = sessionService.findSession(sessionId);
+    assertEquals("Session was not found", sessionId, foundSession.getId());
+    sessionService.expireSession(sessionId);
+    foundSession = sessionService.findSession(sessionId);
+    assertEquals("Session was not expired", null, foundSession);
+  }
+
+  @Test
+  public void testFindSessions(){
+    Session session = sessionService.createSession(sessionId);
+    session.setAuthType(AUTH_TYPE);
+    sessionService.addSession((ClusterSession)session);
+    Session[] sessions = sessionService.findSessions();
+    assertEquals("Session array size does not match", 1, sessions.length);
+    assertEquals("Session array size does not match", sessionId, sessions[0].getId());
+    sessionService.removeSession(sessionId);
+  }
+
+  @Test
+  public void testGetSession(){
+    ClusterSession session = (ClusterSession) sessionService.createSession(sessionId);
+    session.setAttribute(ATTRIBUTE_NAME, AUTH_TYPE);
+    HashMap<String, String> sessionAttributes = sessionService.getSession(sessionId);
+    assertNotNull("Session attribute should not be null", sessionAttributes);
+    assertEquals("Session attribute size does not match", 1, sessionAttributes.size());
+    assertEquals("Session attribute size does not match", AUTH_TYPE, sessionAttributes.get(ATTRIBUTE_NAME));
+    sessionService.removeSession(sessionId);
+  }
+
+  @Test
+  public void testNullSessionCache(){
+    ClusterSessionManager clustermanager = new ClusterSessionManager();
+    ClusterSessionServiceImpl service = new ClusterSessionServiceImpl(clustermanager);
+    Session session = service.findSession(sessionId);
+    assertNull("Session should be null, as cache is null", session);
+    Session[] sessions = service.findSessions();
+    assertEquals("Session array should be empty", 0, sessions.length);
+    service.removeSession(sessionId);
+    service.expireSession(sessionId);
+    session = service.createSession(sessionId);
+    assertNull("Session should be null, as cache is null", session);
+    service.addSession(null);
+    Map<String,String> attributes = service.getSession(sessionId);
+    assertNull("Attributes should be null, as cache is null", attributes);
+    service.updateSession(null);
+  }
+
+  @AfterClass
+  public static void cleanup(){
+      sessionService.stopInternal();
+  }
+}
\ No newline at end of file
diff --git a/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionUtilTest.java b/opendaylight/adsal/samples/clustersession/src/test/java/org/opendaylight/controller/clustersession/ClusterSessionUtilTest.java
new file mode 100644 (file)
index 0000000..563b2be
--- /dev/null
@@ -0,0 +1,156 @@
+package org.opendaylight.controller.clustersession;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.catalina.authenticator.Constants;
+import org.apache.catalina.authenticator.SavedRequest;
+import org.apache.catalina.realm.GenericPrincipal;
+import org.junit.Test;
+import org.opendaylight.controller.clustersession.impl.ClusterSessionServiceImpl;
+import org.opendaylight.controller.clustersession.service.ClusterSessionService;
+
+
+public class ClusterSessionUtilTest {
+
+  final String AUTH_TYPE = "FORM";
+  final String ADMIN = "admin";
+  final String REQUEST_URI = "/test";
+  final String BLANK = "";
+  final String HEADER_NAME = "ContentType";
+  final String HEADER_VALUE = "JSON";
+  final long creationTime = 54545454L;
+  final int interval = 0;
+  ClusterSessionManager manager = new ClusterSessionManager();
+  ClusterSessionService sessionService = new ClusterSessionServiceImpl(manager);
+
+  @Test
+  public void testNullSerializableClusterSession() {
+    ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(null);
+    assertEquals("Session data should be null for null session", null, sessionData);
+  }
+
+  @Test
+  public void testSerializableClusterSession() {
+    ClusterSession customSession = createClusterSesion();
+    ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(customSession);
+    assertEquals("Session authentication type not valid", AUTH_TYPE, sessionData.getAuthType());
+    assertEquals("Session username does not match", ADMIN, sessionData.getUserName());
+    assertEquals("Session password does not match", ADMIN, sessionData.getPassword());
+    assertEquals("Session prinicpal does not match", ADMIN, sessionData.getSession().getPrincipal().getName());
+  }
+
+  @Test
+  public void testNullDeserialzableclusterSession() {
+    ClusterSession session =  ClusterSessionUtil.getDeserializedSession(null, sessionService, manager);
+    assertEquals("Session should be null for null session data", null, session);
+  }
+
+  @Test
+  public void testDeserializableClusterSesion() {
+    ClusterSession customSession = createClusterSesion();
+    ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(customSession);
+    customSession = sessionData.getSession();
+    customSession.setAuthType(AUTH_TYPE);
+    customSession.setNote(Constants.FORM_PRINCIPAL_NOTE, BLANK);
+    customSession.setNote(Constants.FORM_REQUEST_NOTE, BLANK);
+    ClusterSession session = ClusterSessionUtil.getDeserializedSession(sessionData, sessionService, manager);
+    assertEquals("Session authentication type not valid", AUTH_TYPE, session.getAuthType());
+    assertEquals("prinicpal name is not valid", ADMIN, session.getPrincipal().getName());
+    SavedRequest savedRequest = (SavedRequest)session.getNote(Constants.FORM_REQUEST_NOTE);
+    assertEquals("saved request uri does not match", REQUEST_URI, savedRequest.getRequestURI());
+    assertEquals("saved request header does not match", HEADER_VALUE, savedRequest.getHeaderValues(HEADER_NAME).next());
+    assertEquals("saved request header does not match", Locale.ENGLISH, savedRequest.getLocales().next());
+    String username = (String)session.getNote(Constants.FORM_USERNAME);
+    assertEquals("username does not match", ADMIN, username);
+    String password = (String)session.getNote(Constants.FORM_PASSWORD);
+    assertEquals("password does not match", ADMIN, password);
+    assertEquals("session manager does not match", manager, session.getManager());
+    assertEquals("session creation time does not match", creationTime, session.getCreationTime());
+    assertEquals("session man inactive interval does not match", interval, session.getMaxInactiveInterval());
+    assertEquals("is session new does not match", true, session.isNew());
+    assertEquals("is session valid does not match", true, session.isValid());
+  }
+
+  @Test
+  public void testSerializationtoFile(){
+    ClusterSession customSession = createClusterSesion();
+    ClusterSessionData sessionData = ClusterSessionUtil.getSerializableSession(customSession);
+    try(
+        OutputStream file = new FileOutputStream("sessionData.ser");
+        OutputStream buffer = new BufferedOutputStream(file);
+        ObjectOutput output = new ObjectOutputStream(buffer);
+        ){
+      output.writeObject(sessionData);
+    }
+    catch(IOException ex){
+      fail("IO exception while serializing object to a file.");
+    }
+    try(
+        InputStream file = new FileInputStream("sessionData.ser");
+        InputStream buffer = new BufferedInputStream(file);
+        ObjectInput input = new ObjectInputStream (buffer);
+        ){
+      //deserialize the session
+      ClusterSessionData recovedSession = (ClusterSessionData)input.readObject();
+      //display its data
+      ClusterSession session = ClusterSessionUtil.getDeserializedSession(recovedSession, sessionService, manager);
+      assertEquals("Session authentication type not valid", AUTH_TYPE, session.getAuthType());
+      assertEquals("prinicpal name is not valid", ADMIN, session.getPrincipal().getName());
+      SavedRequest savedRequest = (SavedRequest)session.getNote(Constants.FORM_REQUEST_NOTE);
+      assertEquals("saved request uri is not valid", REQUEST_URI, savedRequest.getRequestURI());
+      assertEquals("saved request header does not match", HEADER_VALUE, savedRequest.getHeaderValues(HEADER_NAME).next());
+      assertEquals("saved request header does not match", Locale.ENGLISH, savedRequest.getLocales().next());
+      String username = (String)session.getNote(Constants.FORM_USERNAME);
+      assertEquals("username does not match", ADMIN, username);
+      String password = (String)session.getNote(Constants.FORM_PASSWORD);
+      assertEquals("password does not match", ADMIN, password);
+    }
+    catch(ClassNotFoundException ex){
+      fail("Exception in object deserialization from file");
+    }
+    catch(IOException ex){
+      fail("Exception in object deserialization from file");
+    }
+    File serializedFile = new File("sessionData.ser");
+    serializedFile.delete();
+  }
+
+  private ClusterSession createClusterSesion(){
+    ClusterSession clusterSession = new ClusterSession(manager, sessionService);
+    clusterSession.setAuthType(AUTH_TYPE);
+    clusterSession.setCreationTime(creationTime);
+    clusterSession.setMaxInactiveInterval(interval);
+    clusterSession.setNew(true);
+    clusterSession.setValid(true);
+    List<String> roles = new ArrayList<String>();
+    roles.add(ADMIN);
+    GenericPrincipal principal = new GenericPrincipal(ADMIN, ADMIN, roles);
+    clusterSession.setPrincipal(principal);
+    clusterSession.setNote(Constants.FORM_PRINCIPAL_NOTE, principal);
+    SavedRequest savedRequest = new SavedRequest();
+    savedRequest.setRequestURI(REQUEST_URI);
+    savedRequest.addHeader(HEADER_NAME, HEADER_VALUE);
+    savedRequest.addLocale(Locale.ENGLISH);
+    clusterSession.setNote(Constants.FORM_REQUEST_NOTE, savedRequest);
+    clusterSession.setNote(Constants.FORM_USERNAME, ADMIN);
+    clusterSession.setNote(Constants.FORM_PASSWORD, ADMIN);
+    return clusterSession;
+  }
+}
similarity index 98%
rename from opendaylight/samples/loadbalancer/pom.xml
rename to opendaylight/adsal/samples/loadbalancer/pom.xml
index a7b41096d7dc4d969d21f221f9c2db1799699c79..e1b480771b0b0f7813dc4dc7007bccdbdc1730e0 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>samples.loadbalancer</artifactId>
similarity index 98%
rename from opendaylight/samples/northbound/loadbalancer/pom.xml
rename to opendaylight/adsal/samples/northbound/loadbalancer/pom.xml
index 18aa4e1d62a35ca41f261114cf83170766d33b01..e63e992b3f541dcb190ae451fc622a1b52b3ee5a 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../../commons/opendaylight</relativePath>
+    <relativePath>../../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>samples.loadbalancer.northbound</artifactId>
similarity index 98%
rename from opendaylight/samples/simpleforwarding/pom.xml
rename to opendaylight/adsal/samples/simpleforwarding/pom.xml
index 50410f85afc288b020c421a82af9e75c01592db5..4d7af2b8fd8a5079008d088dcb8ed6f1aa2f5930 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>samples.simpleforwarding</artifactId>
similarity index 97%
rename from opendaylight/security/pom.xml
rename to opendaylight/adsal/security/pom.xml
index 49889de7f192a6336d9e9c31d4fc7a5453f9de52..436fda24da491fb6cdb4e571c0c552e246651089 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../commons/opendaylight</relativePath>
+    <relativePath>../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>security</artifactId>
similarity index 96%
rename from opendaylight/statisticsmanager/api/pom.xml
rename to opendaylight/adsal/statisticsmanager/api/pom.xml
index 23edfa399131dd4cf579d4466edf54b72363c00d..00e23e0f5a7473a4cea8b8e20182badb542a9b76 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>statisticsmanager</artifactId>
similarity index 98%
rename from opendaylight/statisticsmanager/implementation/pom.xml
rename to opendaylight/adsal/statisticsmanager/implementation/pom.xml
index 08db43a0f04f9e407b86f0eaa48896a9ed81d0f1..aa009fbf238f039cd560e93ddb54c3b7daaf46c9 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>statisticsmanager.implementation</artifactId>
similarity index 95%
rename from opendaylight/statisticsmanager/integrationtest/pom.xml
rename to opendaylight/adsal/statisticsmanager/integrationtest/pom.xml
index 22696b71e6e77660425f092832b3d84a8d51f112..857921f14b9fbd90cbdcdf9160816c3060845253 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>statisticsmanager.integrationtest</artifactId>
   <version>0.5.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
   <dependencies>
     <dependency>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 98%
rename from opendaylight/switchmanager/api/pom.xml
rename to opendaylight/adsal/switchmanager/api/pom.xml
index a29341ee6f7c203cf7e4653bf08f3142fe6977c8..3c23e29131a4017b649dc7d2356f137c15a2c416 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>switchmanager</artifactId>
similarity index 98%
rename from opendaylight/switchmanager/implementation/pom.xml
rename to opendaylight/adsal/switchmanager/implementation/pom.xml
index fe7a0c0bcb407f42c5e975974bd6817e472c6b88..911d5dd71f54c879707d061ac4df2a5d588f1c22 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>switchmanager.implementation</artifactId>
similarity index 94%
rename from opendaylight/switchmanager/integrationtest/pom.xml
rename to opendaylight/adsal/switchmanager/integrationtest/pom.xml
index 708ac32763b3f12e394809ec054c89a5ffa3a75d..158cd2ca8229e974a8f4b93ded4a670e92806fa7 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>switchmanager.integrationtest</artifactId>
   <version>0.5.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementation/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
 
   <dependencies>
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 96%
rename from opendaylight/topologymanager/implementation/pom.xml
rename to opendaylight/adsal/topologymanager/implementation/pom.xml
index 430dfca74db3f50394f156a6dcb27f59bf098c3b..c7a6444e1ee5b327792bd20fd14d9d3f11d9cf58 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>topologymanager</artifactId>
@@ -44,7 +44,6 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
-        <version>${bundle.plugin.version}</version>
         <extensions>true</extensions>
         <configuration>
           <instructions>
similarity index 93%
rename from opendaylight/topologymanager/integrationtest/pom.xml
rename to opendaylight/adsal/topologymanager/integrationtest/pom.xml
index ce6422c8c1d6dbafd3223957d76410d549c48f69..028e775ee0b3f140a2b4e95c3aede6ee35253519 100644 (file)
@@ -11,9 +11,9 @@
   <artifactId>topologymanager.integrationtest</artifactId>
   <version>0.5.0-SNAPSHOT</version>
   <properties>
-    <sonar.jacoco.itReportPath>../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
+    <sonar.jacoco.itReportPath>../../implementaiton/target/jacoco-it.exec</sonar.jacoco.itReportPath>
     <!-- Sonar jacoco plugin to get integration test coverage info -->
-    <sonar.jacoco.reportPath>../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
+    <sonar.jacoco.reportPath>../../implementation/target/jacoco.exec</sonar.jacoco.reportPath>
   </properties>
   <dependencies>
     <dependency>
@@ -92,7 +92,7 @@
         <groupId>org.jacoco</groupId>
         <artifactId>jacoco-maven-plugin</artifactId>
         <configuration>
-          <destFile>../implementation/target/jacoco-it.exec</destFile>
+          <destFile>../../implementation/target/jacoco-it.exec</destFile>
           <includes>
             <include>org.opendaylight.controller.*</include>
           </includes>
similarity index 90%
rename from opendaylight/topologymanager/shell/pom.xml
rename to opendaylight/adsal/topologymanager/shell/pom.xml
index 2de8c5c26c6c05cbac6d8400853393107048fb99..a5b21f62244b092738fa031264233acf869f0979 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
   <artifactId>topologymanager.shell</artifactId>
   <version>${topologymanager.shell.version}</version>
@@ -27,7 +27,6 @@
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>topologymanager</artifactId>
-      <version>${topologymanager.version}</version>
     </dependency>
   </dependencies>
 
@@ -36,7 +35,6 @@
       <plugin>
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
-        <version>${bundle.plugin.version}</version>
         <configuration>
           <instructions>
             <Import-Package>org.apache.felix.service.command,
similarity index 98%
rename from opendaylight/usermanager/api/pom.xml
rename to opendaylight/adsal/usermanager/api/pom.xml
index e21337242aa5693f95e04882d2bd1d955cebfb80..76f293b1976e30109f309b3b9c504b70c29de124 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>usermanager</artifactId>
similarity index 98%
rename from opendaylight/usermanager/implementation/pom.xml
rename to opendaylight/adsal/usermanager/implementation/pom.xml
index d973f670b207b0a36a4d98e19422e2d497aa5907..fd8a3978376fc7b0fa19d49062e488664d736401 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>usermanager.implementation</artifactId>
similarity index 95%
rename from opendaylight/web/brandfragment/pom.xml
rename to opendaylight/adsal/web/brandfragment/pom.xml
index 25f62f059e0b229c5879faf7227b073bde24565c..0c76146c50f4cfb5c1f3a518701ca46f2e9ba1dc 100644 (file)
@@ -7,7 +7,7 @@
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>commons.opendaylight</artifactId>
         <version>1.5.0-SNAPSHOT</version>
-        <relativePath>../../commons/opendaylight</relativePath>
+        <relativePath>../../../commons/opendaylight</relativePath>
     </parent>
   <scm>
     <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
similarity index 98%
rename from opendaylight/web/devices/pom.xml
rename to opendaylight/adsal/web/devices/pom.xml
index 8e7c9248ddc4b90d87784b1ba226f8637967f48a..062812b867dd948d4224b75370bb504f244713dd 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>devices.web</artifactId>
similarity index 98%
rename from opendaylight/web/flows/pom.xml
rename to opendaylight/adsal/web/flows/pom.xml
index 99238c6aad52f2d769258f57d46f04618db66d48..4b1d54781a90c3778e504904138e1f43bf9b5497 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>flows.web</artifactId>
similarity index 94%
rename from opendaylight/web/osgi-brandfragment/pom.xml
rename to opendaylight/adsal/web/osgi-brandfragment/pom.xml
index adea8ace621b2b8cf987c4dd75b3bb9324ac018b..78ad3f24c7a219c060d78e1946d72fa415a9bd4e 100644 (file)
@@ -6,7 +6,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>osgi-brandfragment.web</artifactId>
similarity index 98%
rename from opendaylight/web/root/pom.xml
rename to opendaylight/adsal/web/root/pom.xml
index cd82f8b07fbeadcc09f5265fac5666da232fcad2..faede10e2d776800dc90bede5ffcc212304c7625 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>web</artifactId>
similarity index 98%
rename from opendaylight/web/topology/pom.xml
rename to opendaylight/adsal/web/topology/pom.xml
index 24b53db7676abb038391ac67f5242326ea77b22a..0afe038086d2c8aa34af4f328c75dcb9d1b64754 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>topology.web</artifactId>
similarity index 98%
rename from opendaylight/web/troubleshoot/pom.xml
rename to opendaylight/adsal/web/troubleshoot/pom.xml
index 14817bd186cfe8acafdf87ec212605e5577fdb55..1ef5de11c4f1338c68441e30f2dda4e1240dc92b 100644 (file)
@@ -5,7 +5,7 @@
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>commons.opendaylight</artifactId>
     <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
+    <relativePath>../../../commons/opendaylight</relativePath>
   </parent>
 
   <artifactId>troubleshoot.web</artifactId>
index 07f6354b19d568a6a0440183f6bc4367b1a91484..6276deab78c8183a563e591af1e85b541d2974dd 100644 (file)
@@ -24,14 +24,11 @@ public class UrlMatcherTest {
         final String jspFilter = "jspFilter";
         final String exactMatch = "/somePath";
         final String prefixFilter = "prefixFilter";
-        LinkedHashMap<String, String> patternMap = new LinkedHashMap<String, String>() {
-            {
-                put(exactMatch, exactMatchFilter);
-                put("/*", defaultFilter);
-                put("*.jsp", jspFilter);
-                put("/foo/*", prefixFilter);
-            }
-        };
+        LinkedHashMap<String, String> patternMap = new LinkedHashMap<>();
+        patternMap.put(exactMatch, exactMatchFilter);
+        patternMap.put("/*", defaultFilter);
+        patternMap.put("*.jsp", jspFilter);
+        patternMap.put("/foo/*", prefixFilter);
         urlMatcher = new UrlMatcher<>(patternMap);
         assertMatches("/abc", defaultFilter);
         assertMatches(exactMatch, exactMatchFilter, defaultFilter);
index ae37f4ae2aaed13ebbef886d17bca420dc9d92eb..f61094ab48c501beb2a8d77b55faf06217d44a0f 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <failsOnError>true</failsOnError>
           <configLocation>controller/checkstyle.xml</configLocation>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>${surefire.version}</version>
         <configuration>
           <argLine>${testvm.argLine} ${jacoco.agent.ut.arg}</argLine>
           <systemProperties>
index 63a37de0c3783179ffaaf33ab535281dcab62290..c4a4192cba796340cc845d496060dba7d0f268d5 100644 (file)
@@ -213,7 +213,7 @@ public abstract class AbstractConfigTest extends
 
             Object serviceTypeRaw = args[0];
             Object serviceInstance = args[1];
-            Dictionary<String, ?> props = (Dictionary) args[2];
+            Dictionary<String, ?> props = (Dictionary<String, ?>) args[2];
 
             if (serviceTypeRaw instanceof Class) {
                 Class<?> serviceType = (Class<?>) serviceTypeRaw;
index 3d4757b926f0fad6900d0c673ebd562c2afc9085..2c60310e8a0d5d5063cfcc56999f174d1d8aebba 100644 (file)
@@ -12,7 +12,7 @@ import java.util.Map;
 import org.opendaylight.controller.config.persist.api.PropertiesProvider;
 
 public class PropertiesProviderTest implements PropertiesProvider {
-    private final Map<String,String> properties = new HashMap();
+    private final Map<String,String> properties = new HashMap<>();
 
     public void addProperty(String key,String value){
         properties.put(key,value);
index 1837bac2664bdfa9a96feb7f25435ac418d37dda..b72d85c11828ea26b26b781ddcc53a747e711d55 100644 (file)
@@ -95,7 +95,7 @@ public class SchemaContextTest extends AbstractYangTest {
             }
         }
         assertEquals("Expected identities not found " + copyOfExpectedNames,
-                Collections.EMPTY_MAP, copyOfExpectedNames);
+                Collections.emptyMap(), copyOfExpectedNames);
     }
 
     @Test
index 72eaf005add191a82a08c9f4f81db0b4fc11c0ba..a66a502a70e540b237799cc348da0b8fe0ef67ed 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
         </configuration>
index 3a2f4b058020f86c3f20faaa5f5e61c4a558dfbb..e44b569759d3b611d35fa730778ca7a16d565a00 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
         </configuration>
index f6ecb44fa172f02fd4cd5f34824325ad30629ef8..cd02759f5a13e4573f41c06ca0f0c34c8e762919 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>${checkstyle.version}</version>
         <configuration>
           <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
         </configuration>
         <dependency>
           <groupId>commons-lang</groupId>
           <artifactId>commons-lang</artifactId>
-          <version>2.4</version>
         </dependency>
         <dependency>
           <groupId>org.apache.servicemix.bundles</groupId>
         <dependency>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>sal-inmemory-datastore</artifactId>
-          <version>1.2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
           <groupId>org.opendaylight.controller</groupId>
         <dependency>
           <groupId>org.opendaylight.controller.model</groupId>
           <artifactId>model-topology</artifactId>
-          <version>1.2.0-SNAPSHOT</version>
         </dependency>
 
         <!-- toaster example I'm pretty sure we should trim -->
         <dependency>
           <groupId>org.opendaylight.controller.samples</groupId>
           <artifactId>sample-toaster</artifactId>
-          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
           <groupId>org.opendaylight.controller.samples</groupId>
           <artifactId>sample-toaster-consumer</artifactId>
-          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
           <groupId>org.opendaylight.controller.samples</groupId>
           <artifactId>sample-toaster-provider</artifactId>
-          <version>${mdsal.version}</version>
         </dependency>
         <dependency>
           <groupId>org.apache.sshd</groupId>
         <dependency>
           <groupId>org.opendaylight.yangtools.thirdparty</groupId>
           <artifactId>antlr4-runtime-osgi-nohead</artifactId>
-          <version>4.0</version>
         </dependency>
         <dependency>
           <groupId>org.opendaylight.yangtools.thirdparty</groupId>
           <artifactId>xtend-lib-osgi</artifactId>
-          <version>2.4.3</version>
         </dependency>
         <dependency>
           <groupId>org.openexi</groupId>
diff --git a/opendaylight/distribution/p2site/opendayligh-target-platform-p2site.launch b/opendaylight/distribution/p2site/opendayligh-target-platform-p2site.launch
deleted file mode 100644 (file)
index d6e307f..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
-<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
-<stringAttribute key="M2_GOALS" value="clean org.reficio:p2-maven-plugin:site"/>
-<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
-<booleanAttribute key="M2_OFFLINE" value="false"/>
-<stringAttribute key="M2_PROFILES" value=""/>
-<listAttribute key="M2_PROPERTIES"/>
-<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
-<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
-<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
-<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="true"/>
-<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_id" value="org.eclipse.m2e.launching.MavenSourceLocator"/>
-<stringAttribute key="org.eclipse.debug.core.source_locator_memento" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;sourceLookupDirector&gt;&#10;&lt;sourceContainers duplicates=&quot;false&quot;/&gt;&#10;&lt;/sourceLookupDirector&gt;&#10;"/>
-<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
-<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
-<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
-</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx768m -XX:MaxPermSize=256m"/>
-<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/distribution.p2site}"/>
-</launchConfiguration>
diff --git a/opendaylight/distribution/p2site/pom.xml b/opendaylight/distribution/p2site/pom.xml
deleted file mode 100644 (file)
index 5a66a61..0000000
+++ /dev/null
@@ -1,454 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <modelVersion>4.0.0</modelVersion>
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
-
-  <!-- p2site distribution is created with the intention of providing a -->
-  <!-- target platform that could be use for PDE to create an OSGi -->
-  <!-- launcher, this should allow to enable the hot code replacement on -->
-  <!-- the controller. -->
-
-  <parent>
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>commons.opendaylight</artifactId>
-    <version>1.5.0-SNAPSHOT</version>
-    <relativePath>../../commons/opendaylight</relativePath>
-  </parent>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
-  </scm>
-
-  <pluginRepositories>
-    <pluginRepository>
-      <id>reficio</id>
-      <url>${nexusproxy}/repositories/reficioplugin/</url>
-    </pluginRepository>
-  </pluginRepositories>
-
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>distribution.p2site</artifactId>
-  <version>0.2.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.reficio</groupId>
-        <artifactId>p2-maven-plugin</artifactId>
-        <version>1.0.0</version>
-        <executions>
-          <execution>
-            <id>default-cli</id>
-            <configuration>
-              <pedantic>true</pedantic>
-              <artifacts>
-                <artfiact>
-                  <id>org.slf4j:jcl-over-slf4j:${slf4j.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.slf4j:slf4j-api:${slf4j.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.slf4j:log4j-over-slf4j:${slf4j.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>ch.qos.logback:logback-core:${logback.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>ch.qos.logback:logback-classic:${logback.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.codehaus.jackson:jackson-mapper-asl:${jackson.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.codehaus.jackson:jackson-core-asl:${jackson.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.codehaus.jackson:jackson-jaxrs:${jackson.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.codehaus.jettison:jettison:1.3.3</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>commons-io:commons-io:2.4</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>commons-fileupload:commons-fileupload:1.2.2</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:javax.servlet:3.0.0.v201112011016</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:javax.servlet.jsp:2.2.0.v201112011158</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.equinox.ds:1.4.0.v20120522-1841</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.equinox.util:1.0.400.v20120522-2049</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.osgi.services:3.3.100.v20120522-1822</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.osgi:3.8.1.v20120830-144521</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.apache.felix.gogo.command:0.8.0.v201108120515</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.apache.felix.gogo.runtime:0.8.0.v201108120515</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.apache.felix.gogo.shell:0.8.0.v201110170705</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.equinox.cm:1.0.400.v20120522-1841</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.equinox.console:1.0.0.v20120522-1841</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>equinoxSDK381:org.eclipse.equinox.launcher:1.3.0.v20120522-1813</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.gemini.web.core:${geminiweb.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.gemini.web.extender:${geminiweb.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.gemini.web.tomcat:${geminiweb.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.kernel.equinox.extensions:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.common:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.io:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.math:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.osgi:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.osgi.manifest:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>geminiweb:org.eclipse.virgo.util.parser.manifest:${virgo.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.apache.felix:org.apache.felix.dependencymanager:3.1.0</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.apache.felix:org.apache.felix.dependencymanager.shell:3.0.1</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>com.google.code.gson:gson:2.1</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:1.0.1.Final</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.apache.commons:commons-lang3:3.1</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>virgomirror:org.eclipse.jdt.core.compiler.batch:3.8.0.I20120518-2145</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>eclipselink:javax.persistence:2.0.4.v201112161009</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.activation:1.1.0.v201211130549</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.annotation:1.1.0.v201209060031</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.ejb:3.1.1.v201204261316</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.el:2.2.0.v201108011116</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.mail.glassfish:1.4.1.v201108011116</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.xml.rpc:1.1.0.v201005080400</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.catalina:7.0.32.v201211201336</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.catalina.ha:7.0.32.v201211201952</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.catalina.tribes:7.0.32.v201211201952</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.coyote:7.0.32.v201211201952</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.el:7.0.32.v201211081135</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.jasper:7.0.32.v201211201952</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.juli.extras:7.0.32.v201211081135</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.tomcat.api:7.0.32.v201211081135</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:org.apache.tomcat.util:7.0.32.v201211201952</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.servlet.jsp.jstl:1.2.0.v201105211821</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>orbit:javax.servlet.jsp.jstl.impl:1.2.0.v201210211230</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.asm:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.aop:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.context:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.context.support:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.core:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.beans:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.expression:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.web:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.aopalliance:com.springsource.org.aopalliance:1.0.0</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.web.servlet:${spring.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework.security:spring-security-config:${spring-security.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework.security:spring-security-core:${spring-security.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework.security:spring-security-web:${spring-security.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework.security:spring-security-taglibs:${spring-security.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.springframework:org.springframework.transaction:${spring-security.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>org.ow2.chameleon.management:chameleon-mbeans:1.0.0</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>com.sun.jersey:jersey-core:${jersey.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>com.sun.jersey:jersey-server:${jersey.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>com.sun.jersey:jersey-client:${jersey.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-                <artfiact>
-                  <id>com.sun.jersey:jersey-json:${jersey.version}</id>
-                  <transitive>false</transitive>
-                  <override>false</override>
-                </artfiact>
-              </artifacts>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>jetty-maven-plugin</artifactId>
-        <version>8.1.5.v20120716</version>
-        <configuration>
-          <scanIntervalSeconds>10</scanIntervalSeconds>
-          <webAppSourceDirectory>${basedir}/target/repository/</webAppSourceDirectory>
-          <webApp>
-            <contextPath>/site</contextPath>
-          </webApp>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-</project>
index b14bfd429c4d8ee8121cabc00f70e69ff34e3113..ec184ad1013a34bbc4b8660880a37abdbfa9c5f8 100644 (file)
@@ -32,7 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.No
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
-import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
 import org.slf4j.Logger;
@@ -112,10 +111,10 @@ class NodeChangeCommiter implements OpendaylightInventoryListener {
                 InstanceIdentifierBuilder<Node> builder = ((InstanceIdentifier<Node>) ref.getValue()).builder();
                 InstanceIdentifierBuilder<FlowCapableNode> augmentation = builder.augmentation(FlowCapableNode.class);
                 final InstanceIdentifier<FlowCapableNode> path = augmentation.build();
-                CheckedFuture readFuture = tx.read(LogicalDatastoreType.OPERATIONAL, path);
-                Futures.addCallback(readFuture, new FutureCallback<Optional<? extends DataObject>>() {
+                CheckedFuture<Optional<FlowCapableNode>, ?> readFuture = tx.read(LogicalDatastoreType.OPERATIONAL, path);
+                Futures.addCallback(readFuture, new FutureCallback<Optional<FlowCapableNode>>() {
                     @Override
-                    public void onSuccess(Optional<? extends DataObject> optional) {
+                    public void onSuccess(Optional<FlowCapableNode> optional) {
                         enqueueWriteNodeDataTx(node, flowNode, path);
                         if (!optional.isPresent()) {
                             enqueuePutTable0Tx(ref);
index 53353cded17e3abc57f21c3a3737b09cebb9dede..4b6091b4294f7ecd2a5ef103d1729440138f5193 100644 (file)
@@ -13,7 +13,6 @@
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-clustering-commons</artifactId>
-      <version>1.2.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
@@ -81,7 +80,6 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
 
index 2560f165882260bac63ce232b39218621f5c0015..59bec915118670d92af35553e79f688936288e5c 100644 (file)
@@ -29,6 +29,7 @@ public class ClientActor extends UntypedActor {
 
     public static Props props(final ActorRef target){
         return Props.create(new Creator<ClientActor>(){
+            private static final long serialVersionUID = 1L;
 
             @Override public ClientActor create() throws Exception {
                 return new ClientActor(target);
index 2437bb4b7d381ff34a58138a14a7723ee7289a64..8e4a44cf20f7a5b9b6474424ccba8e4d99e1dee3 100644 (file)
@@ -52,6 +52,7 @@ public class ExampleActor extends RaftActor {
     public static Props props(final String id, final Map<String, String> peerAddresses,
         final Optional<ConfigParams> configParams){
         return Props.create(new Creator<ExampleActor>(){
+            private static final long serialVersionUID = 1L;
 
             @Override public ExampleActor create() throws Exception {
                 return new ExampleActor(id, peerAddresses, configParams);
@@ -118,12 +119,12 @@ public class ExampleActor extends RaftActor {
     @Override protected void applySnapshot(final ByteString snapshot) {
         state.clear();
         try {
-            state.putAll((HashMap) toObject(snapshot));
+            state.putAll((Map<String, String>) toObject(snapshot));
         } catch (Exception e) {
            LOG.error(e, "Exception in applying snapshot");
         }
         if(LOG.isDebugEnabled()) {
-            LOG.debug("Snapshot applied to state : {}", ((HashMap) state).size());
+            LOG.debug("Snapshot applied to state : {}", ((Map<?, ?>) state).size());
         }
     }
 
index db3e683130952ec9baeb785ec2feecd04b89a8a0..e0873cc7bae06159f5644f5cda370b1ada78275b 100644 (file)
@@ -18,6 +18,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class KeyValue extends Payload implements Serializable {
+    private static final long serialVersionUID = 1L;
     private String key;
     private String value;
 
index 9b2a2e9e3bad31b0e4982e754bf001b68c5a1163..63c48ba703b21c66d8722d0d356754d66a05d2d6 100644 (file)
@@ -11,4 +11,5 @@ package org.opendaylight.controller.cluster.example.messages;
 import java.io.Serializable;
 
 public class KeyValueSaved implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index a5105f041af7622d6f97b1c6718c8d94741f4907..c888d3f996b9a387cfc63ac45aad262078883521 100644 (file)
@@ -11,4 +11,5 @@ package org.opendaylight.controller.cluster.example.messages;
 import java.io.Serializable;
 
 public class PrintRole implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index 20ed142d76c81969262062c9391f16d9f4c7e1a9..540f3768a6846bd6a97b6192c92311de7fcea51c 100644 (file)
@@ -11,4 +11,5 @@ package org.opendaylight.controller.cluster.example.messages;
 import java.io.Serializable;
 
 public class PrintState implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index 617bb7e53407420b0963e932ab624a85bc98c636..042b9fb56995d259d99a1559d4a3e3d5389fdba3 100644 (file)
@@ -739,9 +739,9 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
     }
 
     static class DeleteEntries implements Serializable {
+        private static final long serialVersionUID = 1L;
         private final int fromIndex;
 
-
         public DeleteEntries(int fromIndex) {
             this.fromIndex = fromIndex;
         }
@@ -792,6 +792,7 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
     }
 
     static class UpdateElectionTerm implements Serializable {
+        private static final long serialVersionUID = 1L;
         private final long currentTerm;
         private final String votedFor;
 
index fc2ec5cff99084f0d32ee9adceb0434f47ddf1f2..ceb5633d4d2deaedb8029a4eb9e7ee3864f68035 100644 (file)
@@ -14,6 +14,7 @@ import java.io.Serializable;
 
 public class ReplicatedLogImplEntry implements ReplicatedLogEntry,
     Serializable {
+    private static final long serialVersionUID = 1L;
 
     private final long index;
     private final long term;
index 8e0fcca9f7ca22a5077b874184332f79a78c21e3..77bf10370184894d6a510990e08fb1a8bc785a84 100644 (file)
@@ -12,6 +12,7 @@ import java.util.List;
 
 
 public class Snapshot implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final byte[] state;
     private final List<ReplicatedLogEntry> unAppliedEntries;
     private final long lastIndex;
index af3c4fd87d6e01d2f455833185ef9c98451be8cf..c395915a0fb5763ab733774b5a4680c97553afe0 100644 (file)
@@ -20,6 +20,7 @@ import java.io.Serializable;
  *
  */
 public class ApplyLogEntries implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final int toIndex;
 
     public ApplyLogEntries(int toIndex) {
index c356804223c696e83f10c73e17da35d63d419c85..54ee02a057ec1805d70e1a15cc264ab3eb0ea956 100644 (file)
@@ -16,6 +16,7 @@ import java.io.Serializable;
  * Internal message, issued by follower to its actor
  */
 public class ApplySnapshot implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final Snapshot snapshot;
 
     public ApplySnapshot(Snapshot snapshot) {
index b904335be3237988ca1366d62ce6c5acce895945..0a7a6328805a82f0d26d6cb9c1124cbcf75838c6 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
 import java.io.Serializable;
 
 public class ApplyState implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final ActorRef clientActor;
     private final String identifier;
     private final ReplicatedLogEntry replicatedLogEntry;
index 07e376fca329185bef9840d515a5c7eefce2adbb..6335e3272e0833a989e70c2a3984a67d05d3bed4 100644 (file)
@@ -14,4 +14,5 @@ import java.io.Serializable;
  * Message sent to commit an entry to the log
  */
 public class CommitEntry implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index a844849f150ef30cbba16fff31fb72a46371d55d..84fa8b759014427f471b9353931eaa82e969ada1 100644 (file)
@@ -11,4 +11,5 @@ package org.opendaylight.controller.cluster.raft.base.messages;
 import java.io.Serializable;
 
 public class ElectionTimeout implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index 6a62817e90dd05f5f2761e1e7e32ab508f41a9c3..68ecc1289b2f90916fb5d77a5ea5be0f8f7bcdef 100644 (file)
@@ -14,4 +14,5 @@ import java.io.Serializable;
  * Message sent to Persist an entry into the transaction journal
  */
 public class PersistEntry implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index 9bc737a0e3c26b0605bfdb43c64fffad6f4af4cf..611c6eaf1f38ba9c8e2c43fdfa8b5325d9f56760 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
 import java.io.Serializable;
 
 public class Replicate implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final ActorRef clientActor;
     private final String identifier;
     private final ReplicatedLogEntry replicatedLogEntry;
index 861f5ee71531637327bbd5ecc2102016f893b64c..7b7f08585626391bfe71c38df28d6f881b8b65c9 100644 (file)
@@ -15,4 +15,5 @@ import java.io.Serializable;
  * it and use it to save it's state
  */
 public class SaveSnapshot implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index 3c8c845f5dbb9aa7cf71c9add1d5ec16753285df..7eb7522b85029c7c3000d77498020d67a0171079 100644 (file)
@@ -17,4 +17,5 @@ import java.io.Serializable;
  * Typically the Leader to itself on a schedule
  */
 public class SendHeartBeat implements Serializable {
+    private static final long serialVersionUID = 1L;
 }
index ef104e7f58527a4be47bda4351e69f00e320786c..d83362b58081c0e4c4576a848bf10ca29d8fc7da 100644 (file)
@@ -70,7 +70,7 @@ import java.util.concurrent.atomic.AtomicLong;
 public class Leader extends AbstractRaftActorBehavior {
 
 
-    protected final Map<String, FollowerLogInformation> followerToLog = new HashMap();
+    protected final Map<String, FollowerLogInformation> followerToLog = new HashMap<>();
     protected final Map<String, FollowerToSnapshot> mapFollowerToSnapshot = new HashMap<>();
 
     private final Set<String> followers;
index 98dd0d46531cadef35f8832a89237a1a95ae44fd..eebbde3393bfd75da5094a79eb77f3c1f1753d96 100644 (file)
@@ -11,5 +11,6 @@ package org.opendaylight.controller.cluster.raft.client.messages;
 import java.io.Serializable;
 
 public class FindLeader implements Serializable{
+    private static final long serialVersionUID = 1L;
 
 }
index 64c73508960144ab3f0095ba3af34c897217c336..8b2e45aa0601b3d62624f4bd3831042af36e6246 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.controller.cluster.raft.client.messages;
 import java.io.Serializable;
 
 public class FindLeaderReply implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final String leaderActor;
 
     public FindLeaderReply(String leaderActor) {
index 33d8a6868680e03e09155332fc89b6089231bd19..0122d45c3095962161712643e6c3c4fb0fbf6e7b 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.raft.messages;
 
 public class AbstractRaftRPC implements RaftRPC {
+    private static final long serialVersionUID = 1L;
     // term
     protected long term;
 
index 5149cf9f34f5f66873feb4695b8939c36aa81d6b..e5aebaa6be9f01e4dd46bd7a38db2e210fd39773 100644 (file)
@@ -24,10 +24,10 @@ import java.util.Map;
  * heartbeat (§5.2).
  */
 public class AppendEntries extends AbstractRaftRPC {
-
-    public static final Class SERIALIZABLE_CLASS = AppendEntriesMessages.AppendEntries.class;
+    public static final Class<AppendEntriesMessages.AppendEntries> SERIALIZABLE_CLASS = AppendEntriesMessages.AppendEntries.class;
 
     private static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger(AppendEntries.class);
+    private static final long serialVersionUID = 1L;
 
     // So that follower can redirect clients
     private final String leaderId;
index b923baa7168df3d34ae7064c722222b66bbf9c51..a782eda5659d9389606ea4e7606a5f61dd949c07 100644 (file)
@@ -12,6 +12,7 @@ package org.opendaylight.controller.cluster.raft.messages;
  * Reply for the AppendEntriesRpc message
  */
 public class AppendEntriesReply extends AbstractRaftRPC {
+    private static final long serialVersionUID = 1L;
 
     // true if follower contained entry matching
     // prevLogIndex and prevLogTerm
index c084cba82210823ada7f79a0edb35472ec6ed326..3c4e8117c798502d7f894709df052acb46df6c53 100644 (file)
@@ -13,7 +13,8 @@ import org.opendaylight.controller.protobuff.messages.cluster.raft.InstallSnapsh
 
 public class InstallSnapshot extends AbstractRaftRPC {
 
-    public static final Class SERIALIZABLE_CLASS = InstallSnapshotMessages.InstallSnapshot.class;
+    public static final Class<InstallSnapshotMessages.InstallSnapshot> SERIALIZABLE_CLASS = InstallSnapshotMessages.InstallSnapshot.class;
+    private static final long serialVersionUID = 1L;
 
     private final String leaderId;
     private final long lastIncludedIndex;
index d293a47c8efdd1521afa4652f7a6a100e4c692ab..71e7ecc189fc882eaa0917b19af99376ed05f1b7 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.raft.messages;
 
 public class InstallSnapshotReply extends AbstractRaftRPC {
+    private static final long serialVersionUID = 1L;
 
     // The followerId - this will be used to figure out which follower is
     // responding
index 6ef2a06285fedb85997f79b3763d367d46ceb663..8321d0c25bcecce32617c55fe652c2b7be189541 100644 (file)
@@ -12,6 +12,7 @@ package org.opendaylight.controller.cluster.raft.messages;
  * Invoked by candidates to gather votes (§5.2).
  */
 public class RequestVote extends AbstractRaftRPC {
+    private static final long serialVersionUID = 1L;
 
     // candidate requesting vote
     private String candidateId;
index df80b4e5e24e34f0d9d4a3017d7dbfdea1b181ea..da3ba5c39f6989b86c1f76b7830d2c0426302ddb 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.raft.messages;
 
 public class RequestVoteReply extends AbstractRaftRPC {
+    private static final long serialVersionUID = 1L;
 
     // true means candidate received vot
     private final boolean voteGranted;
index 0d5f644b3db2e559dbd22a318c9f7dd067e7cb2f..562ca213a950123d876668fca5c47da4ea031995 100644 (file)
@@ -33,7 +33,7 @@ public class MockRaftActorContext implements RaftActorContext {
     private long lastApplied = 0;
     private final ElectionTerm electionTerm;
     private ReplicatedLog replicatedLog;
-    private Map<String, String> peerAddresses = new HashMap();
+    private Map<String, String> peerAddresses = new HashMap<>();
     private ConfigParams configParams;
 
     public MockRaftActorContext(){
@@ -198,6 +198,7 @@ public class MockRaftActorContext implements RaftActorContext {
     }
 
     public static class MockPayload extends Payload implements Serializable {
+        private static final long serialVersionUID = 1L;
         private String value = "";
 
         public MockPayload(){
@@ -231,6 +232,7 @@ public class MockRaftActorContext implements RaftActorContext {
     }
 
     public static class MockReplicatedLogEntry implements ReplicatedLogEntry, Serializable {
+        private static final long serialVersionUID = 1L;
 
         private final long term;
         private final long index;
index 87e40f236cf5c6dfee6e03ea711d61d342d9b345..9eb2fb757bd2da0c6b2ce48ebbfeb72471ef48c1 100644 (file)
@@ -85,6 +85,7 @@ public class RaftActorTest extends AbstractActorTest {
         private final RaftActor delegate;
 
         public static final class MockRaftActorCreator implements Creator<MockRaftActor> {
+            private static final long serialVersionUID = 1L;
             private final Map<String, String> peerAddresses;
             private final String id;
             private final Optional<ConfigParams> config;
@@ -176,7 +177,7 @@ public class RaftActorTest extends AbstractActorTest {
                 Object data = toObject(snapshot);
                 System.out.println("!!!!!applyRecoverySnapshot: "+data);
                 if (data instanceof List) {
-                    state.addAll((List) data);
+                    state.addAll((List<?>) data);
                 }
             } catch (Exception e) {
                 e.printStackTrace();
@@ -237,7 +238,7 @@ public class RaftActorTest extends AbstractActorTest {
             super(actorSystem);
 
             raftActor = this.getSystem().actorOf(MockRaftActor.props(actorName,
-                    Collections.EMPTY_MAP, Optional.<ConfigParams>absent()), actorName);
+                    Collections.<String,String>emptyMap(), Optional.<ConfigParams>absent()), actorName);
 
         }
 
@@ -246,7 +247,7 @@ public class RaftActorTest extends AbstractActorTest {
             return raftActor;
         }
 
-        public boolean waitForLogMessage(final Class logEventClass, String message){
+        public boolean waitForLogMessage(final Class<?> logEventClass, String message){
             // Wait for a specific log message to show up
             return
                 new JavaTestKit.EventFilter<Boolean>(logEventClass
@@ -314,7 +315,7 @@ public class RaftActorTest extends AbstractActorTest {
             config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
 
             ActorRef followerActor = getSystem().actorOf(MockRaftActor.props(persistenceId,
-                    Collections.EMPTY_MAP, Optional.<ConfigParams>of(config)), persistenceId);
+                    Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config)), persistenceId);
 
             watch(followerActor);
 
@@ -368,7 +369,7 @@ public class RaftActorTest extends AbstractActorTest {
 
             //reinstate the actor
             TestActorRef<MockRaftActor> ref = TestActorRef.create(getSystem(),
-                    MockRaftActor.props(persistenceId, Collections.EMPTY_MAP,
+                    MockRaftActor.props(persistenceId, Collections.<String,String>emptyMap(),
                             Optional.<ConfigParams>of(config)));
 
             ref.underlyingActor().waitForRecoveryComplete();
@@ -401,7 +402,7 @@ public class RaftActorTest extends AbstractActorTest {
                 config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config)), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config)), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -470,7 +471,7 @@ public class RaftActorTest extends AbstractActorTest {
                 config.setHeartBeatInterval(new FiniteDuration(1, TimeUnit.DAYS));
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), new DataPersistenceProviderMonitor()), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), new DataPersistenceProviderMonitor()), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -535,7 +536,7 @@ public class RaftActorTest extends AbstractActorTest {
                 dataPersistenceProviderMonitor.setPersistLatch(persistLatch);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -562,7 +563,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -591,7 +592,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -620,7 +621,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -647,7 +648,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(),
-                    MockRaftActor.props(persistenceId,Collections.EMPTY_MAP,
+                    MockRaftActor.props(persistenceId,Collections.<String,String>emptyMap(),
                         Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
@@ -687,7 +688,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -746,7 +747,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProvider dataPersistenceProvider = mock(DataPersistenceProvider.class);
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProvider), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -776,7 +777,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProviderMonitor dataPersistenceProviderMonitor = new DataPersistenceProviderMonitor();
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
@@ -831,7 +832,7 @@ public class RaftActorTest extends AbstractActorTest {
                 DataPersistenceProviderMonitor dataPersistenceProviderMonitor = new DataPersistenceProviderMonitor();
 
                 TestActorRef<MockRaftActor> mockActorRef = TestActorRef.create(getSystem(), MockRaftActor.props(persistenceId,
-                        Collections.EMPTY_MAP, Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
+                        Collections.<String,String>emptyMap(), Optional.<ConfigParams>of(config), dataPersistenceProviderMonitor), persistenceId);
 
                 MockRaftActor mockRaftActor = mockActorRef.underlyingActor();
 
index fb02481115d81320f042198d5b3ed3962713306f..485ee4b316d2506b35d31cfed5f6aa252f16bff3 100644 (file)
@@ -9,17 +9,16 @@ import org.junit.Test;
 import org.opendaylight.controller.cluster.raft.DefaultConfigParamsImpl;
 import org.opendaylight.controller.cluster.raft.MockRaftActorContext;
 import org.opendaylight.controller.cluster.raft.RaftActorContext;
+import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry;
 import org.opendaylight.controller.cluster.raft.base.messages.ElectionTimeout;
 import org.opendaylight.controller.cluster.raft.messages.AppendEntries;
 import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply;
 import org.opendaylight.controller.cluster.raft.messages.RequestVote;
 import org.opendaylight.controller.cluster.raft.messages.RequestVoteReply;
 import org.opendaylight.controller.cluster.raft.utils.DoNothingActor;
-
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
-
 import static org.junit.Assert.assertEquals;
 
 public class CandidateTest extends AbstractRaftActorBehaviorTest {
@@ -168,7 +167,7 @@ public class CandidateTest extends AbstractRaftActorBehaviorTest {
 
                     Candidate candidate = new Candidate(createActorContext(getTestActor()));
 
-                    candidate.handleMessage(getTestActor(), new AppendEntries(0, "test", 0,0,Collections.EMPTY_LIST, 0));
+                    candidate.handleMessage(getTestActor(), new AppendEntries(0, "test", 0,0,Collections.<ReplicatedLogEntry>emptyList(), 0));
 
                     final Boolean out = new ExpectMsg<Boolean>(duration("1 seconds"), "AppendEntriesResponse") {
                         // do not put code outside this method, will run afterwards
index 705c69607c658d16d03086b573230923e2ba05b4..168eb3e5f22c9752dcbe089fe2e87393713d2650 100644 (file)
@@ -76,7 +76,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
                     MockRaftActorContext actorContext = (MockRaftActorContext) createActorContext();
 
-                    Map<String, String> peerAddresses = new HashMap();
+                    Map<String, String> peerAddresses = new HashMap<>();
 
                     peerAddresses.put(followerActor.path().toString(),
                         followerActor.path().toString());
@@ -121,7 +121,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
                     MockRaftActorContext actorContext =
                         (MockRaftActorContext) createActorContext();
 
-                    Map<String, String> peerAddresses = new HashMap();
+                    Map<String, String> peerAddresses = new HashMap<>();
 
                     peerAddresses.put(followerActor.path().toString(),
                         followerActor.path().toString());
@@ -216,7 +216,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
         new JavaTestKit(getSystem()) {{
             ActorRef followerActor = getSystem().actorOf(Props.create(MessageCollectorActor.class));
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -300,7 +300,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ActorRef followerActor = getTestActor();
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -371,7 +371,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ActorRef followerActor = getTestActor();
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -434,7 +434,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ActorRef followerActor = getTestActor();
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -514,7 +514,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ActorRef followerActor = getTestActor();
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -690,7 +690,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ForwardMessageToBehaviorActor.setBehavior(follower);
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -760,7 +760,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
 
             ForwardMessageToBehaviorActor.setBehavior(follower);
 
-            Map<String, String> peerAddresses = new HashMap();
+            Map<String, String> peerAddresses = new HashMap<>();
             peerAddresses.put(followerActor.path().toString(),
                 followerActor.path().toString());
 
@@ -823,7 +823,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
                 MockRaftActorContext leaderActorContext =
                     new MockRaftActorContext("leader", getSystem(), leaderActor);
 
-                Map<String, String> peerAddresses = new HashMap();
+                Map<String, String> peerAddresses = new HashMap<>();
                 peerAddresses.put("follower-1",
                     followerActor.path().toString());
 
@@ -858,7 +858,7 @@ public class LeaderTest extends AbstractRaftActorBehaviorTest {
                 leaderActorContext.setReplicatedLog(
                     new MockRaftActorContext.MockReplicatedLogBuilder().createEntries(0, 3, 1).build());
 
-                Map<String, String> peerAddresses = new HashMap();
+                Map<String, String> peerAddresses = new HashMap<>();
                 peerAddresses.put("follower-1",
                     followerActor.path().toString());
 
index 3e2e4a05ea21d5826f81e128a5cf92bcabe69763..2a79c8f4bccae74605923ae5c90af5d59b1f3512 100644 (file)
@@ -54,7 +54,7 @@ public class MessageCollectorActor extends UntypedActor {
      * @param clazz
      * @return
      */
-    public static Object getFirstMatching(ActorRef actor, Class clazz) throws Exception {
+    public static Object getFirstMatching(ActorRef actor, Class<?> clazz) throws Exception {
         List<Object> allMessages = getAllMessages(actor);
 
         for(Object message : allMessages){
@@ -66,7 +66,7 @@ public class MessageCollectorActor extends UntypedActor {
         return null;
     }
 
-    public static List<Object> getAllMatching(ActorRef actor, Class clazz) throws Exception {
+    public static List<Object> getAllMatching(ActorRef actor, Class<?> clazz) throws Exception {
         List<Object> allMessages = getAllMessages(actor);
 
         List<Object> output = Lists.newArrayList();
index 7482c52fdd005e531cf95a284cff87c5614b796b..ade3e1b8f6ba73376f5391a8db1da0f1d8c0dcb1 100644 (file)
@@ -70,7 +70,6 @@
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>binding-data-codec</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
index 754d14f2c4cfc9d23791521e4ee30e6bc468d0ec..0ad043489269df0f6443e37f8aa20d0f60fbccca 100644 (file)
@@ -7,42 +7,25 @@
  */
 package org.opendaylight.controller.config.yang.md.sal.binding.impl;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import java.util.Hashtable;
-import java.util.Map.Entry;
-import java.util.Set;
 import javassist.ClassPool;
 import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec;
 import org.opendaylight.controller.sal.binding.codegen.impl.SingletonHolder;
 import org.opendaylight.yangtools.binding.data.codec.gen.impl.StreamWriterGenerator;
 import org.opendaylight.yangtools.binding.data.codec.impl.BindingNormalizedNodeCodecRegistry;
-import org.opendaylight.yangtools.concepts.Delegator;
 import org.opendaylight.yangtools.sal.binding.generator.impl.GeneratedClassLoadingStrategy;
 import org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl;
-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.RpcService;
-import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.impl.codec.BindingIndependentMappingService;
-import org.opendaylight.yangtools.yang.data.impl.codec.CodecRegistry;
-import org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException;
 import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
 *
 */
 public final class RuntimeMappingModule extends AbstractRuntimeMappingModule {
 
-    private static final Logger LOG = LoggerFactory.getLogger(RuntimeMappingModule.class);
-
     private BundleContext bundleContext;
 
     public RuntimeMappingModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier,
@@ -72,7 +55,7 @@ public final class RuntimeMappingModule extends AbstractRuntimeMappingModule {
     public java.lang.AutoCloseable createInstance() {
         final GeneratedClassLoadingStrategy classLoading = getGlobalClassLoadingStrategy();
         final BindingIndependentMappingService legacyMapping = getGlobalLegacyMappingService(classLoading);
-        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(new StreamWriterGenerator(SingletonHolder.JAVASSIST));
+        BindingNormalizedNodeCodecRegistry codecRegistry = new BindingNormalizedNodeCodecRegistry(StreamWriterGenerator.create(SingletonHolder.JAVASSIST));
         BindingToNormalizedNodeCodec instance = new BindingToNormalizedNodeCodec(classLoading, legacyMapping, codecRegistry);
         bundleContext.registerService(SchemaContextListener.class, instance, new Hashtable<String,String>());
         return instance;
@@ -108,93 +91,4 @@ public final class RuntimeMappingModule extends AbstractRuntimeMappingModule {
     public void setBundleContext(final BundleContext bundleContext) {
         this.bundleContext = bundleContext;
     }
-
-    private static final class RuntimeGeneratedMappingServiceProxy implements //
-    BindingIndependentMappingService, //
-    Delegator<BindingIndependentMappingService>, //
-    AutoCloseable {
-
-        private BindingIndependentMappingService delegate;
-        private ServiceReference<BindingIndependentMappingService> reference;
-        private BundleContext bundleContext;
-
-        public RuntimeGeneratedMappingServiceProxy(final BundleContext bundleContext,
-                final ServiceReference<BindingIndependentMappingService> serviceRef,
-                final BindingIndependentMappingService delegate) {
-            this.bundleContext = Preconditions.checkNotNull(bundleContext);
-            this.reference = Preconditions.checkNotNull(serviceRef);
-            this.delegate = Preconditions.checkNotNull(delegate);
-        }
-
-        @Override
-        public CodecRegistry getCodecRegistry() {
-            return delegate.getCodecRegistry();
-        }
-
-        @Override
-        public CompositeNode toDataDom(final DataObject data) {
-            return delegate.toDataDom(data);
-        }
-
-        @Override
-        public Entry<YangInstanceIdentifier, CompositeNode> toDataDom(
-                final Entry<InstanceIdentifier<? extends DataObject>, DataObject> entry) {
-            return delegate.toDataDom(entry);
-        }
-
-        @Override
-        public YangInstanceIdentifier toDataDom(final InstanceIdentifier<? extends DataObject> path) {
-            return delegate.toDataDom(path);
-        }
-
-        @Override
-        public DataObject dataObjectFromDataDom(
-                final InstanceIdentifier<? extends DataObject> path,
-                final CompositeNode result) throws DeserializationException {
-            return delegate.dataObjectFromDataDom(path, result);
-        }
-
-        @Override
-        public InstanceIdentifier<?> fromDataDom(final YangInstanceIdentifier entry)
-                throws DeserializationException {
-            return delegate.fromDataDom(entry);
-        }
-
-        @Override
-        public Set<QName> getRpcQNamesFor(final Class<? extends RpcService> service) {
-            return delegate.getRpcQNamesFor(service);
-        }
-
-        @Override
-        public Optional<Class<? extends RpcService>> getRpcServiceClassFor(final String namespace, final String revision) {
-            return delegate.getRpcServiceClassFor(namespace,revision);
-        }
-
-        @Override
-        public DataContainer dataObjectFromDataDom(final Class<? extends DataContainer> inputClass, final CompositeNode domInput) {
-            return delegate.dataObjectFromDataDom(inputClass, domInput);
-        }
-
-        @Override
-        public void close() {
-            if(delegate != null) {
-                delegate = null;
-
-                try {
-                    bundleContext.ungetService(reference);
-                } catch (IllegalStateException e) {
-                    // Indicates the BundleContext is no longer valid which can happen normally on shutdown.
-                    LOG.debug( "Error unregistering service", e );
-                }
-
-                bundleContext= null;
-                reference = null;
-            }
-        }
-
-        @Override
-        public BindingIndependentMappingService getDelegate() {
-            return delegate;
-        }
-    }
 }
index d4b1d84aa77c5d648291dba26025bad8511618a8..273155bcf71a275b7335ad322cde99b92191922a 100644 (file)
@@ -124,7 +124,7 @@ public abstract class AbstractForwardedDataBroker implements Delegator<DOMDataBr
         if (path.isWildcarded()) {
             return Optional.absent();
         }
-        return (Optional) getCodec().deserializeFunction(path).apply(Optional.<NormalizedNode<?, ?>> of(data));
+        return (Optional<DataObject>) getCodec().deserializeFunction(path).apply(Optional.<NormalizedNode<?, ?>> of(data));
     }
 
     private class TranslatingDataChangeInvoker implements DOMDataChangeListener {
index fefd85b44b2888b2edde8108d6f67029c89bb8d8..01cd1f88ba0e29f5391ac3a07330cc10fb940606 100644 (file)
@@ -52,7 +52,6 @@
       <dependency>
           <groupId>org.opendaylight.controller</groupId>
           <artifactId>sal-test-model</artifactId>
-          <version>1.2.0-SNAPSHOT</version>
       </dependency>
   </dependencies>
   <build>
index 54a1fe7a95d75ae31c84ed4dec696d886d2692d1..f6d7dbab1a32255f2ee24171e410c1170974338d 100644 (file)
@@ -55,7 +55,6 @@
     <dependency>
       <groupId>com.google.code.findbugs</groupId>
       <artifactId>jsr305</artifactId>
-      <version>2.0.1</version>
     </dependency>
     <dependency>
       <groupId>com.google.guava</groupId>
     <dependency>
       <groupId>xmlunit</groupId>
       <artifactId>xmlunit</artifactId>
-      <version>1.5</version>
     </dependency>
     <dependency>
       <groupId>junit</groupId>
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
       <dependency>
       <dependency>
           <groupId>xmlunit</groupId>
           <artifactId>xmlunit</artifactId>
-          <version>1.5</version>
       </dependency>
 
       <dependency>
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-simple</artifactId>
-          <version>${slf4j.version}</version>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>com.google.code.findbugs</groupId>
           <artifactId>jsr305</artifactId>
-          <version>2.0.1</version>
       </dependency>
       <dependency>
           <groupId>com.codahale.metrics</groupId>
index 0d139f9670fb5365819d36cccd4050b04e6d5a1c..48afe40607907786ebddd2260746bd18f9a2f9c3 100644 (file)
@@ -109,7 +109,7 @@ public class CommonConfig extends AbstractConfig {
         public T mailboxCapacity(int capacity) {
             Preconditions.checkArgument(capacity > 0, "mailbox capacity must be >0");
 
-            Map<String, Object> boundedMailbox = (Map) configHolder.get(TAG_MAILBOX);
+            Map<String, Object> boundedMailbox = (Map<String, Object>) configHolder.get(TAG_MAILBOX);
             boundedMailbox.put(TAG_MAILBOX_CAPACITY, capacity);
             return (T)this;
         }
@@ -118,7 +118,7 @@ public class CommonConfig extends AbstractConfig {
             Duration pushTimeout = Duration.create(timeout);
             Preconditions.checkArgument(pushTimeout.isFinite(), "invalid value for mailbox push timeout");
 
-            Map<String, Object> boundedMailbox = (Map) configHolder.get(TAG_MAILBOX);
+            Map<String, Object> boundedMailbox = (Map<String, Object>) configHolder.get(TAG_MAILBOX);
             boundedMailbox.put(TAG_MAILBOX_PUSH_TIMEOUT, timeout);
             return (T)this;
         }
index 458f379f845904786a77d992c87b1e1f3bbe5c2c..9b4560c72623eb04d8014cb705a60a87dea87d57 100644 (file)
@@ -55,24 +55,25 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue<
             return; //there's no actor to monitor
         }
         String actorName = owner.get().path().toStringWithoutAddress();
-        String metricName = registry.name(actorName, QUEUE_SIZE);
+        String metricName = MetricRegistry.name(actorName, QUEUE_SIZE);
 
         if (registry.getMetrics().containsKey(metricName))
             return; //already registered
 
-        Gauge queueSize = getQueueSizeGuage(monitoredQueue);
+        Gauge<Integer> queueSize = getQueueSizeGuage(monitoredQueue);
         registerQueueSizeMetric(metricName, queueSize);
     }
 
 
     public static class MeteredMessageQueue extends BoundedDequeBasedMailbox.MessageQueue {
+        private static final long serialVersionUID = 1L;
 
         public MeteredMessageQueue(int capacity, FiniteDuration pushTimeOut) {
             super(capacity, pushTimeOut);
         }
     }
 
-    private Gauge getQueueSizeGuage(final MeteredMessageQueue monitoredQueue ){
+    private Gauge<Integer> getQueueSizeGuage(final MeteredMessageQueue monitoredQueue ){
         return new Gauge<Integer>() {
             @Override
             public Integer getValue() {
@@ -81,7 +82,7 @@ public class MeteredBoundedMailbox implements MailboxType, ProducesMessageQueue<
         };
     }
 
-    private void registerQueueSizeMetric(String metricName, Gauge metric){
+    private void registerQueueSizeMetric(String metricName, Gauge<Integer> metric){
         try {
             registry.register(metricName,metric);
         } catch (IllegalArgumentException e) {
index 88ce791f028a2bc50535cc549038530ff17b9c8a..f81b34aad843741fe41149164b9faa89cd586514 100644 (file)
@@ -13,6 +13,7 @@ import akka.actor.ActorRef;
 import java.io.Serializable;
 
 public class Monitor implements Serializable {
+    private static final long serialVersionUID = 1L;
     private final ActorRef actorRef;
 
     public Monitor(ActorRef actorRef){
index 32f3be82fcd0648e35796c5e3c835332825a20e9..fd53b0f9723e19dd1fde9310fd2988c4c90d6b9b 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 public class NormalizedNodeGetter implements
     NormalizedNodeVisitor {
     private final String path;
-    NormalizedNode output;
+    NormalizedNode<?, ?> output;
 
     public NormalizedNodeGetter(String path){
         Preconditions.checkNotNull(path);
@@ -24,7 +24,7 @@ public class NormalizedNodeGetter implements
     }
 
     @Override
-    public void visitNode(int level, String parentPath, NormalizedNode normalizedNode) {
+    public void visitNode(int level, String parentPath, NormalizedNode<?, ?> normalizedNode) {
         String nodePath = parentPath + "/"+ PathUtils.toString(normalizedNode.getIdentifier());
 
         if(nodePath.toString().equals(path)){
@@ -32,7 +32,7 @@ public class NormalizedNodeGetter implements
         }
     }
 
-    public NormalizedNode getOutput(){
+    public NormalizedNode<?, ?> getOutput(){
         return output;
     }
 }
index 0083b00403ac9d1746559fa8b23b562985fc14d1..f8019c91868f8d559f3a3c1cda8762de3cf48666 100644 (file)
@@ -67,7 +67,7 @@ public class NormalizedNodeNavigator {
     String newParentPath = parentPath + "/" + node.getIdentifier().toString();
 
     final Iterable<? extends NormalizedNode<?, ?>> value = node.getValue();
-    for(NormalizedNode normalizedNode : value){
+    for(NormalizedNode<?, ?> normalizedNode : value){
       if(normalizedNode instanceof MixinNode && normalizedNode instanceof NormalizedNodeContainer){
         navigateNormalizedNodeContainerMixin(level + 1, newParentPath, (NormalizedNodeContainer) normalizedNode);
       } else {
@@ -81,7 +81,7 @@ public class NormalizedNodeNavigator {
   private void navigateNormalizedNode(int level, String parentPath, NormalizedNode<?,?> normalizedNode){
     if(normalizedNode instanceof DataContainerNode){
 
-      final DataContainerNode<?> dataContainerNode = (DataContainerNode) normalizedNode;
+      final DataContainerNode<?> dataContainerNode = (DataContainerNode<?>) normalizedNode;
 
       navigateDataContainerNode(level + 1, parentPath, dataContainerNode);
     } else {
index d370eb2deb5fc8ae6a9042e20f778454954e6314..5f10800e348d92d0d481258ad3e578364a754252 100644 (file)
@@ -25,7 +25,7 @@ public class NormalizedNodePrinter implements NormalizedNodeVisitor {
     }
 
     @Override
-    public void visitNode(int level, String parentPath, NormalizedNode normalizedNode) {
+    public void visitNode(int level, String parentPath, NormalizedNode<?, ?> normalizedNode) {
         System.out.println(spaces((level) * 4) + normalizedNode.getClass().toString() + ":" + normalizedNode.getIdentifier());
         if(normalizedNode instanceof LeafNode || normalizedNode instanceof LeafSetEntryNode){
             System.out.println(spaces((level) * 4) + " parentPath = " + parentPath);
index 9e85ccb9ab24c3c90920736ccd6c6a5213ac31b3..9e847d94ce661cc9721f6fcfe73dcee5334e612a 100644 (file)
@@ -13,5 +13,5 @@ package org.opendaylight.controller.cluster.datastore.node.utils;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 public interface NormalizedNodeVisitor {
-    public void visitNode(int level, String parentPath, NormalizedNode normalizedNode);
+    public void visitNode(int level, String parentPath, NormalizedNode<?, ?> normalizedNode);
 }
index 15d51e1d80aed557a98279e606aba21d2034fde9..fae7eb1a33434bdc52fc3534fe3ee45eee553870 100644 (file)
@@ -81,12 +81,12 @@ public class NormalizedNodeSerializer {
      * @param node
      * @return
      */
-    public static NormalizedNodeMessages.Node serialize(NormalizedNode node){
+    public static NormalizedNodeMessages.Node serialize(NormalizedNode<?, ?> node){
         Preconditions.checkNotNull(node, "node should not be null");
         return new Serializer(node).serialize();
     }
 
-    public static Serializer newSerializer(NormalizedNode node) {
+    public static Serializer newSerializer(NormalizedNode<?, ?> node) {
         Preconditions.checkNotNull(node, "node should not be null");
         return new Serializer(node);
     }
@@ -97,7 +97,7 @@ public class NormalizedNodeSerializer {
      * @param node
      * @return
      */
-    public static NormalizedNode deSerialize(NormalizedNodeMessages.Node node) {
+    public static NormalizedNode<?, ?> deSerialize(NormalizedNodeMessages.Node node) {
         Preconditions.checkNotNull(node, "node should not be null");
         return new DeSerializer(null, node).deSerialize();
     }
@@ -131,11 +131,11 @@ public class NormalizedNodeSerializer {
     public static class Serializer extends QNameSerializationContextImpl
                                    implements NormalizedNodeSerializationContext {
 
-        private final NormalizedNode node;
+        private final NormalizedNode<?, ?> node;
 
         private NormalizedNodeMessages.InstanceIdentifier serializedPath;
 
-        private Serializer(NormalizedNode node) {
+        private Serializer(NormalizedNode<?, ?> node) {
             this.node = node;
         }
 
@@ -154,7 +154,7 @@ public class NormalizedNodeSerializer {
         }
 
         private NormalizedNodeMessages.Node.Builder serialize(
-            NormalizedNode node) {
+            NormalizedNode<?, ?> node) {
             NormalizedNodeMessages.Node.Builder builder =
                 NormalizedNodeMessages.Node.newBuilder();
 
@@ -183,13 +183,13 @@ public class NormalizedNodeSerializer {
 
                 for (Object o : iterable) {
                     if (o instanceof NormalizedNode) {
-                        builder.addChild(serialize((NormalizedNode) o));
+                        builder.addChild(serialize((NormalizedNode<?, ?>) o));
                     }
                 }
 
             } else if (value instanceof NormalizedNode) {
 
-                builder.addChild(serialize((NormalizedNode) value));
+                builder.addChild(serialize((NormalizedNode<?, ?>) value));
 
             } else {
 
@@ -208,7 +208,7 @@ public class NormalizedNodeSerializer {
         static {
             deSerializationFunctions.put(CONTAINER_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         DataContainerNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifier, ContainerNode>
@@ -226,7 +226,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(LEAF_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         NormalizedNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifier, Object, LeafNode<Object>>
@@ -243,7 +243,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(MAP_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         CollectionNodeBuilder<MapEntryNode, MapNode>
@@ -255,7 +255,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(MAP_ENTRY_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         DataContainerNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode>
@@ -270,7 +270,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(AUGMENTATION_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         DataContainerNodeBuilder<YangInstanceIdentifier.AugmentationIdentifier, AugmentationNode>
@@ -286,7 +286,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(LEAF_SET_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         ListNodeBuilder<Object, LeafSetEntryNode<Object>>
@@ -298,7 +298,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(LEAF_SET_ENTRY_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         NormalizedNodeAttrBuilder<YangInstanceIdentifier.NodeWithValue, Object, LeafSetEntryNode<Object>>
@@ -313,7 +313,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(CHOICE_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         DataContainerNodeBuilder<YangInstanceIdentifier.NodeIdentifier, ChoiceNode>
@@ -330,7 +330,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(ORDERED_LEAF_SET_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         ListNodeBuilder<Object, LeafSetEntryNode<Object>>
@@ -345,7 +345,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(ORDERED_MAP_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         CollectionNodeBuilder<MapEntryNode, OrderedMapNode>
@@ -358,7 +358,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(UNKEYED_LIST_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode>
@@ -371,7 +371,7 @@ public class NormalizedNodeSerializer {
 
             deSerializationFunctions.put(UNKEYED_LIST_ENTRY_NODE_TYPE,
                 new DeSerializationFunction() {
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         DataContainerNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifier, UnkeyedListEntryNode>
@@ -389,7 +389,7 @@ public class NormalizedNodeSerializer {
             deSerializationFunctions.put(ANY_XML_NODE_TYPE,
                 new DeSerializationFunction() {
 
-                    @Override public NormalizedNode apply(
+                    @Override public NormalizedNode<?, ?> apply(
                         DeSerializer deSerializer,
                         NormalizedNodeMessages.Node node) {
                         NormalizedNodeAttrBuilder<YangInstanceIdentifier.NodeIdentifier, Node<?>, AnyXmlNode>
@@ -421,8 +421,8 @@ public class NormalizedNodeSerializer {
             return deserializedPath;
         }
 
-        public NormalizedNode deSerialize() {
-            NormalizedNode deserializedNode = deSerialize(node);
+        public NormalizedNode<?, ?> deSerialize() {
+            NormalizedNode<?, ?> deserializedNode = deSerialize(node);
             if(path != null) {
                 deserializedPath = InstanceIdentifierUtils.fromSerializable(path, this);
             }
@@ -430,7 +430,7 @@ public class NormalizedNodeSerializer {
             return deserializedNode;
         }
 
-        private NormalizedNode deSerialize(NormalizedNodeMessages.Node node){
+        private NormalizedNode<?, ?> deSerialize(NormalizedNodeMessages.Node node){
             Preconditions.checkNotNull(node, "node should not be null");
 
             DeSerializationFunction deSerializationFunction = deSerializationFunctions.get(
@@ -440,7 +440,7 @@ public class NormalizedNodeSerializer {
         }
 
 
-        private NormalizedNode buildCollectionNode(
+        private NormalizedNode<?, ?> buildCollectionNode(
             CollectionNodeBuilder builder,
             NormalizedNodeMessages.Node node) {
 
@@ -454,7 +454,7 @@ public class NormalizedNodeSerializer {
         }
 
 
-        private NormalizedNode buildListNode(
+        private NormalizedNode<?, ?> buildListNode(
             ListNodeBuilder<Object, LeafSetEntryNode<Object>> builder,
             NormalizedNodeMessages.Node node) {
             builder.withNodeIdentifier(toNodeIdentifier(node.getPathArgument()));
@@ -466,7 +466,7 @@ public class NormalizedNodeSerializer {
             return builder.build();
         }
 
-        private NormalizedNode buildDataContainer(DataContainerNodeBuilder builder, NormalizedNodeMessages.Node node){
+        private NormalizedNode<?, ?> buildDataContainer(DataContainerNodeBuilder builder, NormalizedNodeMessages.Node node){
 
             for(NormalizedNodeMessages.Node child : node.getChildList()){
                 builder.withChild((DataContainerChild<?, ?>) deSerialize(child));
@@ -477,7 +477,7 @@ public class NormalizedNodeSerializer {
             return builder.build();
         }
 
-        private NormalizedNode buildNormalizedNode(NormalizedNodeAttrBuilder builder, NormalizedNodeMessages.Node node){
+        private NormalizedNode<?, ?> buildNormalizedNode(NormalizedNodeAttrBuilder builder, NormalizedNodeMessages.Node node){
 
             builder.withValue(ValueSerializer.deSerialize(this, node));
 
@@ -515,7 +515,7 @@ public class NormalizedNodeSerializer {
         }
 
         private static interface DeSerializationFunction {
-            NormalizedNode apply(DeSerializer deserializer, NormalizedNodeMessages.Node node);
+            NormalizedNode<?, ?> apply(DeSerializer deserializer, NormalizedNodeMessages.Node node);
         }
     }
 }
index 2d6d738b76b981c2aad11eef308edcfe2d2434e5..b7460e8acf52bc5740627f4660f0b8e341ac4395 100644 (file)
@@ -39,7 +39,7 @@ public enum NormalizedNodeType {
     UNKEYED_LIST_ENTRY_NODE_TYPE,
     ANY_XML_NODE_TYPE;
 
-    public static NormalizedNodeType getSerializableNodeType(NormalizedNode node){
+    public static NormalizedNodeType getSerializableNodeType(NormalizedNode<?, ?> node){
         Preconditions.checkNotNull(node, "node should not be null");
 
         if(node instanceof LeafNode){
index aac45e18b5d7c420eeae0f6d47b62fdee6cb3078..bb7f9c35eead01ba942327486d0f0306913aaac7 100644 (file)
@@ -28,7 +28,7 @@ public class ValueSerializer {
             builder.setInstanceIdentifierValue(
                 InstanceIdentifierUtils.toSerializable((YangInstanceIdentifier) value, context));
         } else if(value instanceof Set) {
-            Set set = (Set) value;
+            Set<?> set = (Set<?>) value;
             if (!set.isEmpty()) {
                 for (Object o : set) {
                     if (o instanceof String) {
@@ -59,7 +59,7 @@ public class ValueSerializer {
             return InstanceIdentifierUtils.fromSerializable(
                     node.getInstanceIdentifierValue(), context);
         } else if(node.getIntValueType() == ValueType.BITS_TYPE.ordinal()){
-            return new HashSet(node.getBitsValueList());
+            return new HashSet<>(node.getBitsValueList());
         } else if(node.getIntValueType() == ValueType.BINARY_TYPE.ordinal()){
             return node.getBytesValue().toByteArray();
         }
index 6c884734e298a54dea541fe4973404365db41573..2007544b7edd96d3498d303e3ad0ffd8469ada36 100644 (file)
@@ -32,7 +32,7 @@ public enum ValueType {
     BIG_DECIMAL_TYPE,
     BINARY_TYPE;
 
-    private static Map<Class, ValueType> types = new HashMap<>();
+    private static Map<Class<?>, ValueType> types = new HashMap<>();
 
     static {
         types.put(String.class, STRING_TYPE);
index b59a32efc9bd96e0bd4ad157b0faa565dafa948b..797258b4438cc61825524136ecb0b6aa4ff2aa5e 100644 (file)
@@ -140,7 +140,7 @@ public class NormalizedNodeInputStreamReader implements NormalizedNodeStreamRead
 
             case NodeTypes.ANY_XML_NODE :
                 LOG.debug("Read xml node");
-                Node value = (Node) readObject();
+                Node<?> value = (Node<?>) readObject();
                 return Builders.anyXmlBuilder().withValue(value).build();
 
             case NodeTypes.MAP_NODE :
index cbd7bf885373b331fb71a9d6899efc755b85f767..08567fd79ee9e4980dc6a359ae6fab422040b03d 100644 (file)
@@ -204,7 +204,7 @@ public class NormalizedNodeOutputStreamWriter implements NormalizedNodeStreamWri
         }
     }
 
-    private void writeObjSet(Set set) throws IOException {
+    private void writeObjSet(Set<?> set) throws IOException {
         if(!set.isEmpty()){
             writer.writeInt(set.size());
             for(Object o : set){
@@ -329,7 +329,7 @@ public class NormalizedNodeOutputStreamWriter implements NormalizedNodeStreamWri
                 writer.writeShort((Short) value);
                 break;
             case ValueTypes.BITS_TYPE:
-                writeObjSet((Set) value);
+                writeObjSet((Set<?>) value);
                 break;
             case ValueTypes.YANG_IDENTIFIER_TYPE:
                 writeYangInstanceIdentifier((YangInstanceIdentifier) value);
index 6035e3c644e6f9c6d54e0219fcdad66037acd303..80fa527b4613e54d942aa14cc121c3cf234dd410 100644 (file)
@@ -31,7 +31,7 @@ public class ValueTypes {
     public static final byte BIG_INTEGER_TYPE = 10;
     public static final byte BIG_DECIMAL_TYPE = 11;
 
-    private static Map<Class, Byte> types = new HashMap<>();
+    private static Map<Class<?>, Byte> types = new HashMap<>();
 
     static {
         types.put(String.class, Byte.valueOf(STRING_TYPE));
index d33e79f533e0de4bbd36c821b9b1a28d10b57cc4..60efb9d7ca1ec163b826b62efd485a7939e88068 100644 (file)
@@ -81,6 +81,7 @@ public class MeteredBoundedMailboxTest {
 
         public static Props props(final ReentrantLock lock){
             return Props.create(new Creator<PingPongActor>(){
+                private static final long serialVersionUID = 1L;
                 @Override
                 public PingPongActor create() throws Exception {
                     return new PingPongActor(lock);
index 5d5318f19a050bcb3b5c1e4550304f011ac8f40d..0b408e2e1e1d6d9358750d951893abf85e3d8483 100644 (file)
@@ -60,7 +60,7 @@ public class NormalizedNodeToNodeCodecTest {
         PathUtils.toString(YangInstanceIdentifier.builder().build()), documentOne);
 
     // Validate the value of id can be retrieved from the normalized node
-    NormalizedNode output = normalizedNodeGetter.getOutput();
+    NormalizedNode<?, ?> output = normalizedNodeGetter.getOutput();
     assertNotNull(output);
 
 
index d1e3eb202f8faefcafeb548cf2b48ca013b42e91..75e8e2aa4a45c2106b5ccb70baa5a0220b667e74 100644 (file)
@@ -1,15 +1,13 @@
 package org.opendaylight.controller.cluster.datastore.node.utils;
 
+import com.google.common.collect.ImmutableSet;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.datastore.util.TestModel;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-
 import static junit.framework.TestCase.assertEquals;
 
 public class PathUtilsTest {
@@ -92,8 +90,7 @@ public class PathUtilsTest {
     }
 
     private YangInstanceIdentifier.AugmentationIdentifier augmentationIdentifier(){
-        Set<QName> childNames = new HashSet();
-        childNames.add(QNameFactory.create("(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics"));
+        Set<QName> childNames = ImmutableSet.of(QNameFactory.create("(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics"));
 
         return new YangInstanceIdentifier.AugmentationIdentifier(childNames);
     }
index bcc0fd85d0f343f7b1e9ec02ed6c4a6aec1f4027..816442f885ff33197166971e05b4fce70dbacce7 100644 (file)
@@ -45,7 +45,7 @@ public class NormalizedNodeSerializerTest {
 
         start = System.nanoTime();
 
-        NormalizedNode actualNode =
+        NormalizedNode<?, ?> actualNode =
             NormalizedNodeSerializer.deSerialize(expected);
 
         System.out.println("DeSerialize Time = " + (System.nanoTime() - start)/1000000);
index 88c269507538ab8f55d40cb06eece12c6a39ac0e..d0be36beebbc8696e6e5b3a7d7416d18a8b7e40c 100644 (file)
@@ -355,8 +355,8 @@ public class ValueSerializerTest{
                 nodeBuilder.build());
 
         assertTrue(o instanceof Set);
-        assertTrue(((Set)o).contains("foo"));
-        assertTrue(((Set) o).contains("bar"));
+        assertTrue(((Set<?>)o).contains("foo"));
+        assertTrue(((Set<?>) o).contains("bar"));
 
     }
 
index 6cd06e9c1cea610edc3b1fa2799513cfa539c72c..d15f534f805ee5bc345afcfb05be903f0f9e85e0 100644 (file)
@@ -10,6 +10,7 @@
 
 package org.opendaylight.controller.cluster.datastore.util;
 
+import com.google.common.collect.ImmutableSet;
 import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.datastore.node.utils.serialization.QNameDeSerializationContext;
@@ -20,7 +21,6 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
 
 public class InstanceIdentifierUtilsTest {
@@ -116,8 +116,8 @@ public class InstanceIdentifierUtilsTest {
 
     @Test
     public void testAugmentationIdentifier() {
-        YangInstanceIdentifier.PathArgument p1 = new YangInstanceIdentifier.AugmentationIdentifier(new HashSet(
-                Arrays.asList(TEST_QNAME)));
+        YangInstanceIdentifier.PathArgument p1 = new YangInstanceIdentifier.AugmentationIdentifier(
+            ImmutableSet.of(TEST_QNAME));
 
         List<YangInstanceIdentifier.PathArgument> arguments = new ArrayList<>();
 
index 60dbcb05163ab90ff4d436c48631e1d9b88b855f..2574bd681eeaf72762a8ff8c047fd0d5567f3390 100644 (file)
@@ -81,13 +81,13 @@ public class XmlUtilsTest {
   @Test
   public void testInputXmlToCompositeNode() {
     CompositeNode node = XmlUtils.inputXmlToCompositeNode(testRpc.getQName(), XML_CONTENT, schema);
-    ImmutableList<SimpleNode> input = (ImmutableList)node.getValue().get(0).getValue();
-    SimpleNode firstNode = input.get(0);
+    ImmutableList<SimpleNode<?>> input = (ImmutableList<SimpleNode<?>>)node.getValue().get(0).getValue();
+    SimpleNode<?> firstNode = input.get(0);
 
     Assert.assertEquals("id", firstNode.getNodeType().getLocalName());
     Assert.assertEquals("flowid", firstNode.getValue());
 
-    SimpleNode secondNode = input.get(1);
+    SimpleNode<?> secondNode = input.get(1);
     Assert.assertEquals("flow", secondNode.getNodeType().getLocalName());
 
     YangInstanceIdentifier instance = (YangInstanceIdentifier) secondNode.getValue();
@@ -104,7 +104,7 @@ public class XmlUtilsTest {
   @Test
   public void testInputCompositeNodeToXML() {
     CompositeNode input = XmlUtils.inputXmlToCompositeNode(testRpc.getQName(), XML_CONTENT, schema);
-    List<Node<?>> childNodes = new ArrayList();
+    List<Node<?>> childNodes = new ArrayList<>();
     childNodes.add(input);
     QName rpcQName = schema.getOperations().iterator().next().getQName();
     CompositeNode node = new ImmutableCompositeNode(rpcQName, input.getValue(), ModifyAction.REPLACE);
index 342611298c78b3ea5709473afaf8b2e2a19d4e9d..a8d7d2210567eb75c20267ea0534288fae779798 100644 (file)
@@ -53,6 +53,7 @@ public class DataChangeListenerRegistration extends AbstractUntypedActor {
 
     private static class DataChangeListenerRegistrationCreator
                                             implements Creator<DataChangeListenerRegistration> {
+        private static final long serialVersionUID = 1L;
         final ListenerRegistration<AsyncDataChangeListener<YangInstanceIdentifier,
                                                            NormalizedNode<?, ?>>> registration;
 
index c7213e601218cba205feca5a31ae6a1eaad3cfbf..88f818f0faedf76f0349ce1f7294dee37b9d79d1 100644 (file)
@@ -556,6 +556,7 @@ public class ShardManager extends AbstractUntypedPersistentActorWithMetering {
     }
 
     static class SchemaContextModules implements Serializable {
+        private static final long serialVersionUID = 1L;
         private final Set<String> modules;
 
         SchemaContextModules(Set<String> modules){
index 92de88e1126c19c38718f0f7c5c8cd51ad8430c0..87959efe8ae2def5684e253f2e0840c7177db838 100644 (file)
@@ -11,10 +11,9 @@ package org.opendaylight.controller.cluster.datastore;
 import akka.actor.ActorSelection;
 import akka.dispatch.OnComplete;
 import com.google.common.base.Preconditions;
-import java.util.AbstractMap.SimpleEntry;
 import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
+import java.util.concurrent.atomic.AtomicInteger;
 import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionChain;
 import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException;
@@ -22,6 +21,8 @@ import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadTransaction;
 import org.opendaylight.controller.sal.core.spi.data.DOMStoreReadWriteTransaction;
 import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransactionChain;
 import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import scala.concurrent.Future;
 import scala.concurrent.Promise;
 
@@ -29,42 +30,37 @@ import scala.concurrent.Promise;
  * TransactionChainProxy acts as a proxy for a DOMStoreTransactionChain created on a remote shard
  */
 public class TransactionChainProxy implements DOMStoreTransactionChain {
+
+    private static final Logger LOG = LoggerFactory.getLogger(TransactionChainProxy.class);
+
     private interface State {
         boolean isReady();
 
-        SimpleEntry<Object, List<Future<ActorSelection>>> getReadyFutures();
-
-        void setReadyFutures(Object txIdentifier, List<Future<ActorSelection>> readyFutures);
+        List<Future<ActorSelection>> getPreviousReadyFutures();
     }
 
     private static class Allocated implements State {
-        private volatile SimpleEntry<Object, List<Future<ActorSelection>>> readyFutures;
+        private final ChainedTransactionProxy transaction;
 
-        @Override
-        public boolean isReady() {
-            return readyFutures != null;
+        Allocated(ChainedTransactionProxy transaction) {
+            this.transaction = transaction;
         }
 
         @Override
-        public SimpleEntry<Object, List<Future<ActorSelection>>> getReadyFutures() {
-            return readyFutures != null ? readyFutures : EMPTY_READY_FUTURES;
+        public boolean isReady() {
+            return transaction.isReady();
         }
 
         @Override
-        public void setReadyFutures(Object txIdentifier, List<Future<ActorSelection>> readyFutures) {
-            this.readyFutures = new SimpleEntry<>(txIdentifier, readyFutures);
+        public List<Future<ActorSelection>> getPreviousReadyFutures() {
+            return transaction.getReadyFutures();
         }
     }
 
     private static abstract class AbstractDefaultState implements State {
         @Override
-        public SimpleEntry<Object, List<Future<ActorSelection>>> getReadyFutures() {
-            return EMPTY_READY_FUTURES;
-        }
-
-        @Override
-        public void setReadyFutures(Object txIdentifier, List<Future<ActorSelection>> readyFutures) {
-            throw new IllegalStateException("No transaction is allocated");
+        public List<Future<ActorSelection>> getPreviousReadyFutures() {
+            return Collections.emptyList();
         }
     }
 
@@ -82,26 +78,28 @@ public class TransactionChainProxy implements DOMStoreTransactionChain {
         }
     };
 
-    private static final SimpleEntry<Object, List<Future<ActorSelection>>> EMPTY_READY_FUTURES =
-            new SimpleEntry<Object, List<Future<ActorSelection>>>("",
-                    Collections.<Future<ActorSelection>>emptyList());
-
-    private static final AtomicReferenceFieldUpdater<TransactionChainProxy, State> STATE_UPDATER =
-            AtomicReferenceFieldUpdater.newUpdater(TransactionChainProxy.class, State.class, "state");
+    private static final AtomicInteger counter = new AtomicInteger(0);
 
     private final ActorContext actorContext;
     private final String transactionChainId;
-    private volatile State state = IDLE_STATE;
+    private volatile State currentState = IDLE_STATE;
 
     public TransactionChainProxy(ActorContext actorContext) {
         this.actorContext = actorContext;
-        transactionChainId = actorContext.getCurrentMemberName() + "-" + System.currentTimeMillis();
+        transactionChainId = actorContext.getCurrentMemberName() + "-txn-chain-" + counter.incrementAndGet();
+    }
+
+    public String getTransactionChainId() {
+        return transactionChainId;
     }
 
     @Override
     public DOMStoreReadTransaction newReadOnlyTransaction() {
-        checkReadyState();
-        return new ChainedTransactionProxy(actorContext, TransactionProxy.TransactionType.READ_ONLY);
+        State localState = currentState;
+        checkReadyState(localState);
+
+        return new ChainedTransactionProxy(actorContext, TransactionProxy.TransactionType.READ_ONLY,
+                transactionChainId, localState.getPreviousReadyFutures());
     }
 
     @Override
@@ -116,35 +114,61 @@ public class TransactionChainProxy implements DOMStoreTransactionChain {
 
     @Override
     public void close() {
-        state = CLOSED_STATE;
+        currentState = CLOSED_STATE;
 
         // Send a close transaction chain request to each and every shard
         actorContext.broadcast(new CloseTransactionChain(transactionChainId));
     }
 
     private ChainedTransactionProxy allocateWriteTransaction(TransactionProxy.TransactionType type) {
-        checkReadyState();
+        State localState = currentState;
 
-        ChainedTransactionProxy txProxy = new ChainedTransactionProxy(actorContext, type);
-        STATE_UPDATER.compareAndSet(this, IDLE_STATE, new Allocated());
+        checkReadyState(localState);
+
+        // Pass the ready Futures from the previous Tx.
+        ChainedTransactionProxy txProxy = new ChainedTransactionProxy(actorContext, type,
+                transactionChainId, localState.getPreviousReadyFutures());
+
+        currentState = new Allocated(txProxy);
 
         return txProxy;
     }
 
-    private void checkReadyState() {
-        Preconditions.checkState(state.isReady(), "Previous transaction %s is not ready yet",
-                state.getReadyFutures().getKey());
+    private void checkReadyState(State state) {
+        Preconditions.checkState(state.isReady(), "Previous transaction is not ready yet");
     }
 
-    private class ChainedTransactionProxy extends TransactionProxy {
+    private static class ChainedTransactionProxy extends TransactionProxy {
+
+        /**
+         * Stores the ready Futures from the previous Tx in the chain.
+         */
+        private final List<Future<ActorSelection>> previousReadyFutures;
+
+        /**
+         * Stores the ready Futures from this transaction when it is readied.
+         */
+        private volatile List<Future<ActorSelection>> readyFutures;
 
-        ChainedTransactionProxy(ActorContext actorContext, TransactionType transactionType) {
+        private ChainedTransactionProxy(ActorContext actorContext, TransactionType transactionType,
+                String transactionChainId, List<Future<ActorSelection>> previousReadyFutures) {
             super(actorContext, transactionType, transactionChainId);
+            this.previousReadyFutures = previousReadyFutures;
+        }
+
+        List<Future<ActorSelection>> getReadyFutures() {
+            return readyFutures;
+        }
+
+        boolean isReady() {
+            return readyFutures != null;
         }
 
         @Override
         protected void onTransactionReady(List<Future<ActorSelection>> readyFutures) {
-            state.setReadyFutures(getIdentifier(), readyFutures);
+            LOG.debug("onTransactionReady {} pending readyFutures size {} chain {}", getIdentifier(),
+                    readyFutures.size(), getTransactionChainId());
+            this.readyFutures = readyFutures;
         }
 
         /**
@@ -157,32 +181,13 @@ public class TransactionChainProxy implements DOMStoreTransactionChain {
                 final Object serializedCreateMessage) {
 
             // Check if there are any previous ready Futures, otherwise let the super class handle it.
-            // The second check is done to ensure the the previous ready Futures aren't for this
-            // Tx instance as deadlock would occur if we tried to wait on our own Futures. This can
-            // occur in this scenario:
-            //
-            //     - the TransactionProxy is created and the client does a write.
-            //
-            //     - the TransactionProxy then attempts to create the shard Tx. However it first
-            //       sends a FindPrimaryShard message to the shard manager to find the local shard
-            //       This call is done async.
-            //
-            //     - the client submits the Tx and the TransactionProxy is readied and we cache
-            //       the ready Futures here.
-            //
-            //     - then the FindPrimaryShard call completes and this method is called to create
-            //       the shard Tx. However the cached Futures were from the ready on this Tx. If we
-            //       tried to wait on them, it would cause a form of deadlock as the ready Future
-            //       would be waiting on the Tx create Future and vice versa.
-            SimpleEntry<Object, List<Future<ActorSelection>>> readyFuturesEntry = state.getReadyFutures();
-            List<Future<ActorSelection>> readyFutures = readyFuturesEntry.getValue();
-            if(readyFutures.isEmpty() || getIdentifier().equals(readyFuturesEntry.getKey())) {
+            if(previousReadyFutures.isEmpty()) {
                 return super.sendCreateTransaction(shard, serializedCreateMessage);
             }
 
             // Combine the ready Futures into 1.
             Future<Iterable<ActorSelection>> combinedFutures = akka.dispatch.Futures.sequence(
-                    readyFutures, actorContext.getActorSystem().dispatcher());
+                    previousReadyFutures, getActorContext().getActorSystem().dispatcher());
 
             // Add a callback for completion of the combined Futures.
             final Promise<Object> createTxPromise = akka.dispatch.Futures.promise();
@@ -193,15 +198,18 @@ public class TransactionChainProxy implements DOMStoreTransactionChain {
                         // A Ready Future failed so fail the returned Promise.
                         createTxPromise.failure(failure);
                     } else {
+                        LOG.debug("Previous Tx readied - sending CreateTransaction for {} on chain {}",
+                                getIdentifier(), getTransactionChainId());
+
                         // Send the CreateTx message and use the resulting Future to complete the
                         // returned Promise.
-                        createTxPromise.completeWith(actorContext.executeOperationAsync(shard,
+                        createTxPromise.completeWith(getActorContext().executeOperationAsync(shard,
                                 serializedCreateMessage));
                     }
                 }
             };
 
-            combinedFutures.onComplete(onComplete, actorContext.getActorSystem().dispatcher());
+            combinedFutures.onComplete(onComplete, getActorContext().getActorSystem().dispatcher());
 
             return createTxPromise.future();
         }
index d93bae22e08d9fddb3f1ac7d9c12aa4a278d0ff6..443e0af9e031392fe1ebb08d03d956b883b91dab 100644 (file)
@@ -220,7 +220,7 @@ public class TransactionProxy implements DOMStoreReadWriteTransaction {
             phantomReferenceCache.put(cleanup, cleanup);
         }
 
-        LOG.debug("Created txn {} of type {}", identifier, transactionType);
+        LOG.debug("Created txn {} of type {} on chain {}", identifier, transactionType, transactionChainId);
     }
 
     @VisibleForTesting
@@ -423,8 +423,8 @@ public class TransactionProxy implements DOMStoreReadWriteTransaction {
 
         for(TransactionFutureCallback txFutureCallback : txFutureCallbackMap.values()) {
 
-            LOG.debug("Tx {} Readying transaction for shard {}", identifier,
-                        txFutureCallback.getShardName());
+            LOG.debug("Tx {} Readying transaction for shard {} chain {}", identifier,
+                        txFutureCallback.getShardName(), transactionChainId);
 
             TransactionContext transactionContext = txFutureCallback.getTransactionContext();
             if(transactionContext != null) {
@@ -534,6 +534,10 @@ public class TransactionProxy implements DOMStoreReadWriteTransaction {
         return transactionChainId;
     }
 
+    protected ActorContext getActorContext() {
+        return actorContext;
+    }
+
     /**
      * Interface for a transaction operation to be invoked later.
      */
index 302d68432275f835e54892da0deb49479c18ac09..839cce63e5e347e9dd98adec626f5b51b193d105 100644 (file)
@@ -8,6 +8,7 @@
 package org.opendaylight.controller.cluster.datastore.exceptions;
 
 public class NotInitializedException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
     public NotInitializedException(String message) {
         super(message);
     }
index 7b07053fd937e8709a4a5b258d6ff9adc4f5c5c1..c98e2bd384c4b976e041e24f99d57cd6e623a55d 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.datastore.exceptions;
 
 public class PrimaryNotFoundException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
     public PrimaryNotFoundException(String message){
         super(message);
     }
index 472cd387345a5ffd61747af83629dcb86a8100f3..5590877aa7907cd81fe96a193449a99505eb038e 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.datastore.exceptions;
 
 public class TimeoutException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
     public TimeoutException(String message, Exception e){
         super(message, e);
     }
index f4f2524a8d4092392fa27c2186d06b848e1bb681..bd804b8dde9ca902bed0b42d3195d5f208d88711 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.controller.cluster.datastore.exceptions;
 
 public class UnknownMessageException extends Exception {
+    private static final long serialVersionUID = 1L;
     private final Object message;
 
     public UnknownMessageException(Object message) {
index 4f1a02e43557298c11c78f37a35c16078df4d0d7..9f5aded3521b7c72f9b50fff77a988263f1e039d 100644 (file)
@@ -9,6 +9,8 @@ import akka.actor.PoisonPill;
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Uninterruptibles;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
@@ -633,6 +635,60 @@ public class DistributedDataStoreIntegrationTest extends AbstractActorTest {
         }};
     }
 
+    @Test
+    public void testCreateChainedTransactionsInQuickSuccession() throws Exception{
+        new IntegrationTestKit(getSystem()) {{
+            DistributedDataStore dataStore = setupDistributedDataStore(
+                    "testCreateChainedTransactionsInQuickSuccession", "test-1");
+
+            DOMStoreTransactionChain txChain = dataStore.createTransactionChain();
+
+            NormalizedNode<?, ?> testNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
+
+            int nTxs = 20;
+            List<DOMStoreThreePhaseCommitCohort> cohorts = new ArrayList<>(nTxs);
+            for(int i = 0; i < nTxs; i++) {
+                DOMStoreReadWriteTransaction rwTx = txChain.newReadWriteTransaction();
+
+                rwTx.merge(TestModel.TEST_PATH, testNode);
+
+                cohorts.add(rwTx.ready());
+
+            }
+
+            for(DOMStoreThreePhaseCommitCohort cohort: cohorts) {
+                doCommit(cohort);
+            }
+
+            txChain.close();
+
+            cleanup(dataStore);
+        }};
+    }
+
+    @Test
+    public void testCreateChainedTransactionAfterEmptyTxReadied() throws Exception{
+        new IntegrationTestKit(getSystem()) {{
+            DistributedDataStore dataStore = setupDistributedDataStore(
+                    "testCreateChainedTransactionAfterEmptyTxReadied", "test-1");
+
+            DOMStoreTransactionChain txChain = dataStore.createTransactionChain();
+
+            DOMStoreReadWriteTransaction rwTx1 = txChain.newReadWriteTransaction();
+
+            rwTx1.ready();
+
+            DOMStoreReadWriteTransaction rwTx2 = txChain.newReadWriteTransaction();
+
+            Optional<NormalizedNode<?, ?>> optional = rwTx2.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS);
+            assertEquals("isPresent", false, optional.isPresent());
+
+            txChain.close();
+
+            cleanup(dataStore);
+        }};
+    }
+
     @Test
     public void testCreateChainedTransactionWhenPreviousNotReady() throws Throwable {
         new IntegrationTestKit(getSystem()) {{
index f6eb6d7fbe623d502f5fb39967d7ce779e246a24..e70d79c61a884abd7cef597b0bc43d3781b49eea 100644 (file)
@@ -387,6 +387,7 @@ public class ShardManagerTest extends AbstractActorTest {
             throws Exception {
         final CountDownLatch persistLatch = new CountDownLatch(1);
         final Creator<ShardManager> creator = new Creator<ShardManager>() {
+            private static final long serialVersionUID = 1L;
             @Override
             public ShardManager create() throws Exception {
                 return new ShardManager(shardMrgIDSuffix, new MockClusterWrapper(), new MockConfiguration(), DatastoreContext.newBuilder().build()) {
@@ -466,6 +467,7 @@ public class ShardManagerTest extends AbstractActorTest {
     }
 
     private static class DelegatingShardManagerCreator implements Creator<ShardManager> {
+        private static final long serialVersionUID = 1L;
         private Creator<ShardManager> delegate;
 
         public DelegatingShardManagerCreator(Creator<ShardManager> delegate) {
index 79d5c5116d4617de160f68e7f1952042327715ed..fa15db694904ebef9556994a02ac458d10d654fd 100644 (file)
@@ -30,7 +30,7 @@ class ShardTestKit extends JavaTestKit {
         super(actorSystem);
     }
 
-    protected void waitForLogMessage(final Class logLevel, ActorRef subject, String logMessage){
+    protected void waitForLogMessage(final Class<?> logLevel, ActorRef subject, String logMessage){
         // Wait for a specific log message to show up
         final boolean result =
             new JavaTestKit.EventFilter<Boolean>(logLevel
index 4cca1bf9ad6698e9daa32409ced7055836cee351..ce0547c3883d19a12c01b8d9a9ce355770aead3b 100644 (file)
 
 package org.opendaylight.controller.cluster.datastore;
 
+import static org.mockito.Matchers.anyObject;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -20,12 +25,6 @@ import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransaction;
 import org.opendaylight.controller.sal.core.spi.data.DOMStoreWriteTransaction;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
-import static org.mockito.Matchers.anyObject;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
 public class TransactionChainProxyTest {
     ActorContext actorContext = mock(ActorContext.class);
     SchemaContext schemaContext = mock(SchemaContext.class);
@@ -68,4 +67,12 @@ public class TransactionChainProxyTest {
 
         verify(context, times(1)).broadcast(anyObject());
     }
+
+    @Test
+    public void testTransactionChainsHaveUniqueId(){
+        TransactionChainProxy one = new TransactionChainProxy(mock(ActorContext.class));
+        TransactionChainProxy two = new TransactionChainProxy(mock(ActorContext.class));
+
+        Assert.assertNotEquals(one.getTransactionChainId(), two.getTransactionChainId());
+    }
 }
index dc20296ff52d2fe3256507dc90022ab6a7a89918..264709f687adcb8ab13cf4a7149099324dd9c476 100644 (file)
@@ -45,8 +45,6 @@
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-inmemory-datastore</artifactId>
-      <version>1.2.0-SNAPSHOT</version>
-
     </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
@@ -74,7 +72,6 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
index cb1a99b4c0c14122d3ef7c98ae9d5f524523f9db..f1b7261bcb78e41b89cf085888702094e2844707 100644 (file)
@@ -139,7 +139,7 @@ public class BackwardsCompatibleMountPointTest {
 
     private DataNormalizer mockNormalizer() throws DataNormalizationException {
         final DataNormalizer mock = mock(DataNormalizer.class);
-        doReturn(new AbstractMap.SimpleEntry<YangInstanceIdentifier, NormalizedNode<?, ?>>(id, normalizedNode) {})
+        doReturn(new AbstractMap.SimpleEntry<YangInstanceIdentifier, NormalizedNode<?, ?>>(id, normalizedNode))
                 .when(mock).toNormalized(any(YangInstanceIdentifier.class), any(CompositeNode.class));
         doReturn(compositeNode).when(mock).toLegacy(any(YangInstanceIdentifier.class), any(NormalizedNode.class));
         doReturn(id).when(mock).toLegacy(any(YangInstanceIdentifier.class));
index ecea744d14418fdb03216dab312f82c1d0fad1c0..ad4bd46d719e6dbf286f3dafd408c38dd4fbece4 100644 (file)
@@ -349,7 +349,7 @@ public class XSQLAdapter extends Thread implements SchemaContextListener {
         JDBCResultSet rs = new JDBCResultSet(sql);
         try {
             int count = 0;
-            jdbcServer.execute(rs, this);
+            JDBCServer.execute(rs, this);
             boolean isFirst = true;
             int loc = rs.getFields().size() - 1;
             int totalWidth = 0;
index 7b51d03a97aaa6c9a9d1592eb5ba963ec63e6d8c..867c7a47b5af6996c802394e98735e34a47a56c0 100644 (file)
@@ -163,23 +163,23 @@ public class XSQLBluePrint implements DatabaseMetaData, Serializable {
         return cacheLoadedSuccessfuly;
     }
 
-    private static Map<Class, Set<Class>> superClassMap = new HashMap<Class, Set<Class>>();
+    private static Map<Class<?>, Set<Class<?>>> superClassMap = new HashMap<>();
 
-    public static Set<Class> getInheritance(Class myObjectClass,
-            Class returnType) {
+    public static Set<Class<?>> getInheritance(Class<?> myObjectClass,
+            Class<?> returnType) {
 
         if (returnType != null && myObjectClass.equals(returnType)) {
-            return new HashSet<Class>();
+            return new HashSet<>();
         }
-        Set<Class> result = superClassMap.get(myObjectClass);
+        Set<Class<?>> result = superClassMap.get(myObjectClass);
         if (result != null) {
             return result;
         }
-        result = new HashSet<Class>();
+        result = new HashSet<>();
         superClassMap.put(myObjectClass, result);
         if (returnType != null) {
             if (!returnType.equals(myObjectClass)) {
-                Class mySuperClass = myObjectClass.getSuperclass();
+                Class<?> mySuperClass = myObjectClass.getSuperclass();
                 while (mySuperClass != null) {
                     result.add(mySuperClass);
                     mySuperClass = mySuperClass.getSuperclass();
@@ -190,11 +190,11 @@ public class XSQLBluePrint implements DatabaseMetaData, Serializable {
         return result;
     }
 
-    public static Set<Class> collectInterfaces(Class cls) {
-        Set<Class> result = new HashSet();
-        Class myInterfaces[] = cls.getInterfaces();
+    public static Set<Class<?>> collectInterfaces(Class<?> cls) {
+        Set<Class<?>> result = new HashSet<>();
+        Class<?> myInterfaces[] = cls.getInterfaces();
         if (myInterfaces != null) {
-            for (Class in : myInterfaces) {
+            for (Class<?> in : myInterfaces) {
                 result.add(in);
                 result.addAll(collectInterfaces(in));
             }
@@ -213,20 +213,20 @@ public class XSQLBluePrint implements DatabaseMetaData, Serializable {
         map.put(blNode.getBluePrintNodeName(), blNode);
     }
 
-    public Class getGenericType(ParameterizedType type) {
+    public Class<?> getGenericType(ParameterizedType type) {
         Type[] typeArguments = type.getActualTypeArguments();
         for (Type typeArgument : typeArguments) {
             if (typeArgument instanceof ParameterizedType) {
                 ParameterizedType pType = (ParameterizedType) typeArgument;
-                return (Class) pType.getRawType();
+                return (Class<?>) pType.getRawType();
             } else if (typeArgument instanceof Class) {
-                return (Class) typeArgument;
+                return (Class<?>) typeArgument;
             }
         }
         return null;
     }
 
-    public Class getMethodReturnTypeFromGeneric(Method m) {
+    public Class<?> getMethodReturnTypeFromGeneric(Method m) {
         Type rType = m.getGenericReturnType();
         if (rType instanceof ParameterizedType) {
             return getGenericType((ParameterizedType) rType);
index 8d905f208132aed258886a58b5c01ab56682e76c..8e9ed3a26b804a4da028e75849d69a8387352e33 100644 (file)
@@ -85,7 +85,7 @@ public class XSQLBluePrintNode implements Serializable {
         this.children.add(ch);
     }
 
-    public boolean isModelChild(Class p) {
+    public boolean isModelChild(Class<?> p) {
         if (this.relations.size() == 0) {
             return false;
         }
@@ -227,7 +227,7 @@ public class XSQLBluePrintNode implements Serializable {
         return "Unknown";
     }
 
-    public Class getInterface() {
+    public Class<?> getInterface() {
         return this.myInterface;
     }
 
index 1cb3aa555948809c20ab3034e0acb4dd95632ae7..38a96dc45737bf5f0d82382a62c071af98940d78 100644 (file)
@@ -80,20 +80,20 @@ public class XSQLBluePrintRelation implements Serializable {
         }
     }
 
-    public List execute(Object o) {
-        List result = new LinkedList();
+    public List<?> execute(Object o) {
+        List<Object> result = new LinkedList<>();
         if (o == null) {
             return null;
         }
 
         if (Set.class.isAssignableFrom(o.getClass())) {
-            Set lst = (Set) o;
+            Set<?> lst = (Set<?>) o;
             for (Object oo : lst) {
                 addToResult(result, execute(oo));
             }
             return result;
         } else if (List.class.isAssignableFrom(o.getClass())) {
-            List lst = (List) o;
+            List<?> lst = (List<?>) o;
             for (Object oo : lst) {
                 addToResult(result, execute(oo));
             }
@@ -111,17 +111,17 @@ public class XSQLBluePrintRelation implements Serializable {
         return result;
     }
 
-    public static void addToResult(List result, Object o) {
+    private static void addToResult(List<Object> result, Object o) {
         if (o == null) {
             return;
         }
         if (Set.class.isAssignableFrom(o.getClass())) {
-            Set lst = (Set) o;
+            Set<?> lst = (Set<?>) o;
             for (Object oo : lst) {
                 result.add(oo);
             }
         } else if (List.class.isAssignableFrom(o.getClass())) {
-            List lst = (List) o;
+            List<?> lst = (List<?>) o;
             for (Object oo : lst) {
                 result.add(oo);
             }
index 4c6cca7fa612d9d00be8bdb47f8f6dd52f339b94..c1404d58e6de1424f6729772eb4a617586f94dd7 100644 (file)
@@ -2,11 +2,13 @@ package org.opendaylight.controller.md.sal.dom.xsql;
 
 import java.io.Serializable;
 
-public class XSQLColumn implements Serializable, Comparable {
+public class XSQLColumn implements Serializable, Comparable<Object> {
+    private static final long serialVersionUID = 4854919735031714751L;
+
     private String name = null;
     private String tableName = null;
     private int charWidth = -1;
-    private Class type = null;
+    private Class<?> type = null;
     private transient Object bluePrintNode = null;
     private String origName = null;
     private String origTableName = null;
index 6a27230664bb2514222dcc7695ec1a267280c1d3..17b8ae5f291e7a12f425dd20a96010ddb165af20 100644 (file)
@@ -32,7 +32,7 @@ public class XSQLODLUtils {
         types.put(Status.class, Status.class);
     }
 
-    public static boolean isColumnType(Class cls) {
+    public static boolean isColumnType(Class<?> cls) {
         return types.containsKey(cls);
     }
 
@@ -229,7 +229,7 @@ public class XSQLODLUtils {
         return "NULL";
     }
 
-    public static Class getTypeForODLColumn(Object odlNode){
+    public static Class<?> getTypeForODLColumn(Object odlNode){
         Object type = get(odlNode,"type");
         if(type instanceof Uint32 || type instanceof Uint64){
             return long.class;
index 019711157cc30db5bb7a2e43a6d4f5b2725858f2..ba0626fdfe68c2335a9beeb4cb5b22637488ab86 100644 (file)
@@ -6,6 +6,8 @@ import java.util.Map;
 import org.opendaylight.controller.md.sal.dom.xsql.XSQLBluePrint;
 
 public class JDBCCommand implements Serializable {
+    private static final long serialVersionUID = 1L;
+
     public int type = 0;
     public static final int TYPE_EXECUTE_QUERY = 1;
     public static final int TYPE_QUERY_REPLY = 2;
index 021f6ee19b7d0bfdb71cdfc8f954783191e99f4f..5abe8a3165bacbd99daff7e1e7e732d51d8b032a 100644 (file)
@@ -127,7 +127,7 @@ public class JDBCResultSet implements Serializable, ResultSet,
         return 1;
     }
 
-    public int isObjectFitCriteria(Object element, Class cls) {
+    public int isObjectFitCriteria(Object element, Class<?> cls) {
         Map<XSQLColumn, List<XSQLCriteria>> tblCriteria = criteria.get(cls
                 .getName());
         if (tblCriteria == null) {
@@ -207,7 +207,7 @@ public class JDBCResultSet implements Serializable, ResultSet,
         }
     }
 
-    public void addRecord(ArrayList hierarchy) {
+    public void addRecord(ArrayList<?> hierarchy) {
         Map rec = new HashMap();
         for (int i = hierarchy.size() - 1; i >= 0; i--) {
             Object element = hierarchy.get(i);
index b71b0153512ba51051c513564fe3e7594ef7b903..27e2196970ae82981b73a865fff9e9d7cd187630 100644 (file)
@@ -89,7 +89,7 @@ public class JDBCStatement implements PreparedStatement {
         return true;
     }
 
-    public void addRecord(ArrayList hierarchy) {
+    public void addRecord(ArrayList<?> hierarchy) {
         rs.addRecord(hierarchy);
     }
 
index 5e61dfb028e33551c72c63e7b4ff89bcf1554119..fccbd715704fc634672edd0f9250628aba511606 100644 (file)
@@ -29,6 +29,7 @@ import org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlDocumentUtils;
 import org.opendaylight.yangtools.yang.data.impl.util.CompositeNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -77,11 +78,16 @@ public class NetconfMessageTransformer implements MessageTransformer<NetconfMess
                     final DataNodeContainer schemaForGetConfig = NetconfMessageTransformUtil.createSchemaForGetConfig(schemaContext.get());
                     w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, schemaForGetConfig, codecProvider);
                 } else {
-                    final DataNodeContainer schemaForGetConfig = NetconfMessageTransformUtil.createSchemaForRpc(rpc, schemaContext.get());
-                    w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, schemaForGetConfig, codecProvider);
+                    final Optional<RpcDefinition> schemaForRpc = NetconfMessageTransformUtil.findSchemaForRpc(rpc, schemaContext.get());
+                    if(schemaForRpc.isPresent()) {
+                        final DataNodeContainer schemaForGetConfig = NetconfMessageTransformUtil.createSchemaForRpc(schemaForRpc.get());
+                        w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, schemaForGetConfig, codecProvider);
+                    } else {
+                        w3cPayload = toRpcRequestWithoutSchema(rpcPayload, codecProvider);
+                    }
                 }
             } else {
-                w3cPayload = XmlDocumentUtils.toDocument(rpcPayload, codecProvider);
+                w3cPayload = toRpcRequestWithoutSchema(rpcPayload, codecProvider);
             }
         } catch (final UnsupportedDataTypeException e) {
             throw new IllegalArgumentException("Unable to create message", e);
@@ -90,6 +96,10 @@ public class NetconfMessageTransformer implements MessageTransformer<NetconfMess
         return new NetconfMessage(w3cPayload);
     }
 
+    private Document toRpcRequestWithoutSchema(final CompositeNodeTOImpl rpcPayload, final XmlCodecProvider codecProvider) {
+        return XmlDocumentUtils.toDocument(rpcPayload, codecProvider);
+    }
+
     @Override
     public synchronized RpcResult<CompositeNode> toRpcResult(final NetconfMessage message, final QName rpc) {
         if(schemaContext.isPresent()) {
index 2e5f8078a377e980d88e7c52e337f4fb265108e2..efc020ecd0044ef4e8d13f081611972e20db1efa 100644 (file)
@@ -7,14 +7,6 @@
  */
 package org.opendaylight.controller.sal.connect.netconf.util;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Collections2;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Sets;
-
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -33,9 +25,9 @@ import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.Node;
 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.impl.CompositeNodeTOImpl;
 import org.opendaylight.yangtools.yang.data.impl.ImmutableCompositeNode;
 import org.opendaylight.yangtools.yang.data.impl.NodeFactory;
@@ -48,6 +40,15 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Collections2;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Sets;
+
 public class NetconfMessageTransformUtil {
 
     public static final String MESSAGE_ID_ATTR = "message-id";
@@ -118,7 +119,7 @@ public class NetconfMessageTransformUtil {
     static Node<?> toNode(final YangInstanceIdentifier.NodeIdentifierWithPredicates argument, final Node<?> node) {
         final List<Node<?>> list = new ArrayList<>();
         for (final Map.Entry<QName, Object> arg : argument.getKeyValues().entrySet()) {
-            list.add(new SimpleNodeTOImpl(arg.getKey(), null, arg.getValue()));
+            list.add(new SimpleNodeTOImpl<>(arg.getKey(), null, arg.getValue()));
         }
         if (node != null) {
             list.add(node);
@@ -326,6 +327,20 @@ public class NetconfMessageTransformUtil {
         return new NodeContainerProxy(NETCONF_RPC_QNAME, Sets.<DataSchemaNode>newHashSet(editConfigProxy));
     }
 
+
+    public static Optional<RpcDefinition> findSchemaForRpc(final QName rpcName, final SchemaContext schemaContext) {
+        Preconditions.checkNotNull(rpcName);
+        Preconditions.checkNotNull(schemaContext);
+
+        for (final RpcDefinition rpcDefinition : schemaContext.getOperations()) {
+            if(rpcDefinition.getQName().equals(rpcName)) {
+                return Optional.of(rpcDefinition);
+            }
+        }
+
+        return Optional.absent();
+    }
+
     /**
      * Creates artificial schema node for schema defined rpc. This artificial schema looks like:
      * <pre>
@@ -341,18 +356,9 @@ public class NetconfMessageTransformUtil {
      * This makes the translation of schema defined rpc request
      * to xml use schema which is crucial for some types of nodes e.g. identity-ref.
      */
-    public static DataNodeContainer createSchemaForRpc(final QName rpcName, final SchemaContext schemaContext) {
-        Preconditions.checkNotNull(rpcName);
-        Preconditions.checkNotNull(schemaContext);
-
-        for (final RpcDefinition rpcDefinition : schemaContext.getOperations()) {
-            if(rpcDefinition.getQName().equals(rpcName)) {
-                final NodeContainerProxy rpcBodyProxy = new NodeContainerProxy(rpcName, rpcDefinition.getInput().getChildNodes());
-                return new NodeContainerProxy(NETCONF_RPC_QNAME, Sets.<DataSchemaNode>newHashSet(rpcBodyProxy));
-            }
-        }
-
-        throw new IllegalArgumentException("Rpc " + rpcName + " not found in schema context " + schemaContext + ". Unable to invoke Rpc");
+    public static DataNodeContainer createSchemaForRpc(final RpcDefinition rpcDefinition) {
+        final NodeContainerProxy rpcBodyProxy = new NodeContainerProxy(rpcDefinition.getQName(), rpcDefinition.getInput().getChildNodes());
+        return new NodeContainerProxy(NETCONF_RPC_QNAME, Sets.<DataSchemaNode>newHashSet(rpcBodyProxy));
     }
 
     public static CompositeNodeTOImpl wrap(final QName name, final Node<?> node) {
index bbb5038caf01773c8de4a96ecb9674d0b8e627ef..3425739afdb2bdf674c06ebf8c6f46506df4e30d 100644 (file)
@@ -8,14 +8,16 @@ import java.io.InputStream;
 import java.util.Collections;
 import java.util.List;
 import java.util.Set;
-
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
 import org.opendaylight.controller.sal.connect.netconf.schema.mapping.NetconfMessageTransformer;
 import org.opendaylight.controller.sal.connect.netconf.util.NetconfMessageTransformUtil;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.opendaylight.yangtools.yang.data.api.Node;
 import org.opendaylight.yangtools.yang.data.impl.ImmutableCompositeNode;
 import org.opendaylight.yangtools.yang.data.impl.util.CompositeNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.Module;
@@ -251,6 +253,21 @@ public class NetconfToRpcRequestTest {
 
         final org.w3c.dom.Node streamName = subscribeName.getFirstChild();
         assertEquals(streamName.getLocalName(), "stream-name");
+
+    }
+
+    @Test
+    public void testRpcResponse() throws Exception {
+        final NetconfMessage response = new NetconfMessage(XmlUtil.readXmlToDocument(
+                "<rpc-reply xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\" message-id=\"m-5\">\n" +
+                "<data xmlns=\"urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring\">" +
+                "module schema" +
+                "</data>\n" +
+                "</rpc-reply>\n"
+        ));
+        final RpcResult<CompositeNode> compositeNodeRpcResult = messageTransformer.toRpcResult(response, SUBSCRIBE_RPC_NAME);
+        final Node<?> dataNode = compositeNodeRpcResult.getResult().getValue().get(0);
+        assertEquals("module schema", dataNode.getValue());
     }
 
 }
diff --git a/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java b/opendaylight/md-sal/sal-netconf-connector/src/test/java/org/opendaylight/controller/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java
new file mode 100644 (file)
index 0000000..5a2c97c
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * 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.sal.connect.netconf.schema.mapping;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+import org.hamcrest.CoreMatchers;
+import org.junit.Test;
+import org.opendaylight.controller.netconf.api.NetconfMessage;
+import org.opendaylight.controller.netconf.util.xml.XmlUtil;
+import org.opendaylight.controller.sal.connect.netconf.NetconfToRpcRequestTest;
+import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.data.api.CompositeNode;
+import org.opendaylight.yangtools.yang.data.api.Node;
+import org.opendaylight.yangtools.yang.data.impl.NodeFactory;
+import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
+
+public class NetconfMessageTransformerTest {
+
+    private static final QName COMMIT_Q_NAME = QName.create("namespace", "2012-12-12", "commit");
+
+    @Test
+    public void testToRpcRequestNoSchemaForRequest() throws Exception {
+        final NetconfMessageTransformer netconfMessageTransformer = getTransformer();
+        final NetconfMessage netconfMessage = netconfMessageTransformer.toRpcRequest(COMMIT_Q_NAME,
+                NodeFactory.createImmutableCompositeNode(COMMIT_Q_NAME, null, Collections.<Node<?>>emptyList()));
+        assertThat(XmlUtil.toString(netconfMessage.getDocument()), CoreMatchers.containsString("<commit"));
+    }
+
+    private NetconfMessageTransformer getTransformer() {
+        final NetconfMessageTransformer netconfMessageTransformer = new NetconfMessageTransformer();
+        netconfMessageTransformer.onGlobalContextUpdated(getSchema());
+        return netconfMessageTransformer;
+    }
+
+    @Test
+    public void testToRpcResultNoSchemaForResult() throws Exception {
+        final NetconfMessageTransformer netconfMessageTransformer = getTransformer();
+        final NetconfMessage response = new NetconfMessage(XmlUtil.readXmlToDocument(
+                "<rpc-reply><ok/></rpc-reply>"
+        ));
+        final RpcResult<CompositeNode> compositeNodeRpcResult = netconfMessageTransformer.toRpcResult(response, COMMIT_Q_NAME);
+        assertTrue(compositeNodeRpcResult.isSuccessful());
+        assertEquals("ok", compositeNodeRpcResult.getResult().getValue().get(0).getKey().getLocalName());
+    }
+
+    public SchemaContext getSchema() {
+        final List<InputStream> modelsToParse = Collections
+                .singletonList(NetconfToRpcRequestTest.class.getResourceAsStream("/schemas/rpc-notification-subscription.yang"));
+        final YangParserImpl parser = new YangParserImpl();
+        final Set<Module> configModules = parser.parseYangModelsFromStreams(modelsToParse);
+        final SchemaContext cfgCtx = parser.resolveSchemaContext(configModules);
+        assertNotNull(cfgCtx);
+        return cfgCtx;
+    }
+}
index d16f67209f1cb152e9d332525f682c1225b44d91..ec5bb215bf991936c2f666c827d0292f048e0c80 100644 (file)
       <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
-      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
       <dependency>
index 4ae9c2e4d097b36d71a9a3207e14ee35fcff3c83..a8407129999eade20e9a89f2563f255e94c45ed1 100644 (file)
@@ -65,6 +65,7 @@ public class RpcManager extends AbstractUntypedActor {
                             final Broker.ProviderSession brokerSession,
                             final RpcProvisionRegistry rpcProvisionRegistry) {
     return Props.create(new Creator<RpcManager>() {
+      private static final long serialVersionUID = 1L;
       @Override
       public RpcManager create() throws Exception {
         return new RpcManager(schemaContext, brokerSession, rpcProvisionRegistry);
index 522dd44f5bf934d95b91d40f1b5656e80f703b8e..4bb5258b4005f21eabc62c2707f2d3edca59b229 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yangtools.yang.common.QName;
 import java.io.Serializable;
 
 public class ExecuteRpc implements Serializable {
+  private static final long serialVersionUID = 1L;
 
   private final String inputCompositeNode;
   private final QName rpc;
index 59d09fc41b6e783491f16a2279d1124db266da09..652569b7baf705ea0efa5c4d35f530edf85942f0 100644 (file)
@@ -15,6 +15,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import java.io.Serializable;
 
 public class InvokeRpc implements Serializable {
+  private static final long serialVersionUID = 1L;
 
   private final QName rpc;
   private final YangInstanceIdentifier identifier;
index 17766f15b9af7c22112852c16686c02684155924..387cb90112dad6ffbab6fb7cce7bf7c1d92442f1 100644 (file)
@@ -7,11 +7,10 @@
  */
 package org.opendaylight.controller.remote.rpc.messages;
 
-
-
 import java.io.Serializable;
 
 public class RpcResponse implements Serializable {
+  private static final long serialVersionUID = 1L;
   private final String resultCompositeNode;
 
   public RpcResponse(final String resultCompositeNode) {
index d21d05d7fe9b02ae9a604a2f6c0567706ec2f68a..fe8c463d2e17fae2d1377aafa0be90dda23beff2 100644 (file)
@@ -18,6 +18,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class RoutingTable implements Copier<RoutingTable>, Serializable {
+    private static final long serialVersionUID = 1L;
 
     private Map<RpcRouter.RouteIdentifier<?, ?, ?>, Long> table = new HashMap<>();
     private ActorRef router;
index 4dac456dc426d3493c8988355f40a79ca1df97ab..01c77f1f085823928c91dc1feb451ad6a2158c0d 100644 (file)
@@ -10,6 +10,7 @@ package org.opendaylight.controller.remote.rpc.registry.gossip;
 import java.io.Serializable;
 
 public class BucketImpl<T extends Copier<T>> implements Bucket<T>, Serializable {
+    private static final long serialVersionUID = 1L;
 
     private Long version = System.currentTimeMillis();
 
index bf8b20213b48e10a147dc96ddec473f6e891f882..4e8f2c61c9af22869f785b2632a3df8695b2c48a 100644 (file)
@@ -29,9 +29,12 @@ public class Messages {
 
     public static class BucketStoreMessages{
 
-        public static class GetLocalBucket implements Serializable{}
+        public static class GetLocalBucket implements Serializable {
+            private static final long serialVersionUID = 1L;
+        }
 
         public static class ContainsBucket implements Serializable {
+            private static final long serialVersionUID = 1L;
             final private Bucket bucket;
 
             public ContainsBucket(Bucket bucket){
@@ -46,20 +49,25 @@ public class Messages {
         }
 
         public static class UpdateBucket extends ContainsBucket implements Serializable {
+            private static final long serialVersionUID = 1L;
             public UpdateBucket(Bucket bucket){
                 super(bucket);
             }
         }
 
         public static class GetLocalBucketReply extends ContainsBucket implements Serializable {
+            private static final long serialVersionUID = 1L;
             public GetLocalBucketReply(Bucket bucket){
                 super(bucket);
             }
         }
 
-        public static class GetAllBuckets implements Serializable{}
+        public static class GetAllBuckets implements Serializable {
+            private static final long serialVersionUID = 1L;
+        }
 
         public static class GetBucketsByMembers implements Serializable{
+            private static final long serialVersionUID = 1L;
             private Set<Address> members;
 
             public GetBucketsByMembers(Set<Address> members){
@@ -73,6 +81,7 @@ public class Messages {
         }
 
         public static class ContainsBuckets implements Serializable{
+            private static final long serialVersionUID = 1L;
             private Map<Address, Bucket> buckets;
 
             public ContainsBuckets(Map<Address, Bucket> buckets){
@@ -94,20 +103,25 @@ public class Messages {
         }
 
         public static class GetAllBucketsReply extends ContainsBuckets implements Serializable{
+            private static final long serialVersionUID = 1L;
             public GetAllBucketsReply(Map<Address, Bucket> buckets) {
                 super(buckets);
             }
         }
 
         public static class GetBucketsByMembersReply extends ContainsBuckets implements Serializable{
+            private static final long serialVersionUID = 1L;
             public GetBucketsByMembersReply(Map<Address, Bucket> buckets) {
                 super(buckets);
             }
         }
 
-        public static class GetBucketVersions implements Serializable{}
+        public static class GetBucketVersions implements Serializable {
+            private static final long serialVersionUID = 1L;
+        }
 
         public static class ContainsBucketVersions implements Serializable{
+            private static final long serialVersionUID = 1L;
             Map<Address, Long> versions;
 
             public ContainsBucketVersions(Map<Address, Long> versions) {
@@ -123,12 +137,14 @@ public class Messages {
         }
 
         public static class GetBucketVersionsReply extends ContainsBucketVersions implements Serializable{
+            private static final long serialVersionUID = 1L;
             public GetBucketVersionsReply(Map<Address, Long> versions) {
                 super(versions);
             }
         }
 
         public static class UpdateRemoteBuckets extends ContainsBuckets implements Serializable{
+            private static final long serialVersionUID = 1L;
             public UpdateRemoteBuckets(Map<Address, Bucket> buckets) {
                 super(buckets);
             }
@@ -136,11 +152,16 @@ public class Messages {
     }
 
     public static class GossiperMessages{
-        public static class Tick implements Serializable {}
+        public static class Tick implements Serializable {
+            private static final long serialVersionUID = 1L;
+        }
 
-        public static final class GossipTick extends Tick {}
+        public static final class GossipTick extends Tick {
+            private static final long serialVersionUID = 1L;
+        }
 
         public static final class GossipStatus extends ContainsBucketVersions implements Serializable{
+            private static final long serialVersionUID = 1L;
             private Address from;
 
             public GossipStatus(Address from, Map<Address, Long> versions) {
@@ -154,6 +175,7 @@ public class Messages {
         }
 
         public static final class GossipEnvelope extends ContainsBuckets implements Serializable {
+            private static final long serialVersionUID = 1L;
             private final Address from;
             private final Address to;
 
index 13cec54175758fdea10a61a3902eef84e2a3198d..dde1861a06214d696fcc3e348dfdf25769ebc9b4 100644 (file)
@@ -15,10 +15,10 @@ import org.slf4j.LoggerFactory;
 
 public class ConditionalProbe {
     private final ActorRef actorRef;
-    private final Predicate predicate;
+    private final Predicate<Object> predicate;
     Logger log = LoggerFactory.getLogger(ConditionalProbe.class);
 
-    public ConditionalProbe(ActorRef actorRef, Predicate predicate) {
+    public ConditionalProbe(ActorRef actorRef, Predicate<Object> predicate) {
         this.actorRef = actorRef;
         this.predicate = predicate;
     }
index f6f720eed0f62dd50393c3275c6e7d9cc8fab23d..ee96cb897fccd45239badad8cef7a0a161edd467 100644 (file)
@@ -200,11 +200,11 @@ public class RpcRegistryTest {
         Messages.BucketStoreMessages.UpdateRemoteBuckets.class);
   }
 
-  private JavaTestKit createProbeForMessage(ActorSystem node, ActorPath subjectPath, final Class clazz) {
+  private JavaTestKit createProbeForMessage(ActorSystem node, ActorPath subjectPath, final Class<?> clazz) {
     final JavaTestKit probe = new JavaTestKit(node);
 
     ConditionalProbe conditionalProbe =
-        new ConditionalProbe(probe.getRef(), new Predicate() {
+        new ConditionalProbe(probe.getRef(), new Predicate<Object>() {
           @Override
           public boolean apply(@Nullable Object input) {
               if (input != null)
index e61b54f067e7bcba09a0ef7d476f7cd3b04c938d..cf42ebf1ccd4de520c4d5f4036f9a3e67cd75275 100644 (file)
@@ -71,7 +71,7 @@ public class GossiperTest {
     @Test
     public void testReceiveGossipTick_WhenNoRemoteMemberShouldIgnore(){
 
-        mockGossiper.setClusterMembers(Collections.EMPTY_LIST);
+        mockGossiper.setClusterMembers(Collections.<Address>emptyList());
         doNothing().when(mockGossiper).getLocalStatusAndSendTo(any(Address.class));
         mockGossiper.receiveGossipTick();
         verify(mockGossiper, times(0)).getLocalStatusAndSendTo(any(Address.class));
index 5abb4f891043076d673cc416f867c57470b69f87..3d3c52d7d1237375e5483d2eccadde7d29736f07 100644 (file)
   <artifactId>sal-rest-docgen</artifactId>
   <packaging>bundle</packaging>
 
-  <properties>
-    <jaxrs-api.version>3.0.4.Final</jaxrs-api.version>
-  </properties>
-
   <dependencies>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
@@ -42,7 +38,6 @@
     <dependency>
       <groupId>org.jboss.resteasy</groupId>
       <artifactId>jaxrs-api</artifactId>
-      <version>${jaxrs-api.version}</version>
     </dependency>
 
     <dependency>
index 9a1816b90e88f333417a6c62d335c67b7f04739f..9442ca0c073b0e6026db7b783cd8f85b2dc36585 100644 (file)
@@ -70,7 +70,7 @@ public class DocProvider implements BundleActivator, ServiceTrackerCustomizer<Br
     @Override
     public void start(BundleContext context) throws Exception {
         bundleContext = context;
-        brokerServiceTracker = new ServiceTracker(context, Broker.class, this);
+        brokerServiceTracker = new ServiceTracker<>(context, Broker.class, this);
         brokerServiceTracker.open();
     }
 
index c08f329f0d81d694e8c4f97a04fd2dfe69c25468..192836e9fae825373096ae1f8327d93c2ccdd187 100644 (file)
@@ -39,7 +39,7 @@ public class NotificationServiceImpl implements NotificationService {
         notifications.add(new QName(notificationType.toString()));
         String notificationStreamName = RemoteStreamTools.createNotificationStream(salRemoteService, notifications);
         final Map<String,EventStreamInfo> desiredEventStream = RemoteStreamTools.createEventStream(restconfClientContext, notificationStreamName);
-        RemoteNotificationListener remoteNotificationListener = new RemoteNotificationListener(listener);
+        RemoteNotificationListener<T> remoteNotificationListener = new RemoteNotificationListener<T>(listener);
 
         final ListenerRegistration<?> listenerRegistration = restconfClientContext.getEventStreamContext(desiredEventStream.get(desiredEventStream.get(notificationStreamName)))
                 .registerNotificationListener(remoteNotificationListener);
index 895a5030e965bfdf19c35b459a2c3f5e64acd3ec..82fa2ae2e971338dacb4a09e7cd58e83f701b5ce 100644 (file)
@@ -8,15 +8,16 @@
 package org.opendaylight.controller.sal.restconf.broker.listeners;
 
 import org.opendaylight.controller.sal.binding.api.NotificationListener;
+import org.opendaylight.yangtools.yang.binding.Notification;
 
-public class RemoteNotificationListener implements org.opendaylight.yangtools.yang.binding.NotificationListener {
+public class RemoteNotificationListener<T extends Notification> implements org.opendaylight.yangtools.yang.binding.NotificationListener {
 
-    org.opendaylight.controller.sal.binding.api.NotificationListener listener;
+    NotificationListener<T> listener;
 
-    public RemoteNotificationListener(NotificationListener listener){
+    public RemoteNotificationListener(NotificationListener<T> listener){
         this.listener = listener;
     }
-    public NotificationListener getListener(){
+    public NotificationListener<T> getListener() {
         return this.listener;
     }
 
index 16ca0aee932e66d9669fcd28528c45d267dedf09..3c4bbba4a4e8a273bc1e58095e785eec2dbf17ba 100644 (file)
@@ -11,14 +11,14 @@ import org.opendaylight.controller.sal.binding.api.NotificationListener;
 import org.opendaylight.yangtools.yang.binding.Notification;
 
 
-public class SalNotificationListener implements NotificationListener {
-    private NotificationListener notificationListener;
+public class SalNotificationListener<T extends Notification> implements NotificationListener<T> {
+    private NotificationListener<T> notificationListener;
 
-    public SalNotificationListener( NotificationListener notificationListener){
+    public SalNotificationListener( NotificationListener<T> notificationListener){
         this.notificationListener = notificationListener;
     }
     @Override
     public void onNotification(Notification notification) {
-        this.notificationListener.onNotification(notification);
+        this.notificationListener.onNotification((T)notification);
     }
 }
index 1a443177c68a4ef8fa44ee2db7a461ff184ff8c1..eb6c51b35194e54c2c33ebc220668a99270a134a 100644 (file)
@@ -45,7 +45,6 @@
     <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
-      <version>${slf4j.version}</version>
       <scope>test</scope>
     </dependency>
   </dependencies>
index 10b643f9f4d5c3a770ae229e688cdbe755ad951e..47fbc6ddcfa9b6179cea3a430bc368fe5ee7b772 100644 (file)
@@ -26,8 +26,8 @@ public class SimpleCompositeAttributeWritingStrategy extends SimpleAttributeWrit
 
     protected Object preprocess(Object value) {
         Util.checkType(value, Map.class);
-        Preconditions.checkArgument(((Map)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
-        return ((Map)value).values().iterator().next();
+        Preconditions.checkArgument(((Map<?, ?>)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
+        return ((Map<?, ?>)value).values().iterator().next();
     }
 
 }
index 104bf4df94c86dfe8b5bb44674020feb0f1c5ecb..1e5d2bb8d96e55f6c75f7ae27dafafc50df82105 100644 (file)
@@ -33,8 +33,8 @@ public class SimpleIdentityRefAttributeWritingStrategy extends SimpleAttributeWr
 
     protected Object preprocess(Object value) {
         Util.checkType(value, Map.class);
-        Preconditions.checkArgument(((Map)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
-        Object stringValue = ((Map) value).values().iterator().next();
+        Preconditions.checkArgument(((Map<?, ?>)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
+        Object stringValue = ((Map<?, ?>) value).values().iterator().next();
         Util.checkType(stringValue, String.class);
 
         return stringValue;
index d75feb273eda83999d55dbcafb0aeb16257d97fc..4802cba7af675c5e2a6dd11cc0851d676524d095 100644 (file)
@@ -27,12 +27,12 @@ public class SimpleUnionAttributeWritingStrategy extends SimpleAttributeWritingS
 
     protected Object preprocess(Object value) {
         Util.checkType(value, Map.class);
-        Preconditions.checkArgument(((Map)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
-        Object listOfStrings = ((Map) value).values().iterator().next();
+        Preconditions.checkArgument(((Map<?, ?>)value).size() == 1, "Unexpected number of values in %s, expected 1", value);
+        Object listOfStrings = ((Map<?, ?>) value).values().iterator().next();
         Util.checkType(listOfStrings, List.class);
 
         StringBuilder b = new StringBuilder();
-        for (Object character: (List)listOfStrings) {
+        for (Object character: (List<?>)listOfStrings) {
             Util.checkType(character, String.class);
             b.append(character);
         }
index 816e118f3944f4fb29e63a8b8dbd697cdf260d7e..3c4213cbc381b62d70ac073937e89dfaebbdde5e 100644 (file)
@@ -9,13 +9,12 @@
 package org.opendaylight.controller.netconf.confignetconfconnector.operations.runtimerpc;
 
 import static org.junit.Assert.assertEquals;
-
+import com.google.common.collect.ImmutableMap;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -35,9 +34,7 @@ public class RuntimeRpcElementResolvedTest {
         return Arrays.asList(new Object[][] {
                 // With namespaces
                 { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']/b:listener-state[b:peer-id='127.0.0.1']",
-                        new HashMap<String, String>() {{
-                            put("listener-state", "127.0.0.1");
-                        }}},
+                        new HashMap<>(ImmutableMap.of("listener-state", "127.0.0.1"))},
                 { "/a:modules/a:module[a:name='instanceName'][a:type='moduleType']",
                         null},
 
@@ -57,10 +54,7 @@ public class RuntimeRpcElementResolvedTest {
                 { "/modules/module[name=instanceName and type=moduleType]/inner[key=\"b\"]", Collections.singletonMap("inner", "b")},
 
                 { "/modules/module[name=instanceName and type=\"moduleType\"]/inner[key2=a]/inner2[key=b]",
-                        new HashMap<String, String>() {{
-                            put("inner", "a");
-                            put("inner2", "b");
-                        }}
+                        new HashMap<>(ImmutableMap.of("inner", "a", "inner2", "b"))
                 },
         });
     }
index 95fdcccab80a08f839666a152d89c722158bb949..62d6275b9ef004440db7f6a075b114b476edb2c1 100644 (file)
@@ -17,7 +17,6 @@ import org.junit.Test;
 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
 import org.opendaylight.protocol.framework.SessionListenerFactory;
 import org.opendaylight.protocol.framework.SessionNegotiator;
-
 import static org.junit.Assert.assertNotNull;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
@@ -27,15 +26,15 @@ public class NetconfClientSessionNegotiatorFactoryTest {
     public void testGetSessionNegotiator() throws Exception {
         NetconfClientSessionListener sessionListener = mock(NetconfClientSessionListener.class);
         Timer timer = new HashedWheelTimer();
-        SessionListenerFactory listenerFactory = mock(SessionListenerFactory.class);
+        SessionListenerFactory<NetconfClientSessionListener> listenerFactory = mock(SessionListenerFactory.class);
         doReturn(sessionListener).when(listenerFactory).getSessionListener();
 
         Channel channel = mock(Channel.class);
-        Promise promise = mock(Promise.class);
+        Promise<NetconfClientSession> promise = mock(Promise.class);
         NetconfClientSessionNegotiatorFactory negotiatorFactory = new NetconfClientSessionNegotiatorFactory(timer,
                 Optional.<NetconfHelloMessageAdditionalHeader>absent(), 200L);
 
-        SessionNegotiator sessionNegotiator = negotiatorFactory.getSessionNegotiator(listenerFactory, channel, promise);
+        SessionNegotiator<?> sessionNegotiator = negotiatorFactory.getSessionNegotiator(listenerFactory, channel, promise);
         assertNotNull(sessionNegotiator);
     }
 }
index 9993f48a4d2029977c62c35a4e28de7a122ac422..187f13b2585d9fda02fdc6de209e58cc92001ebd 100644 (file)
@@ -103,7 +103,7 @@ public class NetconfClientSessionNegotiatorTest {
         return pipeline;
     }
 
-    private NetconfClientSessionNegotiator createNetconfClientSessionNegotiator(final Promise promise,
+    private NetconfClientSessionNegotiator createNetconfClientSessionNegotiator(final Promise<NetconfClientSession> promise,
                                                                                 final NetconfMessage startExi) {
         ChannelProgressivePromise progressivePromise = mock(ChannelProgressivePromise.class);
         NetconfClientSessionPreferences preferences = new NetconfClientSessionPreferences(helloMessage, startExi);
@@ -122,7 +122,7 @@ public class NetconfClientSessionNegotiatorTest {
         NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, null);
 
         negotiator.channelActive(null);
-        Set caps = Sets.newSet("a", "b");
+        Set<String> caps = Sets.newSet("a", "b");
         NetconfHelloMessage helloServerMessage = NetconfHelloMessage.createServerHello(caps, 10);
         negotiator.handleMessage(helloServerMessage);
         verify(promise).setSuccess(anyObject());
@@ -137,7 +137,7 @@ public class NetconfClientSessionNegotiatorTest {
         NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, exiMessage);
 
         negotiator.channelActive(null);
-        Set caps = Sets.newSet("exi:1.0");
+        Set<String> caps = Sets.newSet("exi:1.0");
         NetconfHelloMessage helloMessage = NetconfHelloMessage.createServerHello(caps, 10);
 
         doAnswer(new Answer<Object>() {
index 29b903f235d190eae0c68cc563c4109335fe5a2b..9065ca45a290a4b761dc693caf6b17ca3723182d 100644 (file)
@@ -25,7 +25,7 @@ public class SimpleNetconfClientSessionListenerTest {
 
     private Channel channel;
     private ChannelFuture channelFuture;
-    Set caps;
+    Set<String> caps;
     private NetconfHelloMessage helloMessage;
     private NetconfMessage message;
     private NetconfClientSessionListener sessionListener;
index 0830c2967bb070420e5ddec32410d702b0acd3a2..8c55d8cc10eaadf1d01ad18391383013fcc68068 100644 (file)
@@ -29,7 +29,7 @@ public class SshClientChannelInitializerTest {
         NetconfClientSessionNegotiatorFactory negotiatorFactory = mock(NetconfClientSessionNegotiatorFactory.class);
         NetconfClientSessionListener sessionListener = mock(NetconfClientSessionListener.class);
 
-        SessionNegotiator sessionNegotiator = mock(SessionNegotiator.class);
+        SessionNegotiator<?> sessionNegotiator = mock(SessionNegotiator.class);
         doReturn("").when(sessionNegotiator).toString();
         doReturn(sessionNegotiator).when(negotiatorFactory).getSessionNegotiator(any(SessionListenerFactory.class), any(Channel.class), any(Promise.class));
         ChannelPipeline pipeline = mock(ChannelPipeline.class);
index 369f0ed574184718bacc15da330be789f8a27936..9c57565981d40069ee010458357c1f388879e8c6 100644 (file)
@@ -22,7 +22,7 @@ public class TcpClientChannelInitializerTest {
     @Test
     public void testInitializeSessionNegotiator() throws Exception {
         NetconfClientSessionNegotiatorFactory factory = mock(NetconfClientSessionNegotiatorFactory.class);
-        SessionNegotiator sessionNegotiator = mock(SessionNegotiator.class);
+        SessionNegotiator<?> sessionNegotiator = mock(SessionNegotiator.class);
         doReturn("").when(sessionNegotiator).toString();
         doReturn(sessionNegotiator).when(factory).getSessionNegotiator(any(SessionListenerFactory.class), any(Channel.class), any(Promise.class));
         NetconfClientSessionListener listener = mock(NetconfClientSessionListener.class);
index 1b078be9a44863031bab7c631bf3adda53180b5d..21250357994644a7bafa0940acc880a802c43a0f 100644 (file)
@@ -12,7 +12,6 @@ import com.google.common.base.Optional;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import io.netty.channel.Channel;
-import java.util.List;
 import java.util.Set;
 import org.junit.Before;
 import org.junit.Test;
@@ -56,7 +55,6 @@ public class NetconfMonitoringServiceImplTest {
     public void testSessions() throws Exception {
         doReturn("sessToStr").when(managementSession).toString();
         service.onSessionUp(managementSession);
-        List list = Lists.newArrayList(managementSession);
     }
 
     @Test(expected = RuntimeException.class)
@@ -75,17 +73,17 @@ public class NetconfMonitoringServiceImplTest {
     public void testGetSchemas3() throws Exception {
         doReturn("").when(managementSession).toString();
         Capability cap = mock(Capability.class);
-        Set caps = Sets.newHashSet(cap);
-        Set services = Sets.newHashSet(operationService);
+        Set<Capability> caps = Sets.newHashSet(cap);
+        Set<NetconfOperationService> services = Sets.newHashSet(operationService);
         doReturn(snapshot).when(operationProvider).openSnapshot(anyString());
         doReturn(services).when(snapshot).getServices();
         doReturn(caps).when(operationService).getCapabilities();
-        Optional opt = mock(Optional.class);
+        Optional<String> opt = mock(Optional.class);
         doReturn(opt).when(cap).getCapabilitySchema();
         doReturn(true).when(opt).isPresent();
         doReturn(opt).when(cap).getModuleNamespace();
         doReturn("namespace").when(opt).get();
-        Optional optRev = Optional.of("rev");
+        Optional<String> optRev = Optional.of("rev");
         doReturn(optRev).when(cap).getRevision();
         doReturn(Optional.of("modName")).when(cap).getModuleName();
         doReturn(Optional.of(Lists.newArrayList("loc"))).when(cap).getLocation();
index f96f55761939bdd5e7eb05eca5a6b8b645572208..6e265a44a50a55f18a3555c73ddd4afed91f13b5 100644 (file)
@@ -55,6 +55,7 @@ import org.opendaylight.controller.netconf.client.conf.NetconfClientConfiguratio
 import org.opendaylight.controller.netconf.nettyutil.handler.ssh.authentication.AuthenticationHandler;
 import org.opendaylight.controller.netconf.nettyutil.handler.ssh.authentication.LoginPassword;
 import org.opendaylight.controller.netconf.ssh.SshProxyServer;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder;
 import org.opendaylight.controller.netconf.util.messages.NetconfMessageUtil;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
 import org.opendaylight.controller.netconf.util.xml.XmlUtil;
@@ -88,12 +89,19 @@ public class NetconfITSecureTest extends AbstractNetconfConfigTest {
         clientGroup = new NioEventLoopGroup();
         minaTimerEx = Executors.newScheduledThreadPool(1);
         sshProxyServer = new SshProxyServer(minaTimerEx, clientGroup, nioExec);
-        sshProxyServer.bind(TLS_ADDRESS, NetconfConfigUtil.getNetconfLocalAddress(), new PasswordAuthenticator() {
+        sshProxyServer.bind(
+                new SshProxyServerConfigurationBuilder()
+                        .setBindingAddress(TLS_ADDRESS)
+                        .setLocalAddress(NetconfConfigUtil.getNetconfLocalAddress())
+                        .setAuthenticator(new PasswordAuthenticator() {
             @Override
             public boolean authenticate(final String username, final String password, final ServerSession session) {
                 return true;
             }
-        }, new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString()));
+        })
+                        .setKeyPairProvider(new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString()))
+                        .setIdleTimeout(Integer.MAX_VALUE)
+                        .createSshProxyServerConfiguration());
     }
 
     @After
index a9c1e8336d62419a79f6d320cd0784ecc8dc37cb..f1f7375f0a16901fffa09a810cc052761e979c72 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
-        <version>2.4</version>
         <executions>
           <execution>
             <goals>
index 0b85cf2653e9ca07b294651265cc882bbae8b841..8728f0c671cf558dabaeb4af209c82fdaf9877fa 100644 (file)
@@ -10,16 +10,15 @@ package org.opendaylight.controller.netconf.ssh;
 
 import com.google.common.collect.Lists;
 import io.netty.channel.EventLoopGroup;
-import io.netty.channel.local.LocalAddress;
 import java.io.IOException;
-import java.net.InetSocketAddress;
 import java.nio.channels.AsynchronousChannelGroup;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import org.apache.sshd.SshServer;
 import org.apache.sshd.common.FactoryManager;
-import org.apache.sshd.common.KeyPairProvider;
 import org.apache.sshd.common.NamedFactory;
 import org.apache.sshd.common.RuntimeSshException;
 import org.apache.sshd.common.io.IoAcceptor;
@@ -32,7 +31,7 @@ import org.apache.sshd.common.io.nio2.Nio2Connector;
 import org.apache.sshd.common.io.nio2.Nio2ServiceFactoryFactory;
 import org.apache.sshd.common.util.CloseableUtils;
 import org.apache.sshd.server.Command;
-import org.apache.sshd.server.PasswordAuthenticator;
+import org.apache.sshd.server.ServerFactoryManager;
 
 /**
  * Proxy SSH server that just delegates decrypted content to a delegate server within same VM.
@@ -52,22 +51,30 @@ public class SshProxyServer implements AutoCloseable {
         this.sshServer = SshServer.setUpDefaultServer();
     }
 
-    public void bind(final InetSocketAddress bindingAddress, final LocalAddress localAddress, final PasswordAuthenticator authenticator, final KeyPairProvider keyPairProvider) throws IOException {
-        sshServer.setHost(bindingAddress.getHostString());
-        sshServer.setPort(bindingAddress.getPort());
+    public void bind(final SshProxyServerConfiguration sshProxyServerConfiguration) throws IOException {
+        sshServer.setHost(sshProxyServerConfiguration.getBindingAddress().getHostString());
+        sshServer.setPort(sshProxyServerConfiguration.getBindingAddress().getPort());
 
-        sshServer.setPasswordAuthenticator(authenticator);
-        sshServer.setKeyPairProvider(keyPairProvider);
+        sshServer.setPasswordAuthenticator(sshProxyServerConfiguration.getAuthenticator());
+        sshServer.setKeyPairProvider(sshProxyServerConfiguration.getKeyPairProvider());
 
         sshServer.setIoServiceFactoryFactory(nioServiceWithPoolFactoryFactory);
         sshServer.setScheduledExecutorService(minaTimerExecutor);
+        sshServer.setProperties(getProperties(sshProxyServerConfiguration));
 
         final RemoteNetconfCommand.NetconfCommandFactory netconfCommandFactory =
-                new RemoteNetconfCommand.NetconfCommandFactory(clientGroup, localAddress);
+                new RemoteNetconfCommand.NetconfCommandFactory(clientGroup, sshProxyServerConfiguration.getLocalAddress());
         sshServer.setSubsystemFactories(Lists.<NamedFactory<Command>>newArrayList(netconfCommandFactory));
         sshServer.start();
     }
 
+    private static Map<String, String> getProperties(final SshProxyServerConfiguration sshProxyServerConfiguration) {
+        return new HashMap<String, String>()
+        {{
+            put(ServerFactoryManager.IDLE_TIMEOUT, String.valueOf(sshProxyServerConfiguration.getIdleTimeout()));
+        }};
+    }
+
     @Override
     public void close() {
         try {
diff --git a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfiguration.java b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfiguration.java
new file mode 100644 (file)
index 0000000..aee3c7b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * 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.netconf.ssh;
+
+import com.google.common.base.Preconditions;
+import io.netty.channel.local.LocalAddress;
+import java.net.InetSocketAddress;
+import org.apache.sshd.common.KeyPairProvider;
+import org.apache.sshd.server.PasswordAuthenticator;
+
+public final class SshProxyServerConfiguration {
+    private final InetSocketAddress bindingAddress;
+    private final LocalAddress localAddress;
+    private final PasswordAuthenticator authenticator;
+    private final KeyPairProvider keyPairProvider;
+    private final int idleTimeout;
+
+    SshProxyServerConfiguration(final InetSocketAddress bindingAddress, final LocalAddress localAddress, final PasswordAuthenticator authenticator, final KeyPairProvider keyPairProvider, final int idleTimeout) {
+        this.bindingAddress = Preconditions.checkNotNull(bindingAddress);
+        this.localAddress = Preconditions.checkNotNull(localAddress);
+        this.authenticator = Preconditions.checkNotNull(authenticator);
+        this.keyPairProvider = Preconditions.checkNotNull(keyPairProvider);
+        // Idle timeout cannot be disabled in the sshd by using =< 0 value
+        Preconditions.checkArgument(idleTimeout > 0, "Idle timeout has to be > 0");
+        this.idleTimeout = idleTimeout;
+    }
+
+    public InetSocketAddress getBindingAddress() {
+        return bindingAddress;
+    }
+
+    public LocalAddress getLocalAddress() {
+        return localAddress;
+    }
+
+    public PasswordAuthenticator getAuthenticator() {
+        return authenticator;
+    }
+
+    public KeyPairProvider getKeyPairProvider() {
+        return keyPairProvider;
+    }
+
+    public int getIdleTimeout() {
+        return idleTimeout;
+    }
+
+
+}
diff --git a/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfigurationBuilder.java b/opendaylight/netconf/netconf-ssh/src/main/java/org/opendaylight/controller/netconf/ssh/SshProxyServerConfigurationBuilder.java
new file mode 100644 (file)
index 0000000..fb8632b
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * 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.netconf.ssh;
+
+import io.netty.channel.local.LocalAddress;
+import java.net.InetSocketAddress;
+import org.apache.sshd.common.KeyPairProvider;
+import org.apache.sshd.server.PasswordAuthenticator;
+
+public final class SshProxyServerConfigurationBuilder {
+    private InetSocketAddress bindingAddress;
+    private LocalAddress localAddress;
+    private PasswordAuthenticator authenticator;
+    private KeyPairProvider keyPairProvider;
+    private int idleTimeout;
+
+    public SshProxyServerConfigurationBuilder setBindingAddress(final InetSocketAddress bindingAddress) {
+        this.bindingAddress = bindingAddress;
+        return this;
+    }
+
+    public SshProxyServerConfigurationBuilder setLocalAddress(final LocalAddress localAddress) {
+        this.localAddress = localAddress;
+        return this;
+    }
+
+    public SshProxyServerConfigurationBuilder setAuthenticator(final PasswordAuthenticator authenticator) {
+        this.authenticator = authenticator;
+        return this;
+    }
+
+    public SshProxyServerConfigurationBuilder setKeyPairProvider(final KeyPairProvider keyPairProvider) {
+        this.keyPairProvider = keyPairProvider;
+        return this;
+    }
+
+    public SshProxyServerConfigurationBuilder setIdleTimeout(final int idleTimeout) {
+        this.idleTimeout = idleTimeout;
+        return this;
+    }
+
+    public SshProxyServerConfiguration createSshProxyServerConfiguration() {
+        return new SshProxyServerConfiguration(bindingAddress, localAddress, authenticator, keyPairProvider, idleTimeout);
+    }
+
+    public SshProxyServerConfigurationBuilder create () {
+        return new SshProxyServerConfigurationBuilder();
+    }
+}
\ No newline at end of file
index b871d19db8f062d0dbca93cc18ce6c3c6e09ba2d..5fc04eee8305279d9c3ab3dec67933c6bfe6435b 100644 (file)
@@ -19,10 +19,12 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.sshd.common.util.ThreadUtils;
 import org.apache.sshd.server.keyprovider.PEMGeneratorHostKeyProvider;
 import org.opendaylight.controller.netconf.ssh.SshProxyServer;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil.InfixProp;
 import org.osgi.framework.BundleActivator;
@@ -36,6 +38,7 @@ public class NetconfSSHActivator implements BundleActivator {
     private static final java.lang.String ALGORITHM = "RSA";
     private static final int KEY_SIZE = 4096;
     public static final int POOL_SIZE = 8;
+    private static final int DEFAULT_IDLE_TIMEOUT = (int) TimeUnit.MINUTES.toMillis(20);
 
     private ScheduledExecutorService minaTimerExecutor;
     private NioEventLoopGroup clientGroup;
@@ -100,7 +103,14 @@ public class NetconfSSHActivator implements BundleActivator {
                 NetconfConfigUtil.getPrivateKeyKey());
 
         final SshProxyServer sshProxyServer = new SshProxyServer(minaTimerExecutor, clientGroup, nioExecutor);
-        sshProxyServer.bind(sshSocketAddress, localAddress, authProviderTracker, new PEMGeneratorHostKeyProvider(path, ALGORITHM, KEY_SIZE));
+        sshProxyServer.bind(
+                new SshProxyServerConfigurationBuilder()
+                        .setBindingAddress(sshSocketAddress)
+                        .setLocalAddress(localAddress)
+                        .setAuthenticator(authProviderTracker)
+                        .setKeyPairProvider(new PEMGeneratorHostKeyProvider(path, ALGORITHM, KEY_SIZE))
+                        .setIdleTimeout(DEFAULT_IDLE_TIMEOUT)
+                        .createSshProxyServerConfiguration());
         return sshProxyServer;
     }
 
index 62ce58723765231d2c4edd8683cb5e18093c09fe..34b236b4611f0e8586388e7ff22b1022effc2cd0 100644 (file)
@@ -35,6 +35,7 @@ import org.opendaylight.controller.netconf.netty.EchoClientHandler.State;
 import org.opendaylight.controller.netconf.nettyutil.handler.ssh.authentication.LoginPassword;
 import org.opendaylight.controller.netconf.nettyutil.handler.ssh.client.AsyncSshHandler;
 import org.opendaylight.controller.netconf.ssh.SshProxyServer;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -70,13 +71,13 @@ public class SSHTest {
 
         final InetSocketAddress addr = new InetSocketAddress("127.0.0.1", 10831);
         final SshProxyServer sshProxyServer = new SshProxyServer(minaTimerEx, nettyGroup, nioExec);
-        sshProxyServer.bind(addr, NetconfConfigUtil.getNetconfLocalAddress(),
-                new PasswordAuthenticator() {
+        sshProxyServer.bind(
+                new SshProxyServerConfigurationBuilder().setBindingAddress(addr).setLocalAddress(NetconfConfigUtil.getNetconfLocalAddress()).setAuthenticator(new PasswordAuthenticator() {
                     @Override
                     public boolean authenticate(final String username, final String password, final ServerSession session) {
                         return true;
                     }
-                }, new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString()));
+                }).setKeyPairProvider(new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString())).setIdleTimeout(Integer.MAX_VALUE).createSshProxyServerConfiguration());
 
         final EchoClientHandler echoClientHandler = connectClient(addr);
 
index 9cd0c9bceab59cb56df91afbb2c26c8421eeea4b..38aa2e71ace1850cdb42a02e7b018e09ab387170 100644 (file)
@@ -32,6 +32,7 @@ import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.netconf.ssh.SshProxyServer;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder;
 import org.opendaylight.controller.netconf.util.osgi.NetconfConfigUtil;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceListener;
@@ -67,13 +68,13 @@ public class SSHServerTest {
 
         final InetSocketAddress addr = InetSocketAddress.createUnresolved(HOST, PORT);
         server = new SshProxyServer(minaTimerEx, clientGroup, nioExec);
-        server.bind(addr, NetconfConfigUtil.getNetconfLocalAddress(),
-                new PasswordAuthenticator() {
+        server.bind(
+                new SshProxyServerConfigurationBuilder().setBindingAddress(addr).setLocalAddress(NetconfConfigUtil.getNetconfLocalAddress()).setAuthenticator(new PasswordAuthenticator() {
                     @Override
                     public boolean authenticate(final String username, final String password, final ServerSession session) {
                         return true;
                     }
-                }, new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString()));
+                }).setKeyPairProvider(new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString())).setIdleTimeout(Integer.MAX_VALUE).createSshProxyServerConfiguration());
         logger.info("SSH server started on " + PORT);
     }
 
index e8ba769da547f552dc3fe47aaa9a6e3f35ad0d54..de68c31d295a0ec43ea9e411f196c4027df44d4a 100644 (file)
@@ -68,6 +68,8 @@ import org.opendaylight.controller.netconf.mapping.api.NetconfOperationService;
 import org.opendaylight.controller.netconf.mapping.api.NetconfOperationServiceSnapshot;
 import org.opendaylight.controller.netconf.monitoring.osgi.NetconfMonitoringOperationService;
 import org.opendaylight.controller.netconf.ssh.SshProxyServer;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfiguration;
+import org.opendaylight.controller.netconf.ssh.SshProxyServerConfigurationBuilder;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceException;
 import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
@@ -193,15 +195,7 @@ public class NetconfDeviceSimulator implements Closeable {
                 server = dispatcher.createLocalServer(tcpLocalAddress);
                 try {
                     final SshProxyServer sshServer = new SshProxyServer(minaTimerExecutor, nettyThreadgroup, nioExecutor);
-                    sshServer.bind(bindingAddress, tcpLocalAddress,
-                            new PasswordAuthenticator() {
-                                @Override
-                                public boolean authenticate(final String username, final String password, final ServerSession session) {
-                                    // All connections are accepted
-                                    return true;
-                                }
-                            }, keyPairProvider);
-
+                    sshServer.bind(getSshConfiguration(bindingAddress, tcpLocalAddress));
                     sshWrappers.add(sshServer);
                 } catch (final Exception e) {
                     LOG.warn("Cannot start simulated device on {}, skipping", address, e);
@@ -255,6 +249,21 @@ public class NetconfDeviceSimulator implements Closeable {
         return openDevices;
     }
 
+    private SshProxyServerConfiguration getSshConfiguration(final InetSocketAddress bindingAddress, final LocalAddress tcpLocalAddress) throws IOException {
+        return new SshProxyServerConfigurationBuilder()
+                .setBindingAddress(bindingAddress)
+                .setLocalAddress(tcpLocalAddress)
+                .setAuthenticator(new PasswordAuthenticator() {
+                    @Override
+                    public boolean authenticate(final String username, final String password, final ServerSession session) {
+                        return true;
+                    }
+                })
+                .setKeyPairProvider(new PEMGeneratorHostKeyProvider(Files.createTempFile("prefix", "suffix").toAbsolutePath().toString()))
+                .setIdleTimeout(Integer.MAX_VALUE)
+                .createSshProxyServerConfiguration();
+    }
+
     private PEMGeneratorHostKeyProvider getPemGeneratorHostKeyProvider() {
         try {
             final Path tempFile = Files.createTempFile("tempKeyNetconfTest", "suffix");
index b392c5b6726ea2e3ed3c8fc63f943a9bed75dacc..0a3a77cc6030101078703adefdfc3d0431e652b1 100644 (file)
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>2.12</version>
         <configuration>
           <failsOnError>false</failsOnError>
           <failOnViolation>false</failOnViolation>
@@ -79,7 +79,7 @@ public class NeutronFirewallPolicyNorthbound {
             @QueryParam("name") String queryFirewallPolicyName,
             @QueryParam("description") String querySecurityPolicyDescription,
             @QueryParam("shared") String querySecurityPolicyIsShared,
-            @QueryParam("firewall_rules") List querySecurityPolicyFirewallRules,
+            @QueryParam("firewall_rules") List<String> querySecurityPolicyFirewallRules,
             @QueryParam("audited") Boolean querySecurityPolicyIsAudited,
             // pagination
             @QueryParam("limit") String limit,
@@ -9,17 +9,15 @@
 package org.opendaylight.controller.networkconfig.neutron.northbound;
 
 import java.util.List;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
-
 import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
-public class NeutronNetworkRequest implements INeutronRequest {
+public class NeutronNetworkRequest implements INeutronRequest<NeutronNetwork> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
@@ -50,14 +48,17 @@ public class NeutronNetworkRequest implements INeutronRequest {
         singletonNetwork = net;
     }
 
+    @Override
     public NeutronNetwork getSingleton() {
         return singletonNetwork;
     }
 
+    @Override
     public boolean isSingleton() {
         return (singletonNetwork != null);
     }
 
+    @Override
     public List<NeutronNetwork> getBulk() {
         return bulkRequest;
     }
@@ -9,17 +9,15 @@
 package org.opendaylight.controller.networkconfig.neutron.northbound;
 
 import java.util.List;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
-
 import org.opendaylight.controller.networkconfig.neutron.NeutronPort;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
-public class NeutronPortRequest implements INeutronRequest {
+public class NeutronPortRequest implements INeutronRequest<NeutronPort> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
@@ -50,14 +48,17 @@ public class NeutronPortRequest implements INeutronRequest {
         singletonPort = port;
     }
 
+    @Override
     public NeutronPort getSingleton() {
         return singletonPort;
     }
 
+    @Override
     public boolean isSingleton() {
         return (singletonPort != null);
     }
 
+    @Override
     public List<NeutronPort> getBulk() {
         return bulkRequest;
     }
@@ -9,18 +9,15 @@
 package org.opendaylight.controller.networkconfig.neutron.northbound;
 
 import java.util.List;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
-
 import org.opendaylight.controller.networkconfig.neutron.NeutronSubnet;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
-
-public class NeutronSubnetRequest implements INeutronRequest {
+public class NeutronSubnetRequest implements INeutronRequest<NeutronSubnet> {
     // See OpenStack Network API v2.0 Reference for description of
     // annotated attributes
 
@@ -54,14 +51,17 @@ public class NeutronSubnetRequest implements INeutronRequest {
         links = null;
     }
 
+    @Override
     public NeutronSubnet getSingleton() {
         return singletonSubnet;
     }
 
+    @Override
     public List<NeutronSubnet> getBulk() {
         return bulkRequest;
     }
 
+    @Override
     public boolean isSingleton() {
         return (singletonSubnet != null);
     }
 
 package org.opendaylight.controller.networkconfig.neutron.northbound;
 
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import javax.ws.rs.core.UriInfo;
 import org.opendaylight.controller.networkconfig.neutron.INeutronObject;
 import org.opendaylight.controller.networkconfig.neutron.NeutronNetwork;
 import org.opendaylight.controller.networkconfig.neutron.NeutronPort;
@@ -17,13 +22,13 @@ import org.opendaylight.controller.networkconfig.neutron.NeutronSubnet;
 import org.opendaylight.controller.northbound.commons.exception.BadRequestException;
 import org.opendaylight.controller.northbound.commons.exception.ResourceNotFoundException;
 
-import javax.ws.rs.core.UriInfo;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
 public class PaginatedRequestFactory {
+    private static final Comparator<INeutronObject> NEUTRON_OBJECT_COMPARATOR = new Comparator<INeutronObject>() {
+        @Override
+        public int compare(INeutronObject o1, INeutronObject o2) {
+            return o1.getID().compareTo(o2.getID());
+        }
+    };
 
     public static class PaginationResults<T extends INeutronObject> {
         List<T> collection;
@@ -35,77 +40,75 @@ public class PaginatedRequestFactory {
         }
     }
 
-    public static <T extends INeutronObject> INeutronRequest createRequest(Integer limit, String marker,
+    private static final class MarkerObject implements INeutronObject {
+        private final String id;
+
+        MarkerObject(String id) {
+            this.id = id;
+        }
+
+        @Override
+        public String getID() {
+            return id;
+        }
+
+        @Override
+        public void setID(String id) {
+            throw new UnsupportedOperationException("Marker has constant ID");
+        }
+    }
+
+    /*
+     * SuppressWarnings is needed because the compiler does not understand that we
+     * are actually safe here.
+     *
+     * FIXME: the only caller performs a cast back, so this is not actually necessary.
+     */
+    @SuppressWarnings("unchecked")
+    public static <T extends INeutronObject> INeutronRequest<T> createRequest(Integer limit, String marker,
                                                                            Boolean pageReverse,
                                                                            UriInfo uriInfo,
                                                                            List<T> collection,
                                                                            Class<T> clazz) {
-        PaginationResults results = _paginate(limit, marker, pageReverse, uriInfo, collection);
+        PaginationResults<T> results = _paginate(limit, marker, pageReverse, uriInfo, collection);
 
         if (clazz.equals(NeutronNetwork.class)){
-            return new NeutronNetworkRequest(results.collection, results.links);
+            return (INeutronRequest<T>) new NeutronNetworkRequest((List<NeutronNetwork>) results.collection, results.links);
         }
         if (clazz.equals(NeutronSubnet.class)){
-            return new NeutronSubnetRequest(results.collection, results.links);
+            return (INeutronRequest<T>) new NeutronSubnetRequest((List<NeutronSubnet>) results.collection, results.links);
         }
         if (clazz.equals(NeutronPort.class)){
-            return new NeutronPortRequest(results.collection, results.links);
+            return (INeutronRequest<T>) new NeutronPortRequest((List<NeutronPort>) results.collection, results.links);
         }
         return null;
     }
 
-    private static <T extends INeutronObject> PaginationResults _paginate(Integer limit, String marker, Boolean pageReverse, UriInfo uriInfo, List<T> collection) {
+    private static <T extends INeutronObject> PaginationResults<T> _paginate(Integer limit, String marker, Boolean pageReverse, UriInfo uriInfo, List<T> collection) {
         List<NeutronPageLink> links = new ArrayList<>();
-        Integer startPos = null;
+        final int startPos;
         String startMarker;
         String endMarker;
         Boolean firstPage = false;
         Boolean lastPage = false;
 
-        Comparator<INeutronObject> neutronObjectComparator = new Comparator<INeutronObject>() {
-            @Override
-            public int compare(INeutronObject o1, INeutronObject o2) {
-                return o1.getID().compareTo(o2.getID());
-            }
-        };
-
-        Collections.sort(collection, neutronObjectComparator);
-
-        if (marker == null) {
-            startPos = 0;
-        }
-
-        else {
-
-            class MarkerObject implements INeutronObject {
-                private String id;
-
-                public String getID() {
-                    return id;
-                }
+        Collections.sort(collection, NEUTRON_OBJECT_COMPARATOR);
 
-                public void setID(String id) {
-                    this.id = id;
-                }
+        if (marker != null) {
+            int offset = Collections.binarySearch(collection, new MarkerObject(marker), NEUTRON_OBJECT_COMPARATOR);
+            if (offset < 0) {
+                throw new ResourceNotFoundException("UUID for marker: " + marker + " could not be found");
             }
 
-            INeutronObject markerObject = new MarkerObject();
-
-            markerObject.setID(marker);
-
-            startPos = Collections.binarySearch(collection, markerObject, neutronObjectComparator);
-
-            if (!pageReverse){
-                startPos = startPos + 1;
+            if (!pageReverse) {
+                startPos = offset + 1;
             }
             else {
-                startPos = startPos - limit;
+                startPos = offset - limit;
             }
-
         }
-
-        if (startPos == null) {
-            throw new ResourceNotFoundException("UUID for marker:" + marker + " could not be found");
+        else {
+            startPos = 0;
         }
 
         if (startPos == 0){
@@ -149,6 +152,6 @@ public class PaginatedRequestFactory {
             links.add(previous);
         }
 
-        return new PaginationResults(collection, links);
+        return new PaginationResults<T>(collection, links);
     }
 }
diff --git a/pom.xml b/pom.xml
index 0340277bfca989c5e2fd6e5b8167c1daa7c0f1db..d1e5494b44cd6409adc99da6b5daf9e6af2bbc4b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
   </prerequisites>
   <modules>
     <module>opendaylight/distribution/opendaylight</module>
-    <module>opendaylight/forwarding/staticrouting</module>
-    <module>opendaylight/clustering/services</module>
-    <module>opendaylight/clustering/services_implementation</module>
-    <module>opendaylight/clustering/stub</module>
-    <module>opendaylight/clustering/test</module>
-    <module>opendaylight/configuration/api</module>
-    <module>opendaylight/configuration/implementation</module>
-    <module>opendaylight/routing/dijkstra_implementation</module>
-    <module>opendaylight/arphandler</module>
-    <module>opendaylight/forwardingrulesmanager/api</module>
-    <module>opendaylight/forwardingrulesmanager/implementation</module>
-    <module>opendaylight/hosttracker/api</module>
-    <module>opendaylight/hosttracker/implementation</module>
-    <module>opendaylight/hosttracker/shell</module>
-    <module>opendaylight/hosttracker_new/api</module>
-    <module>opendaylight/hosttracker_new/implementation</module>
-    <module>opendaylight/containermanager/api</module>
-    <module>opendaylight/containermanager/implementation</module>
-    <module>opendaylight/containermanager/shell</module>
-    <module>opendaylight/appauth</module>
-    <module>opendaylight/switchmanager/api</module>
-    <module>opendaylight/switchmanager/implementation</module>
-    <module>opendaylight/statisticsmanager/api</module>
-    <module>opendaylight/statisticsmanager/implementation</module>
-    <module>opendaylight/topologymanager/implementation</module>
-    <module>opendaylight/topologymanager/shell</module>
-    <module>opendaylight/usermanager/api</module>
-    <module>opendaylight/usermanager/implementation</module>
-    <module>opendaylight/connectionmanager/api</module>
-    <module>opendaylight/connectionmanager/implementation</module>
-    <module>opendaylight/security</module>
-    <module>opendaylight/karaf-tomcat-security</module>
 
     <!-- third-parties uncomment them if you need snapshot version of it -->
     <!-- <module>third-party/openflowj</module> -->
 
     <module>third-party/commons/thirdparty</module>
 
-    <!-- SAL bundles -->
-    <module>opendaylight/sal/api</module>
-    <module>opendaylight/sal/implementation</module>
-
-    <!-- SAL Extension bundles -->
-    <module>opendaylight/sal/connection/api</module>
-    <module>opendaylight/sal/connection/implementation</module>
-    <module>opendaylight/sal/networkconfiguration/api</module>
-    <module>opendaylight/sal/networkconfiguration/implementation</module>
-
     <!-- md-sal -->
     <module>opendaylight/md-sal</module>
     <!-- config -->
     <!-- netconf -->
     <module>opendaylight/netconf</module>
 
-    <!--  Web bundles -->
-    <module>opendaylight/web/root</module>
-    <module>opendaylight/web/flows</module>
-    <module>opendaylight/web/devices</module>
-    <module>opendaylight/web/troubleshoot</module>
-    <module>opendaylight/web/topology</module>
-    <module>opendaylight/web/osgi-brandfragment</module>
+    <!-- adsal -->
+    <module>opendaylight/adsal</module>
 
     <!--  Neutron -->
     <module>opendaylight/networkconfiguration/neutron</module>
     <module>opendaylight/networkconfiguration/neutron/implementation</module>
-    <module>opendaylight/northbound/networkconfiguration/neutron</module>
-
-    <!-- Northbound bundles -->
-    <module>opendaylight/northbound/commons</module>
-    <module>opendaylight/northbound/bundlescanner/api</module>
-    <module>opendaylight/northbound/bundlescanner/implementation</module>
-    <module>opendaylight/northbound/topology</module>
-    <module>opendaylight/northbound/staticrouting</module>
-    <module>opendaylight/northbound/statistics</module>
-    <module>opendaylight/northbound/flowprogrammer</module>
-    <module>opendaylight/northbound/hosttracker</module>
-    <module>opendaylight/northbound/subnets</module>
-    <module>opendaylight/northbound/switchmanager</module>
-    <module>opendaylight/northbound/containermanager</module>
-    <module>opendaylight/northbound/networkconfiguration/bridgedomain</module>
-    <module>opendaylight/northbound/httpservice-bridge</module>
-    <module>opendaylight/northbound/jolokia</module>
-    <module>opendaylight/northbound/connectionmanager</module>
-    <module>opendaylight/northbound/usermanager</module>
-    <module>opendaylight/northbound/controllermanager</module>
-
-    <!-- Debug and logging -->
-    <module>opendaylight/logging/bridge</module>
-
-    <!-- Southbound bundles -->
-    <module>opendaylight/protocol_plugins/openflow</module>
-    <module>opendaylight/protocol_plugins/stub</module>
-
-    <!-- Samples -->
-    <module>opendaylight/samples/simpleforwarding</module>
-    <module>opendaylight/samples/loadbalancer</module>
-    <module>opendaylight/samples/northbound/loadbalancer</module>
+    <module>opendaylight/networkconfiguration/neutron/northbound</module>
 
     <!-- Parents -->
     <module>opendaylight/commons/concepts</module>
     <module>opendaylight/commons/protocol-framework</module>
-    <module>opendaylight/commons/httpclient</module>
     <module>opendaylight/commons/checkstyle</module>
     <module>opendaylight/commons/opendaylight</module>
     <module>opendaylight/commons/parent</module>
     <module>opendaylight/commons/liblldp</module>
 
     <!-- Karaf Distribution -->
-    <module>opendaylight/dummy-console</module>
     <module>opendaylight/karaf-branding</module>
     <module>opendaylight/distribution/opendaylight-karaf-empty</module>
     <module>opendaylight/distribution/opendaylight-karaf</module>
         <activeByDefault>false</activeByDefault>
       </activation>
       <modules>
-        <module>opendaylight/clustering/integrationtest</module>
-        <module>opendaylight/configuration/integrationtest</module>
-        <module>opendaylight/forwardingrulesmanager/integrationtest</module>
-        <module>opendaylight/hosttracker/integrationtest</module>
-        <module>opendaylight/switchmanager/integrationtest</module>
-        <module>opendaylight/topologymanager/integrationtest</module>
-        <!-- Northbound integration tests -->
-        <module>opendaylight/northbound/integrationtest</module>
-        <module>opendaylight/statisticsmanager/integrationtest</module>
-        <module>opendaylight/commons/integrationtest</module>
-        <module>opendaylight/containermanager/it.implementation</module>
         <module>opendaylight/distribution/sanitytest/</module>
       </modules>
     </profile>
-    <profile>
-      <id>docs</id>
-      <activation>
-        <activeByDefault>false</activeByDefault>
-      </activation>
-      <modules>
-        <module>opendaylight/northbound/java-client</module>
-        <module>opendaylight/northbound/swagger-ui</module>
-      </modules>
-    </profile>
   </profiles>
 </project>