BUG-6650: ep-ip/sgt, remove sxp-mapper 86/46386/2
authorMichal Rehak <mirehak@cisco.com>
Fri, 30 Sep 2016 12:22:27 +0000 (14:22 +0200)
committerMichal Rehak <mirehak@cisco.com>
Mon, 3 Oct 2016 15:10:42 +0000 (17:10 +0200)
Change-Id: I81bff669c18b559f4be640bac13f7a80a23d1bce
Signed-off-by: Michal Rehak <mirehak@cisco.com>
(cherry picked from commit ce403cb4a1eecdcc65c15f6cdd6973e828dc5e72)

49 files changed:
sxp-mapper/pom.xml [deleted file]
sxp-mapper/src/main/config/default-config.xml [deleted file]
sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderInstance.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModule.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModuleFactory.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/DSAsyncDao.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/EPTemplateListener.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/IpPrefixEqualCommand.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/MasterDatabaseBindingListener.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableAsyncByKey.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableByKey.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleCachedDao.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleDao.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SxpMapperReactor.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperProviderImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKey.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKeyFactory.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtil.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandDirectImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandSubnetImpl.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/L3EPServiceUtil.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SubnetInfoKeyDecorator.java [deleted file]
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SxpListenerUtil.java [deleted file]
sxp-mapper/src/main/resources/org/opendaylight/blueprint/sxp-mapper.xml [deleted file]
sxp-mapper/src/main/yang/sxp-mapper-cfg.yang [deleted file]
sxp-mapper/src/main/yang/sxp-mapper-model.yang [deleted file]
sxp-mapper/src/main/yang/sxp-mapper.yang [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImplTest.java [deleted file]
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtilTest.java [deleted file]
sxp-mapper/src/test/resources/log4j.xml [deleted file]

diff --git a/sxp-mapper/pom.xml b/sxp-mapper/pom.xml
deleted file mode 100755 (executable)
index 24d03bf..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (c) 2016 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 -->
-<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>config-parent</artifactId>
-        <version>0.6.0-SNAPSHOT</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>sxp-mapper</artifactId>
-    <version>0.5.0-SNAPSHOT</version>
-    <packaging>bundle</packaging>
-    <name>groupbasedpolicy-sxp-mapper</name>
-
-    <properties>
-        <sxp.version>1.4.0-SNAPSHOT</sxp.version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.opendaylight.groupbasedpolicy</groupId>
-                <artifactId>groupbasedpolicy-artifacts</artifactId>
-                <version>${project.version}</version>
-                <scope>import</scope>
-                <type>pom</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.sxp</groupId>
-                <artifactId>sxp-api</artifactId>
-                <version>${sxp.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.sxp</groupId>
-                <artifactId>sxp-core</artifactId>
-                <version>${sxp.version}</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <!-- model dependencies -->
-        <dependency>
-            <groupId>org.opendaylight.mdsal.model</groupId>
-            <artifactId>ietf-inet-types-2013-07-15</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.mdsal.model</groupId>
-            <artifactId>yang-ext</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.groupbasedpolicy</groupId>
-            <artifactId>l2-l3-domain-extension</artifactId>
-        </dependency>
-
-        <!-- sxp deps -->
-        <dependency>
-            <groupId>org.opendaylight.sxp</groupId>
-            <artifactId>sxp-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.sxp</groupId>
-            <artifactId>sxp-core</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>commons-net</groupId>
-            <artifactId>commons-net</artifactId>
-        </dependency>
-
-        <!-- testing dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>sal-binding-broker-impl</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <!-- project build -->
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/sxp-mapper/src/main/config/default-config.xml b/sxp-mapper/src/main/config/default-config.xml
deleted file mode 100755 (executable)
index 398e4d6..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<snapshot>
-    <configuration>
-        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
-            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
-                <module>
-                    <type xmlns:sxp-mapper="urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:sxp-mapper">
-                        sxp-mapper:sxp-mapper-impl
-                    </type>
-                    <name>sxp-mapper</name>
-                </module>
-            </modules>
-        </data>
-
-    </configuration>
-
-    <required-capabilities>
-        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:sxp-mapper?module=sxp-mapper-cfg&amp;revision=2016-03-02</capability>
-    </required-capabilities>
-
-</snapshot>
diff --git a/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderInstance.java b/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderInstance.java
deleted file mode 100644 (file)
index 6d1656e..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2016 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.config.yang.config.groupbasedpolicy.sxp_mapper;
-
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.controller.config.yang.config.groupbasedpolicy.GroupbasedpolicyInstance;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.groupbasedpolicy.api.DomainSpecificRegistry;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.SxpMapperProviderImpl;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider;
-import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SxpMapperProviderInstance implements ClusterSingletonService, AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SxpMapperProviderInstance.class);
-
-    private static final ServiceGroupIdentifier IDENTIFIER =
-            ServiceGroupIdentifier.create(GroupbasedpolicyInstance.GBP_SERVICE_GROUP_IDENTIFIER);
-    private final DataBroker dataBroker;
-    private final BaseEndpointService endpointService;
-    private final DomainSpecificRegistry registry;
-    private final ClusterSingletonServiceProvider clusterSingletonService;
-    private ClusterSingletonServiceRegistration singletonServiceRegistration;
-    private SxpMapperProviderImpl sxpMapperProviderImpl;
-
-    public SxpMapperProviderInstance(final DataBroker dataBroker,
-                                     final BaseEndpointService endpointService,
-                                     final DomainSpecificRegistry registry,
-                                     final ClusterSingletonServiceProvider clusterSingletonService) {
-        this.dataBroker = Preconditions.checkNotNull(dataBroker);
-        this.endpointService = Preconditions.checkNotNull(endpointService);
-        this.registry = Preconditions.checkNotNull(registry);
-        this.clusterSingletonService = Preconditions.checkNotNull(clusterSingletonService);
-    }
-
-    public void initialize() {
-        LOG.info("Clustering session initiated for {}", this.getClass().getSimpleName());
-        singletonServiceRegistration = clusterSingletonService.registerClusterSingletonService(this);
-    }
-
-    @Override
-    public void instantiateServiceInstance() {
-        LOG.info("Instantiating {}", this.getClass().getSimpleName());
-        sxpMapperProviderImpl = new SxpMapperProviderImpl(dataBroker, endpointService, registry);
-    }
-
-    @Override
-    public ListenableFuture<Void> closeServiceInstance() {
-        LOG.info("Instance {} closed", this.getClass().getSimpleName());
-        try {
-            sxpMapperProviderImpl.close();
-        } catch (Exception e) {
-            LOG.warn("Exception while closing ... {}", e.getMessage());
-        }
-        return Futures.immediateFuture(null);
-    }
-
-    @Override
-    public void close() throws Exception {
-        LOG.info("Clustering provider closed for {}", this.getClass().getSimpleName());
-        if (singletonServiceRegistration != null) {
-            try {
-                singletonServiceRegistration.close();
-            } catch (Exception e) {
-                LOG.warn("{} closed unexpectedly. Cause: {}", e.getMessage());
-            }
-            singletonServiceRegistration = null;
-        }
-    }
-
-    @Override
-    public ServiceGroupIdentifier getIdentifier() {
-        return IDENTIFIER;
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModule.java b/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModule.java
deleted file mode 100644 (file)
index 43b395d..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2016 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.config.yang.config.groupbasedpolicy.sxp_mapper;
-
-
-import org.opendaylight.controller.sal.common.util.NoopAutoCloseable;
-
-/**
-* sxp-mapper impl module
-*/
-@Deprecated
-public class SxpMapperProviderModule extends org.opendaylight.controller.config.yang.config.groupbasedpolicy.sxp_mapper.AbstractSxpMapperProviderModule {
-    public SxpMapperProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
-        super(identifier, dependencyResolver);
-    }
-
-    public SxpMapperProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.groupbasedpolicy.sxp_mapper.SxpMapperProviderModule oldModule, java.lang.AutoCloseable oldInstance) {
-        super(identifier, dependencyResolver, oldModule, oldInstance);
-    }
-
-    @Override
-    public void customValidation() {
-        // add custom validation form module attributes here.
-    }
-
-    @Override
-    public java.lang.AutoCloseable createInstance() {
-        return NoopAutoCloseable.INSTANCE;
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModuleFactory.java b/sxp-mapper/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/sxp_mapper/SxpMapperProviderModuleFactory.java
deleted file mode 100644 (file)
index 60c85b9..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2016 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
- */
-
-/*
-* Generated file
-*
-* Generated from: yang module name: sxp-mapper-cfg yang module local name: sxp-mapper-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Mon Mar 07 14:13:06 CET 2016
-*
-* Do not modify this file unless it is present under src/main directory
-*/
-package org.opendaylight.controller.config.yang.config.groupbasedpolicy.sxp_mapper;
-@Deprecated
-public class SxpMapperProviderModuleFactory extends org.opendaylight.controller.config.yang.config.groupbasedpolicy.sxp_mapper.AbstractSxpMapperProviderModuleFactory {
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/DSAsyncDao.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/DSAsyncDao.java
deleted file mode 100644 (file)
index ac31581..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.ListenableFuture;
-import javax.annotation.Nonnull;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-
-/**
- * Purpose: encapsulate access to DS by exposing
- * <dl>
- * <dt>read</dt>
- * <dd>search through values (either in local cache or directly in DataStore)</dd>
- * </dl>
- *
- * @param <K> data key type
- * @param <V> data type
- */
-public interface DSAsyncDao<K, V extends DataObject> {
-
-    /**
-     * @param key for search
-     * @return value found by key
-     */
-    ListenableFuture<Optional<V>> read(@Nonnull K key);
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/EPTemplateListener.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/EPTemplateListener.java
deleted file mode 100644 (file)
index 0d26e80..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapper;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Purpose: provide listener capability to EndPoint templates
- */
-public interface EPTemplateListener<T extends DataObject> extends ClusteredDataTreeChangeListener<T>, AutoCloseable {
-
-    InstanceIdentifier<SxpMapper> SXP_MAPPER_TEMPLATE_PARENT_PATH = InstanceIdentifier.create(SxpMapper.class);
-
-    //NOBODY
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/IpPrefixEqualCommand.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/IpPrefixEqualCommand.java
deleted file mode 100644 (file)
index 54d473e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-
-/**
- * Purpose: provide different strategies for {@link IpPrefix} comparison
- */
-public interface IpPrefixEqualCommand {
-
-    boolean isEqualTo(IpPrefix value);
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/MasterDatabaseBindingListener.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/MasterDatabaseBindingListener.java
deleted file mode 100644 (file)
index b11cd59..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.sxp.core.Configuration;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-
-/**
- * Purpose: provide listener capability to {@link MasterDatabaseBinding} (Sxp - MasterDB)
- */
-public interface MasterDatabaseBindingListener extends ClusteredDataTreeChangeListener<MasterDatabaseBinding>, AutoCloseable {
-    /** path to SXP topology */
-    KeyedInstanceIdentifier<Topology, TopologyKey> SXP_TOPOLOGY_PATH = InstanceIdentifier.create(NetworkTopology.class)
-            .child(Topology.class, new TopologyKey(new TopologyId(Configuration.TOPOLOGY_NAME)));
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableAsyncByKey.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableAsyncByKey.java
deleted file mode 100644 (file)
index b594de0..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.Collection;
-import javax.annotation.Nonnull;
-
-/**
- * Purpose: simple asynchronous search interface allowing for custom key and returning list of values
- *
- * @param <X> special key type
- * @param <V> value type
- */
-public interface ReadableAsyncByKey<X, V> {
-
-    /**
-     * @param specialKey custom key to search by
-     * @return list of found values
-     */
-    ListenableFuture<Collection<V>> readBy(@Nonnull X specialKey);
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableByKey.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/ReadableByKey.java
deleted file mode 100644 (file)
index 1e34066..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import java.util.Collection;
-import javax.annotation.Nonnull;
-
-/**
- * Purpose: simple search interface allowing for custom key and returning list of values
- *
- * @param <X> special key type
- * @param <V> value type
- */
-public interface ReadableByKey<X, V> {
-
-    /**
-     * @param specialKey custom key to search by
-     * @return list of found values
-     */
-    Collection<V> readBy(@Nonnull X specialKey);
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleCachedDao.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleCachedDao.java
deleted file mode 100644 (file)
index d3e1390..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-
-/**
- * Purpose: encapsulate access to DS by exposing
- * <dl>
- * <dt>find</dt>
- * <dd>search through cached values</dd>
- * <dt>update</dt>
- * <dd>stores given pair (key, value) to local cache</dd>
- * </dl>
- *
- * @param <K> data key type
- * @param <V> data type
- */
-public interface SimpleCachedDao<K, V> extends SimpleDao<K, V> {
-
-    /**
-     * store given pair to local cache
-     *
-     * @param key   associated to value
-     * @param value associated to key
-     */
-    V update(@Nonnull K key, @Nullable V value);
-
-    /**
-     * invalidate all cache entries
-     */
-    void invalidateCache();
-
-    /**
-     * @return true if there is nothing cached
-     */
-    boolean isEmpty();
-
-    /**
-     * @return unmodifiable iterator through all cached values
-     */
-    Iterable<V> values();
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleDao.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SimpleDao.java
deleted file mode 100644 (file)
index 1616eac..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import com.google.common.base.Optional;
-import javax.annotation.Nonnull;
-
-/**
- * Purpose: encapsulate access to DS by exposing
- * <dl>
- * <dt>find</dt>
- * <dd>search through available values (e.g.: in  local cache)</dd>
- * </dl>
- *
- * @param <K> data key type
- * @param <V> data type
- */
-public interface SimpleDao<K, V> {
-
-    /**
-     * @param key for search
-     * @return value found by key
-     */
-    Optional<V> find(@Nonnull K key);
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SxpMapperReactor.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/SxpMapperReactor.java
deleted file mode 100644 (file)
index 0447d97..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.api;
-
-import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-
-/**
- * Purpose: process given ip-sgt binding and EP-template in order to create L3-EP
- */
-public interface SxpMapperReactor {
-
-    /**
-     * apply sgt/ip binding on policy template and delegate to appropriate GBP service
-     * @param epPolicyTemplate policy template
-     * @param epForwardingTemplate forwarding template
-     * @param masterDatabaseBinding sxpMasterDB item
-     */
-    ListenableFuture<RpcResult<Void>> processTemplatesAndSxpMasterDB(EndpointPolicyTemplateBySgt epPolicyTemplate,
-                                                                     EndpointForwardingTemplateBySubnet epForwardingTemplate,
-                                                                     MasterDatabaseBinding masterDatabaseBinding);
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImpl.java
deleted file mode 100644 (file)
index deee5ab..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.Iterables;
-import java.util.AbstractMap;
-import java.util.Collection;
-import java.util.Map.Entry;
-import org.opendaylight.groupbasedpolicy.api.EndpointAugmentor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EpPolicyTemplateValueKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EpPolicyTemplateValueKeyFactory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.ContainmentEndpointWithLocation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.AddressEndpointWithLocationAug;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.AddressEndpointWithLocationAugBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yangtools.yang.binding.Augmentation;
-
-public class SxpEndpointAugmentorImpl implements EndpointAugmentor {
-
-    private final ReadableByKey<EpPolicyTemplateValueKey, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
-    private final EpPolicyTemplateValueKeyFactory epPolicyTemplateKeyFactory;
-
-    public SxpEndpointAugmentorImpl(final ReadableByKey<EpPolicyTemplateValueKey, EndpointPolicyTemplateBySgt> epPolicyTemplateDao,
-                                   final EpPolicyTemplateValueKeyFactory epPolicyTemplateKeyFactory) {
-        this.epPolicyTemplateKeyFactory = Preconditions.checkNotNull(epPolicyTemplateKeyFactory, "epPolicyTemplateKeyFactory can not be null");
-        this.epPolicyTemplateDao = Preconditions.checkNotNull(epPolicyTemplateDao, "epPolicyTemplateDao can not be null");
-    }
-
-    @Override
-    public Entry<Class<? extends Augmentation<AddressEndpoint>>, Augmentation<AddressEndpoint>> buildAddressEndpointAugmentation(
-            AddressEndpointReg input) {
-        return null;
-    }
-
-    @Override
-    public Entry<Class<? extends Augmentation<ContainmentEndpoint>>, Augmentation<ContainmentEndpoint>> buildContainmentEndpointAugmentation(
-            ContainmentEndpointReg input) {
-        return null;
-    }
-
-    @Override
-    public Entry<Class<? extends Augmentation<AddressEndpointWithLocation>>, Augmentation<AddressEndpointWithLocation>> buildAddressEndpointWithLocationAugmentation(
-            AddressEndpoint input) {
-        final EpPolicyTemplateValueKey templateValueKey = epPolicyTemplateKeyFactory.createKey(
-                input.getTenant(), input.getEndpointGroup(), input.getCondition());
-
-        final Collection<EndpointPolicyTemplateBySgt> epPolicyTemplates = epPolicyTemplateDao.readBy(templateValueKey);
-        final Entry<Class<? extends Augmentation<AddressEndpointWithLocation>>, Augmentation<AddressEndpointWithLocation>> entry;
-
-        if (epPolicyTemplates.isEmpty()) {
-            entry = null;
-        } else {
-            //TODO: cover case when multiple templates found
-            final Augmentation<AddressEndpointWithLocation> addressEndpointWithLocationAug =
-                    new AddressEndpointWithLocationAugBuilder()
-                            .setSgt(Iterables.getFirst(epPolicyTemplates, null).getSgt())
-                            .build();
-            entry = new AbstractMap.SimpleEntry<>(AddressEndpointWithLocationAug.class, addressEndpointWithLocationAug);
-        }
-
-        return entry;
-    }
-
-    @Override
-    public Entry<Class<? extends Augmentation<ContainmentEndpointWithLocation>>, Augmentation<ContainmentEndpointWithLocation>> buildContainmentEndpointWithLocationAugmentation(
-            ContainmentEndpoint input) {
-        return null;
-    }
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperProviderImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperProviderImpl.java
deleted file mode 100644 (file)
index e70c15c..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl;
-
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.groupbasedpolicy.api.DomainSpecificRegistry;
-import org.opendaylight.groupbasedpolicy.api.EndpointAugmentor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EPForwardingTemplateDaoImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EPPolicyTemplateDaoImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EpPolicyTemplateValueKeyFactory;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.MasterDatabaseBindingDaoImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.SimpleCachedDaoEPForwardingTemplateImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.SimpleCachedDaoImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.EPForwardingTemplateListenerImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.EPPolicyTemplateListenerImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen.MasterDatabaseBindingListenerImpl;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * SxpMapper provider implementation.
- */
-public class SxpMapperProviderImpl implements AutoCloseable {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SxpMapperProviderImpl.class);
-
-    private final MasterDatabaseBindingListenerImpl sxpDatabaseListener;
-    private final SxpMapperReactor sxpMapperReactor;
-    private final EPTemplateListener epPolicyTemplateListener;
-    private final EPTemplateListener epForwardingTemplateListener;
-    private final DomainSpecificRegistry domainSpecificRegistry;
-    private final EndpointAugmentor sxpEndpointAugmentor;
-
-    public SxpMapperProviderImpl(final DataBroker dataBroker, final BaseEndpointService endpointService,
-            final DomainSpecificRegistry domainSpecificRegistry) {
-        LOG.info("starting SxmMapper ..");
-        this.domainSpecificRegistry = domainSpecificRegistry;
-
-        sxpMapperReactor = new SxpMapperReactorImpl(endpointService, dataBroker);
-
-        final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateCachedDao = new SimpleCachedDaoImpl<>();
-        final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateCachedDao =
-                new SimpleCachedDaoEPForwardingTemplateImpl();
-        final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> masterDBBindingCachedDao = new SimpleCachedDaoImpl<>();
-
-        final EpPolicyTemplateValueKeyFactory epPolicyTemplateKeyFactory = new EpPolicyTemplateValueKeyFactory(
-                EPTemplateUtil.createEndpointGroupIdOrdering(), EPTemplateUtil.createConditionNameOrdering());
-        final EPPolicyTemplateDaoImpl epPolicyTemplateDao = new EPPolicyTemplateDaoImpl(dataBroker, epPolicyTemplateCachedDao, epPolicyTemplateKeyFactory);
-        final EPForwardingTemplateDaoImpl epForwardingTemplateDao = new EPForwardingTemplateDaoImpl(dataBroker,
-                epForwardingTemplateCachedDao);
-        final  MasterDatabaseBindingDaoImpl masterDBBindingDao = new MasterDatabaseBindingDaoImpl(dataBroker, masterDBBindingCachedDao);
-
-        sxpDatabaseListener = new MasterDatabaseBindingListenerImpl(dataBroker, sxpMapperReactor, masterDBBindingCachedDao,
-                epPolicyTemplateDao, epForwardingTemplateDao);
-        epPolicyTemplateListener = new EPPolicyTemplateListenerImpl(dataBroker, sxpMapperReactor, epPolicyTemplateCachedDao,
-                masterDBBindingDao, epForwardingTemplateDao);
-        epForwardingTemplateListener = new EPForwardingTemplateListenerImpl(dataBroker, sxpMapperReactor, epForwardingTemplateCachedDao,
-                masterDBBindingDao, epPolicyTemplateDao);
-        sxpEndpointAugmentor = new SxpEndpointAugmentorImpl(epPolicyTemplateDao, epPolicyTemplateKeyFactory);
-        domainSpecificRegistry.getEndpointAugmentorRegistry().register(sxpEndpointAugmentor);
-        LOG.info("started SxmMapper");
-    }
-
-    @Override
-    public void close() throws Exception {
-        //TODO: stub
-        sxpDatabaseListener.close();
-        epPolicyTemplateListener.close();
-        epForwardingTemplateListener.close();
-        domainSpecificRegistry.getEndpointAugmentorRegistry().unregister(sxpEndpointAugmentor);
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImpl.java
deleted file mode 100644 (file)
index 3afa0bf..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.JdkFutureAdapters;
-import com.google.common.util.concurrent.ListenableFuture;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.Endpoints;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.NetworkContainmentBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.common.endpoint.fields.network.containment.containment.NetworkDomainContainmentBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.AddressEndpoints;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointRegBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.IpPrefixType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.forwarding.l2_l3.rev160427.L3Context;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Collections;
-
-/**
- * Purpose: exclusively processes sxp master database changes and EGP templates changes
- */
-public class SxpMapperReactorImpl implements SxpMapperReactor {
-
-    private static final Logger LOG = LoggerFactory.getLogger(SxpMapperReactorImpl.class);
-
-    private final BaseEndpointService l3EndpointService;
-    private final DataBroker dataBroker;
-
-    public SxpMapperReactorImpl(final BaseEndpointService l3EndpointService, final DataBroker dataBroker) {
-        this.l3EndpointService = Preconditions.checkNotNull(l3EndpointService, "l3Endpoint service missing");
-        this.dataBroker = Preconditions.checkNotNull(dataBroker, "dataBroker missing");
-    }
-
-    @Override
-    public ListenableFuture<RpcResult<Void>> processTemplatesAndSxpMasterDB(
-            final EndpointPolicyTemplateBySgt epPolicyTemplate,
-            final EndpointForwardingTemplateBySubnet epForwardingTemplate,
-            final MasterDatabaseBinding masterDBBinding) {
-        LOG.debug("processing ep-templates + sxpMasterDB entry: {} - {}",
-                masterDBBinding.getSecurityGroupTag(), masterDBBinding.getIpPrefix());
-        // apply sxpMasterDB to policy template
-        final Ipv4Prefix address = new Ipv4Prefix(epForwardingTemplate.getIpPrefix().getIpv4Prefix().getValue());
-        final NetworkContainment networkContainment = new NetworkContainmentBuilder()
-            .setContainment(new NetworkDomainContainmentBuilder()
-            .setNetworkDomainType(epForwardingTemplate.getNetworkContainment().getNetworkDomainType())
-            .setNetworkDomainId(epForwardingTemplate.getNetworkContainment().getNetworkDomainId())
-            .build())
-                    .build();
-        final RegisterEndpointInput epInput = new RegisterEndpointInputBuilder().setAddressEndpointReg(
-                Collections.singletonList(new AddressEndpointRegBuilder().setAddressType(IpPrefixType.class)
-                    .setAddress(address.getValue())
-                    .setContextType(L3Context.class)
-                    .setContextId(epForwardingTemplate.getL3Context())
-                    .setNetworkContainment(networkContainment)
-                    .setCondition(epPolicyTemplate.getConditions())
-                    .setTenant(epPolicyTemplate.getTenant())
-                    .setEndpointGroup(epPolicyTemplate.getEndpointGroups())
-                    .build()))
-                .build();
-                epForwardingTemplate.getL3Context();
-
-        return chainL3EPServiceIfEpAbsent(epInput);
-    }
-
-    private CheckedFuture<Optional<AddressEndpoint>, ReadFailedException> findExistingEndPoint(final ContextId containment,
-                                                                                          final String address) {
-        KeyedInstanceIdentifier<AddressEndpoint, AddressEndpointKey> addressEndpointPath =
-                InstanceIdentifier.create(Endpoints.class).child(AddressEndpoints.class).child(AddressEndpoint.class,
-                        new AddressEndpointKey(address, IpPrefixType.class, containment, L3Context.class));
-        final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
-        final CheckedFuture<Optional<AddressEndpoint>, ReadFailedException> read = rTx.read(
-                LogicalDatastoreType.OPERATIONAL, addressEndpointPath);
-        Futures.addCallback(read, SxpListenerUtil.createTxCloseCallback(rTx));
-        return read;
-    }
-
-    private ListenableFuture<RpcResult<Void>> chainL3EPServiceIfEpAbsent(final RegisterEndpointInput epInput) {
-        AddressEndpointReg addressEndpoint = epInput.getAddressEndpointReg().get(0);
-        CheckedFuture<Optional<AddressEndpoint>, ReadFailedException> existingEndpointFuture =
-                findExistingEndPoint(addressEndpoint.getContextId(), addressEndpoint.getAddress());
-
-        return Futures.transform(existingEndpointFuture, new AsyncFunction<Optional<AddressEndpoint>, RpcResult<Void>>() {
-            @Override
-            public ListenableFuture<RpcResult<Void>> apply(final Optional<AddressEndpoint> input) throws Exception {
-                final ListenableFuture<RpcResult<Void>> nextResult;
-                if (input == null || !input.isPresent() || !isSameEpg(epInput, input.get())) {
-                    // invoke service
-                    return JdkFutureAdapters.listenInPoolThread(l3EndpointService.registerEndpoint(epInput));
-                } else {
-                    final String existingL3EpMsg = String.format("address-endpoint for given key already exists: %s | %s",
-                            addressEndpoint.getContextId(), addressEndpoint.getAddress() );
-                    nextResult = Futures.immediateFailedFuture(new IllegalStateException(existingL3EpMsg));
-                }
-                return nextResult;
-            }
-        });
-    }
-
-    private boolean isSameEpg(RegisterEndpointInput epInput, AddressEndpoint input) {
-        if (epInput == null || epInput.getAddressEndpointReg() == null || epInput.getAddressEndpointReg().isEmpty()) {
-            return true;
-        }
-        final AddressEndpointReg epInputAddressEndpoint = epInput.getAddressEndpointReg().get(0);
-        if (epInputAddressEndpoint.getEndpointGroup() == null || epInputAddressEndpoint.getEndpointGroup().isEmpty()) {
-            return true;
-        }
-        if (input == null || input.getEndpointGroup() == null || input.getEndpointGroup().isEmpty()) {
-            return true;
-        }
-        final EndpointGroupId addressEndpointGroupId = epInputAddressEndpoint.getEndpointGroup().get(0);
-        final EndpointGroupId existingEndpointGroupId = input.getEndpointGroup().get(0);
-        return addressEndpointGroupId.equals(existingEndpointGroupId);
-    }
-
-}
-
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImpl.java
deleted file mode 100644 (file)
index c877ff6..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.List;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapper;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Purpose: general dao for EndPoint templates
- */
-public class EPForwardingTemplateDaoImpl implements DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> {
-
-    private static final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> READ_FUTURE_ABSENT = Futures.immediateFuture(Optional.absent());
-    private final DataBroker dataBroker;
-    private final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> cachedDao;
-
-    public EPForwardingTemplateDaoImpl(final DataBroker dataBroker,
-                                       final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> cachedDao) {
-        this.dataBroker = dataBroker;
-        this.cachedDao = cachedDao;
-    }
-
-    @Override
-    public ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> read(@Nonnull final IpPrefix key) {
-        final Optional<EndpointForwardingTemplateBySubnet> value = lookup(cachedDao, key);
-        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> readResult;
-        if (value.isPresent()) {
-            readResult = Futures.immediateFuture(value);
-        } else if (!cachedDao.isEmpty()) {
-            return READ_FUTURE_ABSENT;
-        } else {
-            final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
-            final CheckedFuture<Optional<SxpMapper>, ReadFailedException> read =
-                    rTx.read(LogicalDatastoreType.CONFIGURATION, buildReadPath(key));
-
-            Futures.addCallback(read, SxpListenerUtil.createTxCloseCallback(rTx));
-
-            readResult = Futures.transform(read, new Function<Optional<SxpMapper>, Optional<EndpointForwardingTemplateBySubnet>>() {
-                @Nullable
-                @Override
-                public Optional<EndpointForwardingTemplateBySubnet> apply(@Nullable final Optional<SxpMapper> input) {
-                    if (input.isPresent()) {
-                        // clean cache
-                        cachedDao.invalidateCache();
-
-                        // iterate through all template entries and update cachedDao
-                        final List<EndpointForwardingTemplateBySubnet> templateLot = input.get().getEndpointForwardingTemplateBySubnet();
-                        if (templateLot != null) {
-                            for (EndpointForwardingTemplateBySubnet template : templateLot) {
-                                cachedDao.update(template.getIpPrefix(), template);
-                            }
-                        }
-                        return lookup(cachedDao, key);
-                    } else {
-                        return Optional.absent();
-                    }
-                }
-            });
-        }
-        return readResult;
-    }
-
-    protected InstanceIdentifier<SxpMapper> buildReadPath(final IpPrefix key) {
-        return EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH;
-    }
-
-    private Optional<EndpointForwardingTemplateBySubnet> lookup(final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> cachedDao, final IpPrefix key) {
-        return cachedDao.find(key);
-    }
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImpl.java
deleted file mode 100644 (file)
index dbbc3cc..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.ArrayList;
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Purpose: general dao for EndPoint templates
- */
-public class EPPolicyTemplateDaoImpl implements DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt>,
-        ReadableByKey<EpPolicyTemplateValueKey, EndpointPolicyTemplateBySgt> {
-
-    private static final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> READ_FUTURE_ABSENT = Futures.immediateFuture(Optional.absent());
-
-    private final DataBroker dataBroker;
-    private final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> cachedDao;
-    private final EpPolicyTemplateValueKeyFactory keyFactory;
-
-    public EPPolicyTemplateDaoImpl(final DataBroker dataBroker,
-                                   final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> cachedDao,
-                                   final EpPolicyTemplateValueKeyFactory keyFactory) {
-        this.dataBroker = dataBroker;
-        this.cachedDao = cachedDao;
-        this.keyFactory = keyFactory;
-    }
-
-    @Override
-    public ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> read(@Nonnull final Sgt key) {
-        final Optional<EndpointPolicyTemplateBySgt> cachedEndpointPolicyTemplateBySgtalue = lookup(cachedDao, key);
-        if (cachedEndpointPolicyTemplateBySgtalue.isPresent()) {
-            return Futures.immediateFuture(cachedEndpointPolicyTemplateBySgtalue);
-        } else if (!cachedDao.isEmpty()) {
-            return READ_FUTURE_ABSENT;
-        } else {
-            final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
-            final CheckedFuture<Optional<EndpointPolicyTemplateBySgt>, ReadFailedException> read =
-                    rTx.read(LogicalDatastoreType.CONFIGURATION, buildReadPath(key));
-
-            Futures.addCallback(read, SxpListenerUtil.createTxCloseCallback(rTx));
-
-            return Futures.transform(read, new Function<Optional<EndpointPolicyTemplateBySgt>, Optional<EndpointPolicyTemplateBySgt>>() {
-                @Nullable
-                @Override
-                public Optional<EndpointPolicyTemplateBySgt> apply(@Nullable final Optional<EndpointPolicyTemplateBySgt> input) {
-                    if (input.isPresent()) {
-                        cachedDao.update(key, keyFactory.sortValueKeyLists(input.get()));
-                    }
-                    return input;
-                }
-            });
-        }
-    }
-
-    protected InstanceIdentifier<EndpointPolicyTemplateBySgt> buildReadPath(final Sgt key) {
-        return EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH
-                .child(EndpointPolicyTemplateBySgt.class, new EndpointPolicyTemplateBySgtKey(key));
-    }
-
-    private Optional<EndpointPolicyTemplateBySgt> lookup(final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> cachedDao, final Sgt key) {
-        return cachedDao.find(key);
-    }
-
-    @Override
-    public Collection<EndpointPolicyTemplateBySgt> readBy(@Nonnull final EpPolicyTemplateValueKey specialKey) {
-        final Predicate<EpPolicyTemplateValueKey> templateValuePredicate = Predicates.equalTo(specialKey);
-        final Collection<EndpointPolicyTemplateBySgt> foundTemplates = new ArrayList<>();
-
-        for (EndpointPolicyTemplateBySgt epPolicyTemplate : cachedDao.values()) {
-            final EpPolicyTemplateValueKey templateValueKey = keyFactory.createKeyWithDefaultOrdering(epPolicyTemplate);
-            if (templateValuePredicate.apply(templateValueKey)) {
-                foundTemplates.add(epPolicyTemplate);
-            }
-        }
-
-        return foundTemplates;
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKey.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKey.java
deleted file mode 100644 (file)
index 04714ec..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import java.util.List;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-
-/**
- * Purpose: composite key holcer for {@link EndpointPolicyTemplateBySgt}
- */
-public class EpPolicyTemplateValueKey {
-
-    private final TenantId tenantId;
-    private final List<EndpointGroupId> epgId;
-    private final List<ConditionName> conditionName;
-
-    public EpPolicyTemplateValueKey(final TenantId tenantId, final List<EndpointGroupId> epgId, final List<ConditionName> conditionName) {
-        this.tenantId = tenantId;
-        this.epgId = epgId;
-        this.conditionName = conditionName;
-    }
-
-    public EpPolicyTemplateValueKey(AddressEndpointWithLocation endpoint) {
-        this(endpoint.getTenant(), endpoint.getEndpointGroup(), endpoint.getCondition());
-    }
-
-    public TenantId getTenantId() {
-        return tenantId;
-    }
-
-    public List<EndpointGroupId> getEpgId() {
-        return epgId;
-    }
-
-    public List<ConditionName> getConditionName() {
-        return conditionName;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final EpPolicyTemplateValueKey that = (EpPolicyTemplateValueKey) o;
-
-        if (tenantId != null ? !tenantId.equals(that.tenantId) : that.tenantId != null) return false;
-        if (epgId != null ? !epgId.equals(that.epgId) : that.epgId != null) return false;
-        return conditionName != null ? conditionName.equals(that.conditionName) : that.conditionName == null;
-
-    }
-
-    @Override
-    public int hashCode() {
-        return tenantId != null ? tenantId.hashCode() : 0;
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKeyFactory.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EpPolicyTemplateValueKeyFactory.java
deleted file mode 100644 (file)
index 5bbac19..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.collect.Ordering;
-import java.util.Collections;
-import java.util.List;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-
-/**
- * Purpose: create cache keys with ordered lists inside
- */
-public class EpPolicyTemplateValueKeyFactory {
-    private final Ordering<EndpointGroupId> epgIdOrdering;
-    private final Ordering<ConditionName> conditionOrdering;
-
-    public EpPolicyTemplateValueKeyFactory(final Ordering<EndpointGroupId> epgIdOrdering,
-                                           final Ordering<ConditionName> conditionOrdering) {
-        this.epgIdOrdering = epgIdOrdering;
-        this.conditionOrdering = conditionOrdering;
-    }
-
-    public EndpointPolicyTemplateBySgt sortValueKeyLists(final EndpointPolicyTemplateBySgt template) {
-        if (template.getEndpointGroups() != null) {
-            Collections.sort(template.getEndpointGroups(), epgIdOrdering);
-        }
-        if (template.getConditions() != null) {
-            Collections.sort(template.getConditions(), conditionOrdering);
-        }
-        return template;
-    }
-
-    public EpPolicyTemplateValueKey createKeyWithDefaultOrdering(final EndpointPolicyTemplateBySgt newSource) {
-        return new EpPolicyTemplateValueKey(
-                newSource.getTenant(), newSource.getEndpointGroups(), newSource.getConditions());
-    }
-
-    public EpPolicyTemplateValueKey sortValueKeyLists(final EpPolicyTemplateValueKey existingKey) {
-        Collections.sort(existingKey.getEpgId(), epgIdOrdering);
-        if (existingKey.getConditionName() != null) {
-            Collections.sort(existingKey.getConditionName(), conditionOrdering);
-        }
-        return existingKey;
-    }
-
-    public EpPolicyTemplateValueKey createKey(final TenantId tenant, final List<EndpointGroupId> endpointGroup,
-                                              final List<ConditionName> condition) {
-        return sortValueKeyLists(new EpPolicyTemplateValueKey(tenant, endpointGroup, condition));
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImpl.java
deleted file mode 100644 (file)
index 67ca046..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.MasterDatabaseBindingListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableAsyncByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.MasterDatabaseFields;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpDatabasesFields;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpNodeIdentity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.SxpDomains;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Purpose: general dao for EndPoint templates
- */
-public class MasterDatabaseBindingDaoImpl implements DSAsyncDao<IpPrefix, MasterDatabaseBinding>,
-        ReadableAsyncByKey<Sgt, MasterDatabaseBinding> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(MasterDatabaseBindingDaoImpl.class);
-    private static final ListenableFuture<Optional<MasterDatabaseBinding>> READ_FUTURE_ABSENT = Futures.immediateFuture(Optional.absent());
-
-    private final DataBroker dataBroker;
-    private final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> cachedDao;
-
-    public MasterDatabaseBindingDaoImpl(final DataBroker dataBroker,
-                              final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> cachedDao) {
-        this.dataBroker = dataBroker;
-        this.cachedDao = cachedDao;
-    }
-
-    @Override
-    public ListenableFuture<Optional<MasterDatabaseBinding>> read(@Nonnull final IpPrefix key) {
-        final Optional<MasterDatabaseBinding> cachedMasterDatabaseBinding = lookup(cachedDao, key);
-        if (cachedMasterDatabaseBinding.isPresent()) {
-            return Futures.immediateFuture(cachedMasterDatabaseBinding);
-        } else if (!cachedDao.isEmpty()) {
-            return READ_FUTURE_ABSENT;
-        } else {
-            final ListenableFuture<Void> cacheUpdatedFt = updateCache();
-
-            return Futures.transform(cacheUpdatedFt, new Function<Void, Optional<MasterDatabaseBinding>>() {
-                @Nullable
-                @Override
-                public Optional<MasterDatabaseBinding> apply(@Nullable final Void input) {
-                    return lookup(cachedDao, key);
-                }
-            });
-        }
-    }
-
-    private ListenableFuture<Void> updateCache() {
-        final ReadOnlyTransaction rTx = dataBroker.newReadOnlyTransaction();
-        final CheckedFuture<Optional<Topology>, ReadFailedException> read =
-                rTx.read(LogicalDatastoreType.CONFIGURATION, buildReadPath(null));
-
-        Futures.addCallback(read, SxpListenerUtil.createTxCloseCallback(rTx));
-
-        return Futures.transform(read, new Function<Optional<Topology>, Void>() {
-            @Nullable
-            @Override
-            public Void apply(@Nullable final Optional<Topology> input) {
-                if (input.isPresent()) {
-                    // clean cache
-                    cachedDao.invalidateCache();
-
-                    for (Node node : input.get().getNode()) {
-                        java.util.Optional.ofNullable(node.getAugmentation(SxpNodeIdentity.class))
-                                .map(SxpNodeIdentity::getSxpDomains)
-                                .map(SxpDomains::getSxpDomain)
-                                .ifPresent((sxpDomain) -> {
-                                    final List<MasterDatabaseBinding> masterDBBindings = sxpDomain.stream()
-                                            .map(SxpDatabasesFields::getMasterDatabase)
-                                            .filter(masterDb -> masterDb != null)
-                                            .map(MasterDatabaseFields::getMasterDatabaseBinding)
-                                            .filter(binding -> binding != null)
-                                            .flatMap(Collection::stream)
-                                            .collect(Collectors.toList());
-
-                                    for (MasterDatabaseBinding masterDBItem : masterDBBindings) {
-                                        // update all
-                                        final MasterDatabaseBinding
-                                                previousValue =
-                                                cachedDao.update(masterDBItem.getIpPrefix(), masterDBItem);
-                                        if (previousValue != null) {
-                                            LOG.warn("updated key already obtained: [node:{}, sgt:{}]",
-                                                    node.getNodeId().getValue(), masterDBItem.getSecurityGroupTag());
-                                        }
-                                    }
-                                });
-                    }
-                } else {
-                    LOG.warn("failed to update cache of SxpMasterDB - no data");
-                }
-                return null;
-            }
-        });
-    }
-
-    private InstanceIdentifier<Topology> buildReadPath(final Sgt key) {
-        return MasterDatabaseBindingListener.SXP_TOPOLOGY_PATH;
-    }
-
-    private Optional<MasterDatabaseBinding> lookup(final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> cachedDao, final IpPrefix key) {
-        return cachedDao.find(key);
-    }
-
-    @Override
-    public ListenableFuture<Collection<MasterDatabaseBinding>> readBy(@Nonnull final Sgt specialKey) {
-        final ListenableFuture<Void> cacheUpdatedFt;
-        if (!cachedDao.isEmpty()) {
-            cacheUpdatedFt = Futures.immediateFuture(null);
-        } else {
-            cacheUpdatedFt = updateCache();
-        }
-
-        return Futures.transform(cacheUpdatedFt, new Function<Void, Collection<MasterDatabaseBinding>>() {
-            @Nullable
-            @Override
-            public Collection<MasterDatabaseBinding> apply(@Nullable final Void input) {
-                final Collection<MasterDatabaseBinding> foundGroups = new ArrayList<>();
-
-                for (MasterDatabaseBinding masterDBItem : cachedDao.values()) {
-                    if (masterDBItem.getSecurityGroupTag().equals(specialKey)) {
-                        foundGroups.add(masterDBItem);
-                    }
-                }
-                return foundGroups;
-            }
-        });
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImpl.java
deleted file mode 100644 (file)
index 85f5e10..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.regex.Pattern;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.apache.commons.net.util.SubnetUtils;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SubnetInfoKeyDecorator;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-
-/**
- * Purpose: generic implementation of {@link SimpleCachedDao}
- */
-public class SimpleCachedDaoEPForwardingTemplateImpl implements SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> {
-
-    private final ConcurrentMap<IpPrefix, EndpointForwardingTemplateBySubnet> plainCache;
-    private final ConcurrentMap<SubnetInfoKeyDecorator, EndpointForwardingTemplateBySubnet> subnetCache;
-    private final Pattern IP_MASK_EATER_RE = Pattern.compile("/[0-9]+");
-
-    public SimpleCachedDaoEPForwardingTemplateImpl() {
-        plainCache = new ConcurrentHashMap<>();
-        subnetCache = new ConcurrentHashMap<>();
-    }
-
-    @Override
-    public EndpointForwardingTemplateBySubnet update(@Nonnull final IpPrefix key, @Nullable final EndpointForwardingTemplateBySubnet value) {
-        final EndpointForwardingTemplateBySubnet previousValue;
-        if (EPTemplateUtil.isPlain(key)) {
-            previousValue = updatePlainCache(key, value);
-        } else {
-            previousValue = updateSubnetCache(key, value);
-        }
-
-        return previousValue;
-    }
-
-    private EndpointForwardingTemplateBySubnet updateSubnetCache(final IpPrefix key, final EndpointForwardingTemplateBySubnet value) {
-        final EndpointForwardingTemplateBySubnet previousValue;
-        final SubnetInfoKeyDecorator subnetKey = EPTemplateUtil.buildSubnetInfoKey(key);
-        if (value != null) {
-            previousValue = subnetCache.put(subnetKey, value);
-        } else {
-            previousValue = subnetCache.remove(subnetKey);
-        }
-        return previousValue;
-    }
-
-    private EndpointForwardingTemplateBySubnet updatePlainCache(final @Nonnull IpPrefix key, final @Nullable EndpointForwardingTemplateBySubnet value) {
-        final EndpointForwardingTemplateBySubnet previousValue;
-        if (value != null) {
-            previousValue = plainCache.put(key, value);
-        } else {
-            previousValue = plainCache.remove(key);
-        }
-        return previousValue;
-    }
-
-    @Override
-    public Optional<EndpointForwardingTemplateBySubnet> find(@Nonnull final IpPrefix key) {
-        final Optional<EndpointForwardingTemplateBySubnet> template;
-        if (EPTemplateUtil.isPlain(key)) {
-            final Optional<EndpointForwardingTemplateBySubnet> fastPlain = Optional.fromNullable(plainCache.get(key));
-            if (fastPlain.isPresent()) {
-                template = fastPlain;
-            } else {
-                template = lookupSlowSubnet(key.getIpv4Prefix().getValue());
-            }
-        } else {
-            final SubnetInfoKeyDecorator keyDecorator = EPTemplateUtil.buildSubnetInfoKey(key);
-            final Optional<EndpointForwardingTemplateBySubnet> fastSubnet =
-                    Optional.fromNullable(subnetCache.get(keyDecorator));
-            if (fastSubnet.isPresent()) {
-                template = fastSubnet;
-            } else {
-                template = Optional.absent();
-            }
-        }
-        return template;
-    }
-
-    private Optional<EndpointForwardingTemplateBySubnet> lookupSlowSubnet(final String value) {
-        final String plainIp = IP_MASK_EATER_RE.matcher(value).replaceFirst("");
-        EndpointForwardingTemplateBySubnet valueCandidate = null;
-        int addressCount = 0;
-        for (Map.Entry<SubnetInfoKeyDecorator, EndpointForwardingTemplateBySubnet> entry : subnetCache.entrySet()) {
-            final SubnetUtils.SubnetInfo subnetInfo = entry.getKey().getDelegate();
-            if (subnetInfo.isInRange(plainIp)) {
-                final int addressCountTmp = subnetInfo.getAddressCount();
-                if (valueCandidate == null || addressCount > addressCountTmp) {
-                    valueCandidate = entry.getValue();
-                    addressCount = addressCountTmp;
-                }
-            }
-        }
-        return Optional.fromNullable(valueCandidate);
-    }
-
-    @Override
-    public void invalidateCache() {
-        plainCache.clear();
-        subnetCache.clear();
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return plainCache.isEmpty() && subnetCache.isEmpty();
-    }
-
-    @Override
-    public Iterable<EndpointForwardingTemplateBySubnet> values() {
-        return Iterables.unmodifiableIterable(Iterables.concat(plainCache.values(), subnetCache.values()));
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImpl.java
deleted file mode 100644 (file)
index b57ac74..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-
-/**
- * Purpose: generic implementation of {@link SimpleCachedDao}
- */
-public class SimpleCachedDaoImpl<K, V extends DataObject> implements SimpleCachedDao<K, V> {
-
-    private final ConcurrentMap<K, V> cache;
-
-    public SimpleCachedDaoImpl() {
-        cache = new ConcurrentHashMap<>();
-    }
-
-    @Override
-    public V update(@Nonnull final K key, @Nullable final V value) {
-        final V previousValue;
-        if (value != null) {
-            previousValue = cache.put(key, value);
-        } else {
-            previousValue = cache.remove(key);
-        }
-
-        return previousValue;
-    }
-
-    @Override
-    public Optional<V> find(@Nonnull final K key) {
-        return Optional.fromNullable(cache.get(key));
-    }
-
-    @Override
-    public void invalidateCache() {
-        cache.clear();
-    }
-
-    @Override
-    public boolean isEmpty() {
-        return cache.isEmpty();
-    }
-
-    @Override
-    public Iterable<V> values() {
-        return Iterables.unmodifiableIterable(cache.values());
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImpl.java
deleted file mode 100644 (file)
index aabbbef..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.Collection;
-import javax.annotation.Nonnull;
-import org.apache.commons.lang3.tuple.Pair;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.L3EPServiceUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcError;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Purpose: listens to EP forwarding template and propagates change events for further processing
- */
-public class EPForwardingTemplateListenerImpl implements EPTemplateListener<EndpointForwardingTemplateBySubnet> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(EPForwardingTemplateListenerImpl.class);
-
-    public static final FutureCallback<RpcResult<Void>> ANY_RPC_FUTURE_CALLBACK =
-            L3EPServiceUtil.createFailureLoggingCallback("failed to read epForwardingTemplate");
-
-    private final SxpMapperReactor sxpMapperReactor;
-    private final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> templateCachedDao;
-    private final DSAsyncDao<IpPrefix, MasterDatabaseBinding> masterDBBindingDao;
-    private final ListenerRegistration<? extends EPTemplateListener> listenerRegistration;
-    private final InstanceIdentifier<EndpointForwardingTemplateBySubnet> templatePath;
-    private final DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
-
-    public EPForwardingTemplateListenerImpl(final DataBroker dataBroker,
-                                            final SxpMapperReactor sxpMapperReactor,
-                                            final SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> templateCachedDao,
-                                            final DSAsyncDao<IpPrefix, MasterDatabaseBinding> masterDBBindingDao,
-                                            final DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao) {
-        this.sxpMapperReactor = Preconditions.checkNotNull(sxpMapperReactor);
-        this.templateCachedDao = Preconditions.checkNotNull(templateCachedDao);
-        this.masterDBBindingDao = Preconditions.checkNotNull(masterDBBindingDao);
-        this.epPolicyTemplateDao = Preconditions.checkNotNull(epPolicyTemplateDao);
-        templatePath = EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH.child(EndpointForwardingTemplateBySubnet.class);
-
-        final DataTreeIdentifier<EndpointForwardingTemplateBySubnet> dataTreeIdentifier = new DataTreeIdentifier<>(
-                LogicalDatastoreType.CONFIGURATION, templatePath);
-        listenerRegistration = dataBroker.registerDataTreeChangeListener(dataTreeIdentifier, this);
-        LOG.debug("started listening to {}", templatePath);
-    }
-
-    @Override
-    public void onDataTreeChanged(@Nonnull final Collection<DataTreeModification<EndpointForwardingTemplateBySubnet>> collection) {
-        for (DataTreeModification<EndpointForwardingTemplateBySubnet> change : collection) {
-            LOG.trace("received modification: {} -> {}", change.getRootPath(), change.getRootNode().getModificationType());
-            // update cached dao
-            final InstanceIdentifier<EndpointForwardingTemplateBySubnet> changePath = change.getRootPath().getRootIdentifier();
-            final IpPrefix changeKey = changePath.firstKeyOf(EndpointForwardingTemplateBySubnet.class).getIpPrefix();
-            SxpListenerUtil.updateCachedDao(templateCachedDao, changeKey, change);
-
-            final EndpointForwardingTemplateBySubnet epForwardingTemplate = change.getRootNode().getDataAfter();
-            processWithEPTemplates(epForwardingTemplate);
-        }
-    }
-
-    private void processWithEPTemplates(final EndpointForwardingTemplateBySubnet epForwardingTemplate) {
-        final ListenableFuture<Optional<MasterDatabaseBinding>> sxpMasterDbItemRead =
-                masterDBBindingDao.read(epForwardingTemplate.getIpPrefix());
-
-        // find all available epForwardingTemplates and pair those to sxpMasterDBBinding
-        final ListenableFuture<Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>> searchResult =
-                Futures.transform(sxpMasterDbItemRead, createReadAndPairTemplateToBindingFunction(epForwardingTemplate));
-
-        // invoke sxpMapperReactor.process for every valid combination of sxpMasterDBBinding, epPolicyTemplate, epForwardingTemplate
-        final ListenableFuture<RpcResult<Void>> rpcResult =
-                Futures.transform(searchResult, createProcessAllFunction(epForwardingTemplate));
-
-        Futures.addCallback(rpcResult, ANY_RPC_FUTURE_CALLBACK);
-    }
-
-    private AsyncFunction<Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>, RpcResult<Void>>
-    createProcessAllFunction(final EndpointForwardingTemplateBySubnet epForwardingTemplate) {
-        return new AsyncFunction<Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>, RpcResult<Void>>() {
-            @Override
-            public ListenableFuture<RpcResult<Void>>
-            apply(final Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>> input) throws Exception {
-                final ListenableFuture<RpcResult<Void>> result;
-                if (input == null || !input.isPresent()) {
-                    LOG.debug("no epPolicyTemplate available for ip-prefix: {}", epForwardingTemplate.getIpPrefix());
-                    result = Futures.immediateFuture(
-                            RpcResultBuilder.<Void>failed()
-                                    .withError(RpcError.ErrorType.APPLICATION,
-                                            "no epForwardingTemplate available for ip-prefix " + epForwardingTemplate.getIpPrefix())
-                                    .build());
-                } else {
-                    LOG.trace("processing epForwardingTemplate event for ip-prefix: {}", epForwardingTemplate.getIpPrefix());
-                    final Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt> pair = input.get();
-                    final MasterDatabaseBinding sxpMasterDBBinding = pair.getLeft();
-                    final EndpointPolicyTemplateBySgt epPolicyTemplate = pair.getRight();
-                    LOG.trace("processing epForwardingTemplate event with resolved sxpMasterDb entry and " +
-                                    "epPolicyTemplate for sgt/ip-prefix: {}/{}",
-                            sxpMasterDBBinding.getSecurityGroupTag(), sxpMasterDBBinding.getImplementedInterface());
-                    result = sxpMapperReactor.processTemplatesAndSxpMasterDB(epPolicyTemplate, epForwardingTemplate, sxpMasterDBBinding);
-                }
-
-                return result;
-            }
-        };
-    }
-
-    private AsyncFunction<Optional<MasterDatabaseBinding>, Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>>
-    createReadAndPairTemplateToBindingFunction(final EndpointForwardingTemplateBySubnet epFowardingTemplate) {
-        return new AsyncFunction<Optional<MasterDatabaseBinding>, Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>>() {
-            @Override
-            public ListenableFuture<Optional<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>>>
-            apply(final Optional<MasterDatabaseBinding> input) throws Exception {
-                final ListenableFuture<Pair<MasterDatabaseBinding, EndpointPolicyTemplateBySgt>> result;
-                if (input == null || !input.isPresent()) {
-                    LOG.debug("no sxpMasterDB entry available for ip-prefix: {}", epFowardingTemplate.getIpPrefix());
-                    result = Futures.immediateFuture(null);
-                } else {
-                    LOG.trace("processing sxpMasterDB entry for ip-prefix: {}", epFowardingTemplate.getIpPrefix());
-                    final MasterDatabaseBinding masterDBItem = input.get();
-                    final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> epPolicyTemplateRead =
-                            epPolicyTemplateDao.read(masterDBItem.getSecurityGroupTag());
-                    result = EPTemplateUtil.wrapToPair(masterDBItem, epPolicyTemplateRead);
-                }
-
-                return EPTemplateUtil.wrapToOptional(result);
-            }
-        };
-    }
-
-
-    @Override
-    public void close() throws Exception {
-        LOG.debug("closing listener registration to {}", templatePath);
-        listenerRegistration.close();
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImpl.java
deleted file mode 100644 (file)
index f1fc9bf..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import javax.annotation.Nonnull;
-import org.apache.commons.lang3.tuple.Pair;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableAsyncByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.L3EPServiceUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcError;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Purpose: listens to EP policy template and propagates change events for further processing
- */
-public class EPPolicyTemplateListenerImpl implements EPTemplateListener<EndpointPolicyTemplateBySgt> {
-
-    private static final Logger LOG = LoggerFactory.getLogger(EPPolicyTemplateListenerImpl.class);
-
-    private static final FutureCallback<List<RpcResult<Void>>> RPC_RESULT_FUTURE_CALLBACK =
-            L3EPServiceUtil.createFailureLoggingCallback("failed to apply epPolicyTemplate");
-
-    private final ListenerRegistration<? extends EPTemplateListener> listenerRegistration;
-    private final InstanceIdentifier<EndpointPolicyTemplateBySgt> templatePath;
-    private final SxpMapperReactor sxpMapperReactor;
-    private final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> templateCachedDao;
-    private final ReadableAsyncByKey<Sgt, MasterDatabaseBinding> masterDBBindingDao;
-    private final DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao;
-
-    public EPPolicyTemplateListenerImpl(final DataBroker dataBroker,
-                                        final SxpMapperReactor sxpMapperReactor,
-                                        final SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> templateCachedDao,
-                                        final ReadableAsyncByKey<Sgt, MasterDatabaseBinding> masterDBBindingDao,
-                                        final DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao) {
-        this.sxpMapperReactor = Preconditions.checkNotNull(sxpMapperReactor);
-        this.templateCachedDao = Preconditions.checkNotNull(templateCachedDao);
-        this.masterDBBindingDao = Preconditions.checkNotNull(masterDBBindingDao);
-        this.epForwardingTemplateDao = Preconditions.checkNotNull(epForwardingTemplateDao);
-        templatePath = EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH.child(EndpointPolicyTemplateBySgt.class);
-
-        final DataTreeIdentifier<EndpointPolicyTemplateBySgt> dataTreeIdentifier = new DataTreeIdentifier<>(
-                LogicalDatastoreType.CONFIGURATION, templatePath);
-        listenerRegistration = dataBroker.registerDataTreeChangeListener(dataTreeIdentifier, this);
-        LOG.debug("started listening to {}", templatePath);
-    }
-
-    @Override
-    public void onDataTreeChanged(@Nonnull final Collection<DataTreeModification<EndpointPolicyTemplateBySgt>> collection) {
-        for (DataTreeModification<EndpointPolicyTemplateBySgt> change : collection) {
-            LOG.trace("received modification: {} -> {}", change.getRootPath(), change.getRootNode().getModificationType());
-
-            // update cached dao
-            final InstanceIdentifier<EndpointPolicyTemplateBySgt> changePath = change.getRootPath().getRootIdentifier();
-            final Sgt changeKey = changePath.firstKeyOf(EndpointPolicyTemplateBySgt.class).getSgt();
-            SxpListenerUtil.updateCachedDao(templateCachedDao, changeKey, change);
-
-            final EndpointPolicyTemplateBySgt epPolicyTemplate = change.getRootNode().getDataAfter();
-            processWithEPTemplates(epPolicyTemplate);
-        }
-    }
-
-    private void processWithEPTemplates(final EndpointPolicyTemplateBySgt epPolicyTemplate) {
-        final ListenableFuture<Collection<MasterDatabaseBinding>> sxpMasterDbItemsRead =
-                masterDBBindingDao.readBy(epPolicyTemplate.getSgt());
-
-        // find all available epForwardingTemplates and pair those to sxpMasterDBBinding
-        final ListenableFuture<List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>> epForwardingTemplatesRead =
-                Futures.transform(sxpMasterDbItemsRead, createReadAndPairTemplateToBindingFunction(epPolicyTemplate));
-
-        // invoke sxpMapperReactor.process for every valid combination of sxpMasterDBBinding, epPolicyTemplate, epForwardingTemplate
-        final ListenableFuture<List<RpcResult<Void>>> rpcResult =
-                Futures.transform(epForwardingTemplatesRead, createProcessAllFunction(epPolicyTemplate));
-
-        Futures.addCallback(rpcResult, RPC_RESULT_FUTURE_CALLBACK);
-    }
-
-    private AsyncFunction<List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>, List<RpcResult<Void>>>
-    createProcessAllFunction(final EndpointPolicyTemplateBySgt epPolicyTemplate) {
-        return new AsyncFunction<List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>, List<RpcResult<Void>>>() {
-            @Override
-            public ListenableFuture<List<RpcResult<Void>>>
-            apply(final List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>> input) throws Exception {
-                final ListenableFuture<List<RpcResult<Void>>> result;
-                if (input == null || input.isEmpty()) {
-                    LOG.debug("no epForwardingTemplate available for sgt: {}", epPolicyTemplate.getSgt());
-                    result = Futures.immediateFuture(Collections.singletonList(
-                            RpcResultBuilder.<Void>failed()
-                                    .withError(RpcError.ErrorType.APPLICATION,
-                                            "no epForwardingTemplate available for sgt " + epPolicyTemplate.getSgt())
-                                    .build()));
-                } else {
-                    LOG.trace("processing epPolicyTemplate event for sgt: {}", epPolicyTemplate.getSgt());
-                    List<ListenableFuture<RpcResult<Void>>> allResults = new ArrayList<>(input.size());
-                    for (Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet> pair : input) {
-                        final MasterDatabaseBinding sxpMasterDBBinding = pair.getLeft();
-                        final EndpointForwardingTemplateBySubnet epForwardingTemplate = pair.getRight();
-                        if (epForwardingTemplate != null) {
-                            LOG.trace("processing epPolicyTemplate event with resolved sxpMasterDb entry and " +
-                                            "epForwardingTemplate for sgt/ip-prefix: {}/{}",
-                                    sxpMasterDBBinding.getSecurityGroupTag(), sxpMasterDBBinding.getImplementedInterface());
-                            allResults.add(sxpMapperReactor.processTemplatesAndSxpMasterDB(
-                                    epPolicyTemplate, epForwardingTemplate, sxpMasterDBBinding));
-                        }
-                    }
-                    result = Futures.successfulAsList(allResults);
-                }
-
-                return result;
-            }
-};
-    }
-
-    private AsyncFunction<Collection<MasterDatabaseBinding>, List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>>
-    createReadAndPairTemplateToBindingFunction(final EndpointPolicyTemplateBySgt epPolicyTemplate) {
-        return new AsyncFunction<Collection<MasterDatabaseBinding>, List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>>() {
-            @Override
-            public ListenableFuture<List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>>
-            apply(final Collection<MasterDatabaseBinding> input) throws Exception {
-                final ListenableFuture<List<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>> result;
-                if (input == null || input.isEmpty()) {
-                    LOG.debug("no sxpMasterDB entry available for sgt: {}", epPolicyTemplate.getSgt());
-                    result = Futures.immediateFuture(Collections.emptyList());
-                } else {
-                    LOG.trace("processing sxpMasterDB entries for sgt: {}", epPolicyTemplate.getSgt());
-                    List<ListenableFuture<Pair<MasterDatabaseBinding, EndpointForwardingTemplateBySubnet>>> allResults =
-                            new ArrayList<>(input.size());
-                    for (MasterDatabaseBinding masterDBItem : input) {
-                        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> epForwardingTemplateRead =
-                                epForwardingTemplateDao.read(masterDBItem.getIpPrefix());
-                        allResults.add(EPTemplateUtil.wrapToPair(masterDBItem, epForwardingTemplateRead));
-                    }
-                    result = Futures.successfulAsList(allResults);
-                }
-
-                return result;
-            }
-        };
-    }
-
-    @Override
-    public void close() throws Exception {
-        LOG.debug("closing listener registration to {}", templatePath);
-        listenerRegistration.close();
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImpl.java
deleted file mode 100644 (file)
index c533143..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import java.util.Collection;
-
-import javax.annotation.Nonnull;
-
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.MasterDatabaseBindingListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.L3EPServiceUtil;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.SxpListenerUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpNodeIdentity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.SxpDomains;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.sxp.domains.SxpDomain;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.sxp.databases.fields.MasterDatabase;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcError;
-import org.opendaylight.yangtools.yang.common.RpcResult;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * listens to sxp master database and propagates change events for further processing
- */
-public class MasterDatabaseBindingListenerImpl implements MasterDatabaseBindingListener {
-
-    private static final Logger LOG = LoggerFactory.getLogger(MasterDatabaseBindingListenerImpl.class);
-
-    private static final FutureCallback<RpcResult<Void>> RPC_POLICY_RESULT_FUTURE_CALLBACK =
-            L3EPServiceUtil.createFailureLoggingCallback("failed to read epPolicyTemplate");
-
-    public static final FutureCallback<RpcResult<Void>> RPC_FW_RESULT_FUTURE_CALLBACK =
-            L3EPServiceUtil.createFailureLoggingCallback("failed to read epForwardingTemplate");
-
-    private final SxpMapperReactor sxpMapperReactor;
-    private final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> masterDBBindingDaoCached;
-    private final DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
-    private final DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao;
-
-    private final ListenerRegistration<? extends ClusteredDataTreeChangeListener> listenerRegistration;
-    private final InstanceIdentifier<MasterDatabaseBinding> sxpDbPath;
-
-    public MasterDatabaseBindingListenerImpl(final DataBroker dataBroker,
-                                             final SxpMapperReactor sxpMapperReactor,
-                                             final SimpleCachedDao<IpPrefix, MasterDatabaseBinding> masterDBBindingDaoCached,
-                                             final DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao,
-                                             final DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao) {
-        this.sxpMapperReactor = Preconditions.checkNotNull(sxpMapperReactor);
-        this.masterDBBindingDaoCached = Preconditions.checkNotNull(masterDBBindingDaoCached);
-        this.epPolicyTemplateDao = Preconditions.checkNotNull(epPolicyTemplateDao);
-        this.epForwardingTemplateDao = Preconditions.checkNotNull(epForwardingTemplateDao);
-        sxpDbPath = MasterDatabaseBindingListener.SXP_TOPOLOGY_PATH
-                .child(Node.class)
-                .augmentation(SxpNodeIdentity.class)
-                .child(SxpDomains.class)
-                .child(SxpDomain.class)
-                .child(MasterDatabase.class)
-                .child(MasterDatabaseBinding.class);
-
-        final DataTreeIdentifier<MasterDatabaseBinding> dataTreeIdentifier = new DataTreeIdentifier<>(
-                LogicalDatastoreType.OPERATIONAL, sxpDbPath);
-        listenerRegistration = dataBroker.registerDataTreeChangeListener(dataTreeIdentifier, this);
-        LOG.debug("started listening to {}", sxpDbPath);
-    }
-
-    @Override
-    public void onDataTreeChanged(@Nonnull final Collection<DataTreeModification<MasterDatabaseBinding>> collection) {
-        for (DataTreeModification<MasterDatabaseBinding> change : collection) {
-            LOG.trace("received modification: {} -> {}", change.getRootPath(), change.getRootNode().getModificationType());
-            // update cached dao
-            final MasterDatabaseBinding sxpMasterDBItem = change.getRootNode().getDataAfter();
-            if (sxpMasterDBItem == null) {
-                //TODO: cover sgt-ip mapping removal
-                LOG.debug("ip-sgt mapping was removed - NOOP: {}",
-                        change.getRootPath().getRootIdentifier().firstKeyOf(MasterDatabaseBinding.class));
-            } else {
-                final IpPrefix ipPrefixKey = sxpMasterDBItem.getIpPrefix();
-                SxpListenerUtil.updateCachedDao(masterDBBindingDaoCached, ipPrefixKey, change);
-                processWithEPTemplates(sxpMasterDBItem);
-            }
-        }
-    }
-
-    private void processWithEPTemplates(final MasterDatabaseBinding sxpMasterDBItem) {
-        final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> epPolicyTemplateFuture =
-                epPolicyTemplateDao.read(sxpMasterDBItem.getSecurityGroupTag());
-
-        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> epForwardingTemplateFuture =
-                epForwardingTemplateDao.read(sxpMasterDBItem.getIpPrefix());
-
-        final ListenableFuture<EPTemplateUtil.OptionalMutablePair<EndpointPolicyTemplateBySgt, EndpointForwardingTemplateBySubnet>> compositeRead
-                = EPTemplateUtil.compositeRead(epPolicyTemplateFuture, epForwardingTemplateFuture);
-
-        final ListenableFuture<RpcResult<Void>> rpcResult = Futures.transform(compositeRead,
-                new AsyncFunction<EPTemplateUtil.OptionalMutablePair<EndpointPolicyTemplateBySgt, EndpointForwardingTemplateBySubnet>, RpcResult<Void>>() {
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final EPTemplateUtil.OptionalMutablePair<EndpointPolicyTemplateBySgt, EndpointForwardingTemplateBySubnet> input) throws Exception {
-                        final ListenableFuture<RpcResult<Void>> result;
-                        if (input == null) {
-                            LOG.debug("no ep*Templates available for sgt/ip-prefix: {}/{}",
-                                    sxpMasterDBItem.getSecurityGroupTag(),
-                                    sxpMasterDBItem.getIpPrefix());
-                            result = RpcResultBuilder.<Void>failed()
-                                    .withError(RpcError.ErrorType.APPLICATION,
-                                            "no ep-templates available for" + sxpMasterDBItem)
-                                    .buildFuture();
-
-                        } else if (!input.getLeft().isPresent()) {
-                            LOG.debug("no epPolicyTemplate available for sgt: {}", sxpMasterDBItem.getSecurityGroupTag());
-                            result = RpcResultBuilder.<Void>failed()
-                                    .withError(RpcError.ErrorType.APPLICATION,
-                                            "no epPolicyTemplate available for " + sxpMasterDBItem)
-                                    .buildFuture();
-                        } else if (!input.getRight().isPresent()) {
-                            LOG.debug("no epForwardingTemplate available for ip-prefix: {}",
-                                    sxpMasterDBItem.getIpPrefix());
-                            result = RpcResultBuilder.<Void>failed()
-                                    .withError(RpcError.ErrorType.APPLICATION,
-                                            "no epForwardingTemplate available for " + sxpMasterDBItem)
-                                    .buildFuture();
-                        } else {
-                            LOG.trace("processing sxpMasterDB event and epPolicyTemplate for sgt/ip-prefix: {}/{}",
-                                    sxpMasterDBItem.getSecurityGroupTag(),
-                                    sxpMasterDBItem.getIpPrefix());
-                            result = sxpMapperReactor.processTemplatesAndSxpMasterDB(input.getLeft().get(),
-                                    input.getRight().get(), sxpMasterDBItem);
-                }
-                return result;
-            }
-        });
-
-        Futures.addCallback(rpcResult, RPC_POLICY_RESULT_FUTURE_CALLBACK);
-    }
-
-    @Override
-    public void close() throws Exception {
-        LOG.debug("closing listener registration to {}", sxpDbPath);
-        listenerRegistration.close();
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtil.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtil.java
deleted file mode 100644 (file)
index c4a7868..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import com.google.common.base.Function;
-import com.google.common.base.MoreObjects;
-import com.google.common.base.Optional;
-import com.google.common.collect.Ordering;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.ArrayList;
-import java.util.List;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.apache.commons.lang3.tuple.MutablePair;
-import org.apache.commons.lang3.tuple.Pair;
-import org.apache.commons.net.util.SubnetUtils;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-
-/**
- * Purpose: util methods for {@link EndpointForwardingTemplateBySubnet} and {@link EndpointPolicyTemplateBySgt}
- */
-public final class EPTemplateUtil {
-
-    public static final String FULL_IPV4_MASK_SUFFIX = "/32";
-    private static final Comparable EMPTY_COMPARABLE = "";
-
-    private EPTemplateUtil() {
-        throw new IllegalAccessError("constructing util class");
-    }
-
-    public static boolean isPlain(final IpPrefix key) {
-        return key.getIpv4Prefix().getValue().endsWith(FULL_IPV4_MASK_SUFFIX);
-    }
-
-    public static SubnetInfoKeyDecorator buildSubnetInfoKey(@Nonnull final IpPrefix value) {
-        return new SubnetInfoKeyDecorator(new SubnetUtils(value.getIpv4Prefix().getValue()).getInfo());
-    }
-
-    public static <L, R> ListenableFuture<OptionalMutablePair<L, R>> compositeRead(
-            final ListenableFuture<Optional<L>> leftRead, final ListenableFuture<Optional<R>> rightRead) {
-
-        final OptionalMutablePair<L, R> compositeResult = new OptionalMutablePair<>();
-        final List<ListenableFuture<?>> results = new ArrayList<>(2);
-
-        results.add(Futures.transform(leftRead, new Function<Optional<L>, OptionalMutablePair<L, R>>() {
-            @Nullable
-            @Override
-            public OptionalMutablePair<L, R> apply(@Nullable final Optional<L> input) {
-                compositeResult.setLeft(input);
-                return compositeResult;
-            }
-        }));
-
-        results.add(Futures.transform(rightRead, new Function<Optional<R>, OptionalMutablePair<L, R>>() {
-            @Nullable
-            @Override
-            public OptionalMutablePair<L, R> apply(@Nullable final Optional<R> input) {
-                compositeResult.setRight(input);
-                return compositeResult;
-            }
-        }));
-
-        return Futures.transform(Futures.successfulAsList(results),
-                new Function<List<?>, OptionalMutablePair<L, R>>() {
-                    @Nullable
-                    @Override
-                    public OptionalMutablePair<L, R> apply(@Nullable final List<?> input) {
-                        return compositeResult;
-                    }
-                });
-    }
-
-    public static <K, V> ListenableFuture<Pair<K, V>> wrapToPair(
-            final K keyItem,
-            final ListenableFuture<Optional<V>> valueFromRead) {
-        return Futures.transform(valueFromRead, new Function<Optional<V>, Pair<K, V>>() {
-            @Nullable
-            @Override
-            public Pair<K, V> apply(@Nullable final Optional<V> input) {
-                final MutablePair<K, V> pair = new MutablePair<>(keyItem, null);
-                if (input != null && input.isPresent()) {
-                    pair.setRight(input.get());
-                }
-                return pair;
-            }
-        });
-    }
-
-    public static <V> ListenableFuture<Optional<V>> wrapToOptional(final ListenableFuture<V> value) {
-        return Futures.transform(value, new Function<V, Optional<V>>() {
-            @Nullable
-            @Override
-            public Optional<V> apply(@Nullable final V input) {
-                return Optional.fromNullable(input);
-            }
-        });
-    }
-
-    public static Ordering<EndpointGroupId> createEndpointGroupIdOrdering() {
-        return Ordering.natural().onResultOf(new Function<EndpointGroupId, Comparable>() {
-            @Nullable
-            @Override
-            public Comparable apply(@Nullable final EndpointGroupId input) {
-                if (input == null) {
-                    return EMPTY_COMPARABLE;
-                }
-                return MoreObjects.firstNonNull(input.getValue(), EMPTY_COMPARABLE);
-            }
-        });
-    }
-
-    public static Ordering<ConditionName> createConditionNameOrdering() {
-        return Ordering.natural().onResultOf(new Function<ConditionName, Comparable>() {
-            @Nullable
-            @Override
-            public Comparable apply(@Nullable final ConditionName input) {
-                if (input == null) {
-                    return EMPTY_COMPARABLE;
-                }
-                return MoreObjects.firstNonNull(input.getValue(), EMPTY_COMPARABLE);
-            }
-        });
-    }
-
-    public static class OptionalMutablePair<L, R> extends MutablePair<Optional<L>, Optional<R>> {
-        public OptionalMutablePair() {
-            super(Optional.absent(), Optional.absent());
-        }
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandDirectImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandDirectImpl.java
deleted file mode 100644 (file)
index 52a4eb5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import javax.annotation.Nonnull;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.IpPrefixEqualCommand;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-
-/**
- * Purpose: provide simple equal using direct invocation of {@link Object#equals(Object)} method
- */
-public class IpPrefixEqualCommandDirectImpl implements IpPrefixEqualCommand {
-    private final IpPrefix myValue;
-
-    public IpPrefixEqualCommandDirectImpl(@Nonnull final IpPrefix myValue) {
-        this.myValue = myValue;
-    }
-
-    @Override
-    public boolean isEqualTo(final IpPrefix value) {
-        return myValue.equals(value);
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandSubnetImpl.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/IpPrefixEqualCommandSubnetImpl.java
deleted file mode 100644 (file)
index a7475d6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import javax.annotation.Nonnull;
-import org.apache.commons.net.util.SubnetUtils;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.IpPrefixEqualCommand;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-
-/**
- * Purpose: provide equal using {@link SubnetUtils.SubnetInfo#isInRange(String)} method
- */
-public class IpPrefixEqualCommandSubnetImpl implements IpPrefixEqualCommand {
-    private final SubnetUtils.SubnetInfo myValue;
-
-    public IpPrefixEqualCommandSubnetImpl(@Nonnull final IpPrefix myValue) {
-        this.myValue = new SubnetUtils(stripToCidr(myValue)).getInfo();
-    }
-
-    @Override
-    public boolean isEqualTo(final IpPrefix value) {
-        return myValue.isInRange(stripToCidr(value));
-    }
-
-    private String stripToCidr(final IpPrefix value) {
-        return value.getIpv4Prefix().getValue();
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/L3EPServiceUtil.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/L3EPServiceUtil.java
deleted file mode 100644 (file)
index 622f747..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import com.google.common.util.concurrent.FutureCallback;
-import javax.annotation.Nullable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Purpose: TODO!
- */
-public final class L3EPServiceUtil {
-
-    private static final Logger LOG = LoggerFactory.getLogger(L3EPServiceUtil.class);
-
-    private L3EPServiceUtil() {
-        throw new IllegalAccessError("constructing util class");
-    }
-
-    public static <O> FutureCallback<O> createFailureLoggingCallback(final String failMessage) {
-        return new FutureCallback<O>() {
-            @Override
-            public void onSuccess(@Nullable final O result) {
-                // NOOP
-            }
-
-            @Override
-            public void onFailure(final Throwable t) {
-                LOG.warn(failMessage, t);
-            }
-        };
-    }
-
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SubnetInfoKeyDecorator.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SubnetInfoKeyDecorator.java
deleted file mode 100644 (file)
index 3fae07e..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import org.apache.commons.net.util.SubnetUtils;
-
-/**
- * Purpose: wraps {@link SubnetUtils.SubnetInfo} and overwrites hashcode and equals methods in order to
- * be applicable as map key
- *
- */
-public class SubnetInfoKeyDecorator {
-
-    private final SubnetUtils.SubnetInfo delegate;
-
-    public SubnetInfoKeyDecorator(final SubnetUtils.SubnetInfo delegate) {
-        this.delegate = delegate;
-    }
-
-    public SubnetUtils.SubnetInfo getDelegate() {
-        return delegate;
-    }
-
-    @Override
-    public boolean equals(final Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-
-        final SubnetInfoKeyDecorator that = (SubnetInfoKeyDecorator) o;
-
-        return delegate.getCidrSignature().equals(that.delegate.getCidrSignature());
-
-    }
-
-    @Override
-    public int hashCode() {
-        return delegate.getCidrSignature().hashCode();
-    }
-}
diff --git a/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SxpListenerUtil.java b/sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/SxpListenerUtil.java
deleted file mode 100644 (file)
index de874fc..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.FutureCallback;
-import javax.annotation.Nullable;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-
-/**
- * Purpose: provide general logic used by listeners
- */
-public final class SxpListenerUtil {
-
-    private SxpListenerUtil() {
-        throw new IllegalAccessError("constructing util class");
-    }
-
-
-    public static <K, V extends DataObject> void updateCachedDao(final SimpleCachedDao<K, V> valueCachedDao,
-                                                                 final K key,
-                                                                 final DataTreeModification<V> change) {
-        final V value = change.getRootNode().getDataAfter();
-        valueCachedDao.update(key, value);
-    }
-
-    public static FutureCallback<Optional<?>> createTxCloseCallback(final ReadOnlyTransaction rTx) {
-        return new FutureCallback<Optional<?>>() {
-            @Override
-            public void onSuccess(@Nullable final Optional<?> result) {
-                rTx.close();
-            }
-
-            @Override
-            public void onFailure(final Throwable t) {
-                rTx.close();
-            }
-        };
-    }
-}
diff --git a/sxp-mapper/src/main/resources/org/opendaylight/blueprint/sxp-mapper.xml b/sxp-mapper/src/main/resources/org/opendaylight/blueprint/sxp-mapper.xml
deleted file mode 100644 (file)
index 96e28a8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
-           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
-           odl:use-default-for-reference-types="true">
-
-    <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"/>
-    <reference id="domainSpecificRegistry" interface="org.opendaylight.groupbasedpolicy.api.DomainSpecificRegistry"/>
-    <reference id="clusterSingletonService" interface="org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider"/>
-    <odl:rpc-service id="baseEndpointService" interface="org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService"/>
-
-    <bean id="sxpMapper" class="org.opendaylight.controller.config.yang.config.groupbasedpolicy.sxp_mapper.SxpMapperProviderInstance"
-        init-method="initialize" destroy-method="close">
-        <argument ref="dataBroker"/>
-        <argument ref="baseEndpointService"/>
-        <argument ref="domainSpecificRegistry"/>
-        <argument ref="clusterSingletonService"/>
-    </bean>
-</blueprint>
\ No newline at end of file
diff --git a/sxp-mapper/src/main/yang/sxp-mapper-cfg.yang b/sxp-mapper/src/main/yang/sxp-mapper-cfg.yang
deleted file mode 100644 (file)
index f32ac3f..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2016 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
- */
-
-module sxp-mapper-cfg {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:sxp-mapper";
-    prefix "sxpm-cfg";
-
-    import config { prefix config; revision-date 2013-04-05; }
-    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-    import groupbasedpolicy-cfg {prefix gbpcfg; revision-date 2015-11-06; }
-
-    description
-        "This module contains the base YANG definitions for
-          sxf-mapper impl configuration.";
-
-    revision "2016-03-02" {
-        description
-            "Initial revision.";
-    }
-
-    identity sxp-mapper-impl {
-        description
-            "sxp-mapper impl module";
-
-        base "config:module-type";
-        config:java-name-prefix SxpMapperProvider;
-    }
-
-    // Augments the 'configuration' choice node under modules/module.
-    augment "/config:modules/config:module/config:configuration" {
-        case sxp-mapper-impl {
-            when "/config:modules/config:module/config:type = 'sxp-mapper-impl'";
-        }
-    }
-}
diff --git a/sxp-mapper/src/main/yang/sxp-mapper-model.yang b/sxp-mapper/src/main/yang/sxp-mapper-model.yang
deleted file mode 100644 (file)
index ec06737..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2016 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
- */
-
-module sxp-mapper-model {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:sxp-mapper:model";
-    prefix "sxpm-model";
-
-    import sxp-database { prefix sxp-database; revision-date 2016-03-08; }
-    import gbp-common { prefix gbp-common; revision-date 2014-04-21; }
-    import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
-    import forwarding { prefix forwarding; revision-date 2016-04-27; }
-    import base-endpoint { prefix base-edpoint; revision-date 2016-04-27; }
-    import yang-ext { prefix ext; revision-date 2013-07-09; }
-    import renderer { prefix renderer; revision-date 2015-11-03; }
-
-    description
-        "This module contains the YANG definitions for
-          sxf-mapper implementation.";
-
-    revision "2016-03-02" {
-        description
-            "Initial revision.";
-    }
-
-    container sxp-mapper {
-        description "root point for endpoint templates";
-
-        list endpoint-policy-template-by-sgt {
-            key sgt;
-            leaf sgt {
-                type sxp-database:sgt;
-                description
-                    "SGT for which this endpoint template is used";
-            }
-            leaf tenant {
-               type gbp-common:tenant-id;
-               mandatory true;
-               description
-                    "The tenant of this endpoint";
-            }
-            leaf-list endpoint-groups {
-               type gbp-common:endpoint-group-id;
-               min-elements 1;
-               description
-                    "The groups associated with this endpoint";
-            }
-            leaf-list conditions {
-               type gbp-common:condition-name;
-               description
-                    "The conditions associated with this endpoint";
-            }
-        }
-
-        list endpoint-forwarding-template-by-subnet {
-            description "If the IP from IP/SGT binding is inside of ip-prefix then
-                the endpoint will be in the l3-context.";
-            key ip-prefix;
-            leaf ip-prefix {
-                type inet:ip-prefix;
-                description
-                    "The IP prefix where an endpoint can be connected.";
-            }
-            leaf l3-context {
-               type gbp-common:context-id;
-               mandatory true;
-               description
-                    "The context for the endpoint's layer 3 address";
-            }
-            container network-containment {
-                description
-                            "The network domain associated with this endpoint's fowarding
-                            context.";
-                uses forwarding:network-domain-key;
-            }
-        }
-    }
-
-    grouping sxp-sgt {
-        description "SGT leaf dedicated for endpoint-rpc, endpoint container and renderer configuration
-            (attach by augmentation)";
-        leaf sgt {
-            type sxp-database:sgt;
-        }
-    }
-
-    augment "renderer:renderers/renderer:renderer/renderer:renderer-policy/renderer:configuration/renderer:endpoints/renderer:address-endpoint-with-location" {
-        ext:augment-identifier "address-endpoint-with-location-aug";
-        uses sxp-sgt;
-    }
-}
diff --git a/sxp-mapper/src/main/yang/sxp-mapper.yang b/sxp-mapper/src/main/yang/sxp-mapper.yang
deleted file mode 100644 (file)
index ff9af26..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (c) 2016 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
- */
-
-module sxp-mapper {
-    yang-version 1;
-    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:sxp-mapper:service";
-    prefix "sxpm";
-
-    import sxp-database { prefix sxp-database; revision-date 2016-03-08; }
-    import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
-
-    description
-        "This module contains the YANG definitions for
-          sxf-mapper implementation.";
-
-    revision "2016-03-07" {
-        description
-            "Initial revision.";
-    }
-
-
-    rpc send-ip-sgt-binding {
-        description "Provides sending IP/SGT binding to peers";
-        input {
-            list ip-sgt-binding {
-                min-elements 1;
-                key "ip-prefix sgt";
-                leaf ip-prefix {
-                    type inet:ip-prefix;
-                }
-                leaf sgt {
-                    type sxp-database:sgt;
-                }
-            }
-            leaf-list peers {
-                description "If empty then binding will be broadcasted.";
-                type inet:ip-address;
-            }
-        }
-        output {
-            leaf error {
-                type string;
-            }
-        }
-    }
-
-    rpc remove-ip-sgt-binding {
-        description "Removes given IP/SGT bindings on peers.";
-        input {
-            leaf-list ip-prefix {
-                type inet:ip-prefix;
-            }
-            leaf-list peers {
-                description "If empty then the binding will be removed from Master DB.";
-                type inet:ip-address;
-            }
-        }
-        output {
-            leaf error {
-                type string;
-            }
-        }
-    }
-}
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpEndpointAugmentorImplTest.java
deleted file mode 100644 (file)
index 9e5b33d..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EpPolicyTemplateValueKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao.EpPolicyTemplateValueKeyFactory;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpointBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpointBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointRegBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointReg;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointRegBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.AddressEndpointWithLocationAug;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yangtools.yang.binding.Augmentation;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-
-/**
- * Test for {@link SxpEndpointAugmentorImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class SxpEndpointAugmentorImplTest {
-
-    @Mock
-    private ReadableByKey<EpPolicyTemplateValueKey, EndpointPolicyTemplateBySgt> epPolicyDao;
-    @Spy
-    private EpPolicyTemplateValueKeyFactory keyFactory = new EpPolicyTemplateValueKeyFactory(
-            EPTemplateUtil.createEndpointGroupIdOrdering(), EPTemplateUtil.createConditionNameOrdering());
-    @Captor
-    private ArgumentCaptor<EpPolicyTemplateValueKey> keyCapt;
-
-    private SxpEndpointAugmentorImpl augmetor;
-
-    @Before
-    public void setUp() throws Exception {
-        augmetor = new SxpEndpointAugmentorImpl(epPolicyDao, keyFactory);
-    }
-
-    @Test
-    public void testBuildAddressEndpointWithLocationAugmentation() throws Exception {
-        final TenantId tenantId = new TenantId("tn1");
-        final AddressEndpoint endpoint = new AddressEndpointBuilder()
-                .setTenant(tenantId)
-                .setCondition(buildConditions(new String[]{"cn2", "cn1"}))
-                .setEndpointGroup(buildEndpointGroupIds(new String[]{"epg2", "epg1"}))
-                .build();
-
-        Mockito.doCallRealMethod().when(keyFactory).sortValueKeyLists(Matchers.<EndpointPolicyTemplateBySgt>any());
-        final List<ConditionName> conditions = buildConditions(new String[]{"cn1", "cn2"});
-        final List<EndpointGroupId> endpointGroupIds = buildEndpointGroupIds(new String[]{"epg1", "epg2"});
-        final EndpointPolicyTemplateBySgt epPolicyTemplate = new EndpointPolicyTemplateBySgtBuilder()
-                .setTenant(tenantId)
-                .setEndpointGroups(endpointGroupIds)
-                .setConditions(conditions)
-                .setSgt(new Sgt(42))
-                .build();
-
-        Mockito.when(epPolicyDao.readBy(keyCapt.capture())).thenReturn(Collections.singletonList(epPolicyTemplate));
-
-        final Map.Entry<Class<? extends Augmentation<AddressEndpointWithLocation>>, Augmentation<AddressEndpointWithLocation>>
-                augmentationEntry = augmetor.buildAddressEndpointWithLocationAugmentation(endpoint);
-
-        Assert.assertEquals(AddressEndpointWithLocationAug.class, augmentationEntry.getKey());
-        Assert.assertTrue(DataObject.class.isAssignableFrom(augmentationEntry.getValue().getClass()));
-        Assert.assertEquals(AddressEndpointWithLocationAug.class, ((DataObject) augmentationEntry.getValue()).getImplementedInterface());
-        Assert.assertEquals(42, ((AddressEndpointWithLocationAug) augmentationEntry.getValue()).getSgt().getValue().intValue());
-
-        final EpPolicyTemplateValueKey keyValue = keyCapt.getValue();
-        Assert.assertEquals(tenantId, keyValue.getTenantId());
-        Assert.assertEquals(endpointGroupIds, keyValue.getEpgId());
-        Assert.assertEquals(conditions, keyValue.getConditionName());
-    }
-
-    private static List<EndpointGroupId> buildEndpointGroupIds(final String[] names) {
-        final List<EndpointGroupId> endpointGroupIds = new ArrayList<>();
-        for (String epgId : names) {
-            endpointGroupIds.add(new EndpointGroupId(epgId));
-        }
-        return endpointGroupIds;
-    }
-
-    private static List<ConditionName> buildConditions(final String[] names) {
-        final List<ConditionName> conditions = new ArrayList<>();
-        for (String condition : names) {
-            conditions.add(new ConditionName(condition));
-        }
-        return conditions;
-    }
-
-    @Test
-    public void testBuildAddressEndpointAugmentation() throws Exception {
-        final AddressEndpointReg endpoint = new AddressEndpointRegBuilder().build();
-        Assert.assertNull(augmetor.buildAddressEndpointAugmentation(endpoint));
-    }
-
-    @Test
-    public void testBuildContainmentEndpointAugmentation() throws Exception {
-        final ContainmentEndpointReg endpoint = new ContainmentEndpointRegBuilder().build();
-        Assert.assertNull(augmetor.buildContainmentEndpointAugmentation(endpoint));
-    }
-
-    @Test
-    public void testBuildContainmentEndpointWithLocationAugmentation() throws Exception {
-        final ContainmentEndpoint endpoint = new ContainmentEndpointBuilder().build();
-        Assert.assertNull(augmetor.buildContainmentEndpointWithLocationAugmentation(endpoint));
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/SxpMapperReactorImplTest.java
deleted file mode 100644 (file)
index 19bd0b4..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.endpoint.forwarding.template.by.subnet.NetworkContainment;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
-
-/**
- * Test for {@link SxpMapperReactorImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class SxpMapperReactorImplTest {
-
-    private static final IpPrefix IP_PREFIX = new IpPrefix(new Ipv4Prefix("10.11.12.1/32"));
-
-    @Mock
-    private BaseEndpointService l3EndpointService;
-    @Mock
-    private EndpointPolicyTemplateBySgt epPolicyTemplate;
-    @Mock
-    private MasterDatabaseBinding masterDBBinding;
-    @Mock
-    private EndpointForwardingTemplateBySubnet epForwardingTemplate;
-    @Mock
-    private NetworkContainment networkContainment;
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private ReadOnlyTransaction rTx;
-
-    private SxpMapperReactorImpl sxpMapperReactor;
-
-    @Before
-    public void setUp() throws Exception {
-        sxpMapperReactor = new SxpMapperReactorImpl(l3EndpointService, dataBroker);
-        Mockito.when(l3EndpointService.registerEndpoint(Matchers.<RegisterEndpointInput>any()))
-                .thenReturn(RpcResultBuilder.<Void>success().buildFuture());
-        Mockito.when(masterDBBinding.getIpPrefix()).thenReturn(IP_PREFIX);
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.same(LogicalDatastoreType.OPERATIONAL),
-                Matchers.<InstanceIdentifier<AddressEndpoint>>any())).thenReturn(Futures.immediateCheckedFuture(Optional.absent()));
-        Mockito.when(epForwardingTemplate.getNetworkContainment()).thenReturn(networkContainment);
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        Mockito.verifyNoMoreInteractions(l3EndpointService);
-    }
-
-    @Test
-    public void testProcessTemplatesAndSxpMasterDB() throws Exception {
-        Mockito.when(epForwardingTemplate.getIpPrefix()).thenReturn(IP_PREFIX);
-        sxpMapperReactor.processTemplatesAndSxpMasterDB(epPolicyTemplate, epForwardingTemplate, masterDBBinding);
-        Mockito.verify(l3EndpointService).registerEndpoint(Matchers.<RegisterEndpointInput>any());
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPForwardingTemplateDaoImplTest.java
deleted file mode 100644 (file)
index 22b09a7..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapper;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapperBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Test for {@link EPForwardingTemplateDaoImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class EPForwardingTemplateDaoImplTest {
-
-    public static final InstanceIdentifier<SxpMapper> SXP_MAPPER_PATH = InstanceIdentifier.create(SxpMapper.class);
-    private static final IpPrefix KEY_1 = new IpPrefix(new Ipv4Prefix("1.2.3.4/32"));
-    private final SxpMapper SXP_MAPPER_VALUE;
-    private final EndpointForwardingTemplateBySubnet EP_FW_TEMPLATE_VALUE;
-
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> cachedDao;
-    @Mock
-    private ReadOnlyTransaction rTx;
-
-    private EPForwardingTemplateDaoImpl dao;
-
-    public EPForwardingTemplateDaoImplTest() {
-        EP_FW_TEMPLATE_VALUE = new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(KEY_1)
-                .build();
-        SXP_MAPPER_VALUE = new SxpMapperBuilder()
-                .setEndpointForwardingTemplateBySubnet(Lists.newArrayList(EP_FW_TEMPLATE_VALUE))
-                .build();
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        dao = new EPForwardingTemplateDaoImpl(dataBroker, cachedDao);
-    }
-
-    @Test
-    public void testRead_absent() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(Optional.<EndpointForwardingTemplateBySubnet>absent());
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<SxpMapper>>any())).thenReturn(
-                Futures.<Optional<SxpMapper>, ReadFailedException>immediateCheckedFuture(Optional.<SxpMapper>absent()));
-
-
-        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertFalse(read.get().isPresent());
-    }
-
-    @Test
-    public void testRead_presentCached() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(Optional.of(EP_FW_TEMPLATE_VALUE));
-
-        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getIpPrefix());
-    }
-
-    @Test
-    public void testRead_presentDS() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(
-                Optional.<EndpointForwardingTemplateBySubnet>absent(),
-                Optional.of(EP_FW_TEMPLATE_VALUE));
-        Mockito.when(cachedDao.isEmpty()).thenReturn(true, false);
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<SxpMapper>>any())).thenReturn(
-                Futures.<Optional<SxpMapper>, ReadFailedException>immediateCheckedFuture(Optional.of(SXP_MAPPER_VALUE)));
-
-        final ListenableFuture<Optional<EndpointForwardingTemplateBySubnet>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getIpPrefix());
-
-        final InOrder inOrder = Mockito.inOrder(cachedDao);
-        inOrder.verify(cachedDao).invalidateCache();
-        inOrder.verify(cachedDao).update(KEY_1, EP_FW_TEMPLATE_VALUE);
-        inOrder.verify(cachedDao).find(KEY_1);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    @Test
-    public void testBuildReadPath() throws Exception {
-        final InstanceIdentifier<SxpMapper> readPath = dao.buildReadPath(KEY_1);
-        Assert.assertEquals(SXP_MAPPER_PATH, readPath);
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/EPPolicyTemplateDaoImplTest.java
deleted file mode 100644 (file)
index 42a3a6c..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.Spy;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.impl.util.EPTemplateUtil;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ConditionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.TenantId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapper;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-
-/**
- * Test for {@link EPPolicyTemplateDaoImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class EPPolicyTemplateDaoImplTest {
-
-    private static final Sgt KEY_1 = new Sgt(1);
-    private final EndpointPolicyTemplateBySgt EP_POLICY_TEMPLATE_VALUE;
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> cachedDao;
-    @Mock
-    private ReadOnlyTransaction rTx;
-    @Spy
-    private EpPolicyTemplateValueKeyFactory keyFactory = new EpPolicyTemplateValueKeyFactory(
-            EPTemplateUtil.createEndpointGroupIdOrdering(), EPTemplateUtil.createConditionNameOrdering());
-    @Captor
-    ArgumentCaptor<Sgt> sgtCapt;
-    @Captor
-    ArgumentCaptor<EndpointPolicyTemplateBySgt> epPolicyTemplateCapt;
-
-    private EPPolicyTemplateDaoImpl dao;
-
-    public EPPolicyTemplateDaoImplTest() {
-        EP_POLICY_TEMPLATE_VALUE = new EndpointPolicyTemplateBySgtBuilder()
-                .setSgt(KEY_1)
-                .build();
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        dao = new EPPolicyTemplateDaoImpl(dataBroker, cachedDao, keyFactory);
-    }
-
-    @Test
-    public void testRead_absent() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<Sgt>any())).thenReturn(Optional.<EndpointPolicyTemplateBySgt>absent());
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<EndpointPolicyTemplateBySgt>>any())).thenReturn(
-                Futures.<Optional<EndpointPolicyTemplateBySgt>, ReadFailedException>immediateCheckedFuture(
-                        Optional.<EndpointPolicyTemplateBySgt>absent()));
-
-
-        final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertFalse(read.get().isPresent());
-    }
-
-    @Test
-    public void testRead_presentCached() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<Sgt>any())).thenReturn(Optional.of(EP_POLICY_TEMPLATE_VALUE));
-
-        final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getSgt());
-    }
-
-    @Test
-    public void testRead_presentDS() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<Sgt>any())).thenReturn(
-                Optional.<EndpointPolicyTemplateBySgt>absent());
-        Mockito.when(cachedDao.isEmpty()).thenReturn(true);
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<EndpointPolicyTemplateBySgt>>any())).thenReturn(
-                Futures.<Optional<EndpointPolicyTemplateBySgt>, ReadFailedException>immediateCheckedFuture(
-                        Optional.of(EP_POLICY_TEMPLATE_VALUE)));
-        Mockito.doCallRealMethod().when(keyFactory).sortValueKeyLists(Matchers.<EndpointPolicyTemplateBySgt>any());
-
-        final ListenableFuture<Optional<EndpointPolicyTemplateBySgt>> read = dao.read(KEY_1);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getSgt());
-
-        final InOrder inOrder = Mockito.inOrder(cachedDao);
-        inOrder.verify(cachedDao).update(KEY_1, EP_POLICY_TEMPLATE_VALUE);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    @Test
-    public void testBuildReadPath() throws Exception {
-        final KeyedInstanceIdentifier<EndpointPolicyTemplateBySgt, EndpointPolicyTemplateBySgtKey> expectedPath =
-                InstanceIdentifier.create(SxpMapper.class)
-                        .child(EndpointPolicyTemplateBySgt.class, new EndpointPolicyTemplateBySgtKey(KEY_1));
-
-        final InstanceIdentifier<EndpointPolicyTemplateBySgt> readPath = dao.buildReadPath(KEY_1);
-        Assert.assertEquals(expectedPath, readPath);
-    }
-
-    @Test
-    public void testReadBy_single() throws Exception {
-        final EpPolicyTemplateValueKey key = new EpPolicyTemplateValueKey(new TenantId("tn1"),
-                buildEndpointGroupIds(new String[]{"epg1", "epg2"}),
-                buildConditions(new String[]{"cn1", "cn2"}));
-
-        Mockito.doCallRealMethod().when(keyFactory).createKeyWithDefaultOrdering(Matchers.<EndpointPolicyTemplateBySgt>any());
-
-        Mockito.when(cachedDao.values()).thenReturn(Lists.newArrayList(
-                createEpPolicytemplate(new Sgt(1), new String[]{"cn2", "cn1"}, new String[]{"epg1", "epg2"}, "tn1"),
-                createEpPolicytemplate(new Sgt(2), new String[]{"cn1", "cn2"}, new String[]{"epg2", "epg1"}, "tn1"),
-                createEpPolicytemplate(new Sgt(3), new String[]{"cn2", "cn1"}, new String[]{"epg2", "epg1"}, "tn1"),
-                createEpPolicytemplate(new Sgt(4), new String[]{"cn1", "cn2"}, new String[]{"epg1", "epg2"}, "tn1")
-        ));
-
-        final Collection<EndpointPolicyTemplateBySgt> policyTemplates = dao.readBy(key);
-        Assert.assertEquals(1, policyTemplates.size());
-        Assert.assertEquals(4, Iterables.getFirst(policyTemplates, null).getSgt().getValue().intValue());
-    }
-
-    @Test
-    public void testRead_unsortedLists() throws Exception {
-        final EndpointPolicyTemplateBySgt epPolicytemplateUnsorted = createEpPolicytemplate(new Sgt(1),
-                new String[]{"cn2", "cn1"}, new String[]{"epg2", "epg1"}, "tn1");
-
-        Mockito.doCallRealMethod().when(keyFactory).createKeyWithDefaultOrdering(Matchers.<EndpointPolicyTemplateBySgt>any());
-
-        Mockito.when(cachedDao.find(Matchers.<Sgt>any())).thenReturn(
-                Optional.<EndpointPolicyTemplateBySgt>absent());
-        Mockito.when(cachedDao.isEmpty()).thenReturn(true);
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<EndpointPolicyTemplateBySgt>>any())).thenReturn(
-                Futures.<Optional<EndpointPolicyTemplateBySgt>, ReadFailedException>immediateCheckedFuture(
-                        Optional.of(epPolicytemplateUnsorted)));
-
-        dao.read(new Sgt(1));
-
-        Mockito.verify(cachedDao).update(sgtCapt.capture(), epPolicyTemplateCapt.capture());
-        Mockito.verify(cachedDao).find(sgtCapt.capture());
-
-        Assert.assertEquals(1, sgtCapt.getValue().getValue().intValue());
-        final EndpointPolicyTemplateBySgt template = epPolicyTemplateCapt.getValue();
-        Assert.assertEquals(1, template.getSgt().getValue().intValue());
-        Assert.assertEquals("tn1", template.getTenant().getValue());
-        Assert.assertEquals(buildEndpointGroupIds(new String[]{"epg1", "epg2"}), template.getEndpointGroups());
-        Assert.assertEquals(buildConditions(new String[]{"cn1", "cn2"}), template.getConditions());
-    }
-
-
-    private EndpointPolicyTemplateBySgt createEpPolicytemplate(final Sgt sgt, final String[] conditionNames,
-                                                               final String[] epgIds, final String tenant) {
-        return new EndpointPolicyTemplateBySgtBuilder()
-                .setSgt(sgt)
-                .setEndpointGroups(buildEndpointGroupIds(epgIds))
-                .setConditions(buildConditions(conditionNames))
-                .setTenant(new TenantId(tenant))
-                .build();
-    }
-
-    private static List<EndpointGroupId> buildEndpointGroupIds(final String[] names) {
-        final List<EndpointGroupId> endpointGroupIds = new ArrayList<>();
-        for (String epgId : names) {
-            endpointGroupIds.add(new EndpointGroupId(epgId));
-        }
-        return endpointGroupIds;
-    }
-
-    private static List<ConditionName> buildConditions(final String[] names) {
-        final List<ConditionName> conditions = new ArrayList<>();
-        for (String condition : names) {
-            conditions.add(new ConditionName(condition));
-        }
-        return conditions;
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/MasterDatabaseBindingDaoImplTest.java
deleted file mode 100644 (file)
index 09bcb95..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.Collection;
-import java.util.Collections;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.sxp.core.Configuration;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBindingBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpNodeIdentity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpNodeIdentityBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.SxpDomainsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.sxp.domains.SxpDomainBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.sxp.databases.fields.MasterDatabaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyBuilder;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeBuilder;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Test for {@link MasterDatabaseBindingDaoImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class MasterDatabaseBindingDaoImplTest {
-
-    private static final Sgt KEY_1 = new Sgt(1);
-    private static final IpPrefix IP_PREFIX = new IpPrefix(new Ipv4Prefix("1.2.3.4/32"));
-    private final Topology TOPOLOGY_VALUE;
-    private final MasterDatabaseBinding MASTER_DB_BINDING_VALUE;
-
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SimpleCachedDao<IpPrefix, MasterDatabaseBinding> cachedDao;
-    @Mock
-    private ReadOnlyTransaction rTx;
-
-    private MasterDatabaseBindingDaoImpl dao;
-
-    public MasterDatabaseBindingDaoImplTest() {
-        MASTER_DB_BINDING_VALUE = new MasterDatabaseBindingBuilder()
-                .setSecurityGroupTag(KEY_1)
-                .setIpPrefix(IP_PREFIX)
-                .build();
-
-        TOPOLOGY_VALUE = new TopologyBuilder()
-                .setTopologyId(new TopologyId(Configuration.TOPOLOGY_NAME))
-                .setNode(Lists.newArrayList(new NodeBuilder()
-                        .setNodeId(new NodeId("utNodeId"))
-                        .addAugmentation(SxpNodeIdentity.class, new SxpNodeIdentityBuilder()
-                                .setSxpDomains(new SxpDomainsBuilder()
-                                        .setSxpDomain(Collections.singletonList(new SxpDomainBuilder()
-                                                .setDomainName("global")
-                                                .setMasterDatabase(new MasterDatabaseBuilder()
-                                                        .setMasterDatabaseBinding(Lists.newArrayList(MASTER_DB_BINDING_VALUE))
-                                                        .build())
-                                                .build()))
-                                        .build())
-                                .build())
-                        .build()))
-                .build();
-    }
-
-
-    @Before
-    public void setUp() throws Exception {
-        dao = new MasterDatabaseBindingDaoImpl(dataBroker, cachedDao);
-    }
-
-    @Test
-    public void testRead_absent() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(Optional.<MasterDatabaseBinding>absent());
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<Topology>>any())).thenReturn(
-                Futures.<Optional<Topology>, ReadFailedException>immediateCheckedFuture(
-                        Optional.<Topology>absent()));
-
-
-        final ListenableFuture<Optional<MasterDatabaseBinding>> read = dao.read(IP_PREFIX);
-        Assert.assertTrue(read.isDone());
-        Assert.assertFalse(read.get().isPresent());
-    }
-
-    @Test
-    public void testRead_presentCached() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(Optional.of(MASTER_DB_BINDING_VALUE));
-
-        final ListenableFuture<Optional<MasterDatabaseBinding>> read = dao.read(IP_PREFIX);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getSecurityGroupTag());
-    }
-
-    @Test
-    public void testRead_presentDS() throws Exception {
-        Mockito.when(cachedDao.find(Matchers.<IpPrefix>any())).thenReturn(
-                Optional.<MasterDatabaseBinding>absent(),
-                Optional.of(MASTER_DB_BINDING_VALUE));
-        Mockito.when(cachedDao.isEmpty()).thenReturn(true);
-        Mockito.when(dataBroker.newReadOnlyTransaction()).thenReturn(rTx);
-        Mockito.when(rTx.read(Matchers.eq(LogicalDatastoreType.CONFIGURATION),
-                Matchers.<InstanceIdentifier<Topology>>any())).thenReturn(
-                Futures.<Optional<Topology>, ReadFailedException>immediateCheckedFuture(
-                        Optional.of(TOPOLOGY_VALUE)));
-
-        final ListenableFuture<Optional<MasterDatabaseBinding>> read = dao.read(IP_PREFIX);
-        Assert.assertTrue(read.isDone());
-        Assert.assertTrue(read.get().isPresent());
-        Assert.assertEquals(KEY_1, read.get().get().getSecurityGroupTag());
-
-        final InOrder inOrder = Mockito.inOrder(cachedDao);
-        inOrder.verify(cachedDao).invalidateCache();
-        inOrder.verify(cachedDao).update(IP_PREFIX, MASTER_DB_BINDING_VALUE);
-        inOrder.verify(cachedDao).find(IP_PREFIX);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    @Test
-    public void testReadBy() throws Exception {
-        Mockito.when(cachedDao.isEmpty()).thenReturn(false);
-        Mockito.when(cachedDao.values()).thenReturn(Collections.singleton(MASTER_DB_BINDING_VALUE));
-
-        final ListenableFuture<Collection<MasterDatabaseBinding>> readByFt = dao.readBy(KEY_1);
-        Assert.assertTrue(readByFt.isDone());
-        Assert.assertEquals(1, readByFt.get().size());
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoEPForwardingTemplateImplTest.java
deleted file mode 100644 (file)
index 40ccb9c..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.collect.Iterables;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetBuilder;
-
-/**
- * Test for {@link SimpleCachedDaoEPForwardingTemplateImpl}.
- */
-public class SimpleCachedDaoEPForwardingTemplateImplTest {
-
-    private static final IpPrefix IP_PREFIX_1 = buildIpPrefix("1.2.3.0/24");
-
-
-    private static final IpPrefix IP_PREFIX_2 = buildIpPrefix("1.2.3.4/32");
-
-    private SimpleCachedDaoEPForwardingTemplateImpl dao;
-
-    @Before
-    public void setUp() throws Exception {
-        dao = new SimpleCachedDaoEPForwardingTemplateImpl();
-        Assert.assertTrue(dao.isEmpty());
-    }
-
-    @Test
-    public void testUpdate() throws Exception {
-        dao.update(IP_PREFIX_1, buildValue(IP_PREFIX_1));
-        dao.update(IP_PREFIX_2, buildValue(IP_PREFIX_2));
-
-        Assert.assertEquals(2, Iterables.size(dao.values()));
-    }
-
-    private EndpointForwardingTemplateBySubnet buildValue(final IpPrefix ipPrefix) {
-        return new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(ipPrefix)
-                .build();
-    }
-
-    @Test
-    public void testFind() throws Exception {
-        final EndpointForwardingTemplateBySubnet value1 = buildValue(IP_PREFIX_1);
-        final EndpointForwardingTemplateBySubnet value2 = buildValue(IP_PREFIX_2);
-        dao.update(IP_PREFIX_1, value1);
-        dao.update(IP_PREFIX_2, value2);
-        Assert.assertFalse(dao.isEmpty());
-
-        Assert.assertTrue(dao.find(IP_PREFIX_1).isPresent());
-        Assert.assertEquals(value1, dao.find(IP_PREFIX_1).get());
-        Assert.assertTrue(dao.find(IP_PREFIX_2).isPresent());
-        Assert.assertEquals(value2, dao.find(IP_PREFIX_2).get());
-
-        final IpPrefix key = buildIpPrefix("1.2.3.1/32");
-        Assert.assertTrue(dao.find(key).isPresent());
-        Assert.assertEquals(value1, dao.find(key).get());
-    }
-
-    private static IpPrefix buildIpPrefix(final String ipv4PrefixValue) {
-        return new IpPrefix(new Ipv4Prefix(ipv4PrefixValue));
-    }
-
-    @Test
-    public void testInvalidateCache() throws Exception {
-        dao.update(IP_PREFIX_1, buildValue(IP_PREFIX_1));
-        dao.update(IP_PREFIX_2, buildValue(IP_PREFIX_2));
-
-        Assert.assertEquals(2, Iterables.size(dao.values()));
-        dao.invalidateCache();
-        Assert.assertTrue(dao.isEmpty());
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/dao/SimpleCachedDaoImplTest.java
deleted file mode 100644 (file)
index c66d366..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.dao;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.opendaylight.yangtools.yang.binding.DataContainer;
-import org.opendaylight.yangtools.yang.binding.DataObject;
-
-/**
- * Test for {@link SimpleCachedDaoImpl}.
- */
-public class SimpleCachedDaoImplTest {
-
-    private static final String KEY_1 = "dummyKey1";
-    private static final String KEY_2 = "dummyKey2";
-    private static final DummyDataObject DUMMY_DATA_1 = new DummyDataObject("dummyData1");
-    private static final DummyDataObject DUMMY_DATA_2 = new DummyDataObject("dummyData2");
-
-    private SimpleCachedDaoImpl<String, DummyDataObject> dao;
-
-    @Before
-    public void setUp() throws Exception {
-        dao = new SimpleCachedDaoImpl<>();
-        Assert.assertFalse(dao.find(KEY_1).isPresent());
-    }
-
-    @Test
-    public void testUpdate() throws Exception {
-        dao.update(KEY_1, DUMMY_DATA_1);
-        final Optional<DummyDataObject> dataOpt = dao.find(KEY_1);
-        Assert.assertTrue(dataOpt.isPresent());
-        Assert.assertEquals(DUMMY_DATA_1.getDummyData(), dataOpt.get().getDummyData());
-    }
-
-    @Test
-    public void testInvalidateCache() throws Exception {
-        dao.update(KEY_1, DUMMY_DATA_1);
-        Assert.assertTrue(dao.find(KEY_1).isPresent());
-        dao.invalidateCache();
-        Assert.assertFalse(dao.find(KEY_1).isPresent());
-    }
-
-    @Test
-    public void testIsEmpty() throws Exception {
-        Assert.assertTrue(dao.isEmpty());
-        dao.update(KEY_1, DUMMY_DATA_1);
-        Assert.assertFalse(dao.isEmpty());
-    }
-
-    @Test
-    public void testValues() throws Exception {
-        Assert.assertEquals(0, Iterables.size(dao.values()));
-        dao.update(KEY_1, DUMMY_DATA_1);
-        dao.update(KEY_1, DUMMY_DATA_2);
-        Assert.assertEquals(1, Iterables.size(dao.values()));
-
-        dao.update(KEY_2, DUMMY_DATA_2);
-        Assert.assertEquals(2, Iterables.size(dao.values()));
-    }
-
-    private static final class DummyDataObject implements DataObject {
-        private final String dummyData;
-
-        public DummyDataObject(final String dummyData) {
-            this.dummyData = dummyData;
-        }
-
-        public String getDummyData() {
-            return dummyData;
-        }
-
-        @Override
-        public Class<? extends DataContainer> getImplementedInterface() {
-            return getClass();
-        }
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImplTest.java
deleted file mode 100644 (file)
index bfadf91..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import java.util.Collections;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBindingBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
-
-/**
- * Test for {@link EPForwardingTemplateListenerImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class EPForwardingTemplateListenerImplTest {
-
-    private static final IpPrefix IP_PREFIX_TMPL = buildIpPrefix("1.2.3.0/24");
-    private static final EndpointForwardingTemplateBySubnetKey EP_FW_TEMPLATE_KEY =
-            new EndpointForwardingTemplateBySubnetKey(IP_PREFIX_TMPL);
-    private static final KeyedInstanceIdentifier<EndpointForwardingTemplateBySubnet, EndpointForwardingTemplateBySubnetKey> EP_FW_TEMPLATE_PATH =
-            EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH
-                    .child(EndpointForwardingTemplateBySubnet.class, EP_FW_TEMPLATE_KEY);
-    private static final DataTreeIdentifier<EndpointForwardingTemplateBySubnet> TEMPLATE_TREE_PATH =
-            new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, EP_FW_TEMPLATE_PATH);
-    private final EndpointForwardingTemplateBySubnet EP_FW_TEMPLATE_VALUE;
-
-
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SxpMapperReactor sxpMapper;
-    @Mock
-    private SimpleCachedDao<IpPrefix, EndpointForwardingTemplateBySubnet> simpleCachedDao;
-    @Mock
-    private DSAsyncDao<IpPrefix, MasterDatabaseBinding> masterDBBindingDao;
-    @Mock
-    private DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
-    @Mock
-    private ListenerRegistration<? extends EPTemplateListener> listenerRegistration;
-    @Mock
-    private DataTreeModification<EndpointForwardingTemplateBySubnet> dataTreeModification;
-    @Mock
-    private DataObjectModification<EndpointForwardingTemplateBySubnet> dataObjectModification;
-
-    private EPForwardingTemplateListenerImpl listener;
-    public static final Sgt SGT = new Sgt(1);
-    public static final EndpointPolicyTemplateBySgt EP_POLICY_TEMPLATE = new EndpointPolicyTemplateBySgtBuilder()
-            .setSgt(SGT)
-            .build();
-
-    public EPForwardingTemplateListenerImplTest() {
-        EP_FW_TEMPLATE_VALUE = new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(IP_PREFIX_TMPL)
-                .build();
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
-        listener = new EPForwardingTemplateListenerImpl(dataBroker, sxpMapper, simpleCachedDao, masterDBBindingDao, epPolicyTemplateDao);
-    }
-
-    @Test
-    public void testOnDataTreeChanged() throws Exception {
-        Mockito.when(dataTreeModification.getRootNode()).thenReturn(dataObjectModification);
-        Mockito.when(dataTreeModification.getRootPath()).thenReturn(TEMPLATE_TREE_PATH);
-        Mockito.when(dataObjectModification.getDataAfter()).thenReturn(EP_FW_TEMPLATE_VALUE);
-
-        final IpPrefix ipPrefix = buildIpPrefix("1.2.3.4/32");
-        final MasterDatabaseBinding masterDBBinding = new MasterDatabaseBindingBuilder()
-                .setSecurityGroupTag(SGT)
-                .setIpPrefix(ipPrefix)
-                .build();
-        Mockito.when(masterDBBindingDao.read(Matchers.<IpPrefix>any())).thenReturn(
-                Futures.immediateFuture(Optional.of(masterDBBinding)));
-        Mockito.when(epPolicyTemplateDao.read(Matchers.<Sgt>any())).thenReturn(
-                Futures.immediateFuture(Optional.of(EP_POLICY_TEMPLATE)));
-        Mockito.when(sxpMapper.processTemplatesAndSxpMasterDB(Matchers.<EndpointPolicyTemplateBySgt>any(),
-                Matchers.<EndpointForwardingTemplateBySubnet>any(),Matchers.<MasterDatabaseBinding>any())).thenReturn(
-                RpcResultBuilder.success((Void) null).buildFuture());
-
-        listener.onDataTreeChanged(Collections.singleton(dataTreeModification));
-
-        final InOrder inOrder = Mockito.inOrder(masterDBBindingDao, simpleCachedDao, epPolicyTemplateDao, sxpMapper);
-        inOrder.verify(simpleCachedDao).update(IP_PREFIX_TMPL, EP_FW_TEMPLATE_VALUE);
-        inOrder.verify(masterDBBindingDao).read(IP_PREFIX_TMPL);
-        inOrder.verify(epPolicyTemplateDao).read(SGT);
-        inOrder.verify(sxpMapper).processTemplatesAndSxpMasterDB(EP_POLICY_TEMPLATE, EP_FW_TEMPLATE_VALUE, masterDBBinding);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    private static IpPrefix buildIpPrefix(final String ipv4PrefixValue) {
-        return new IpPrefix(new Ipv4Prefix(ipv4PrefixValue));
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        Mockito.verify(listenerRegistration, Mockito.never()).close();
-        listener.close();
-        Mockito.verify(listenerRegistration).close();
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImplTest.java
deleted file mode 100644 (file)
index befb27d..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import java.util.Collections;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.ReadableAsyncByKey;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBindingBuilder;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.Futures;
-
-/**
- * Test for {@link EPPolicyTemplateListenerImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class EPPolicyTemplateListenerImplTest {
-
-    private static final Sgt SGT_1 = new Sgt(1);
-    private static final KeyedInstanceIdentifier<EndpointPolicyTemplateBySgt, EndpointPolicyTemplateBySgtKey> EP_PL_TEMPLATE_PATH =
-            EPTemplateListener.SXP_MAPPER_TEMPLATE_PARENT_PATH
-                    .child(EndpointPolicyTemplateBySgt.class, new EndpointPolicyTemplateBySgtKey(SGT_1));
-    private static final DataTreeIdentifier<EndpointPolicyTemplateBySgt> TEMPLATE_TREE_PATH =
-            new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, EP_PL_TEMPLATE_PATH);
-    private static final IpPrefix IP_PREFIX_1 = new IpPrefix(new Ipv4Prefix("1.2.3.4/32"));
-    private static final IpPrefix IP_PREFIX_2 = new IpPrefix(new Ipv4Prefix("1.2.3.5/32"));
-    private final EndpointPolicyTemplateBySgt EP_PL_TEMPLATE_VALUE;
-
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SxpMapperReactor sxpMapper;
-    @Mock
-    private SimpleCachedDao<Sgt, EndpointPolicyTemplateBySgt> simpleCachedDao;
-    @Mock
-    private DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao;
-    @Mock
-    private ReadableAsyncByKey<Sgt, MasterDatabaseBinding> masterDBDao;
-    @Mock
-    private ListenerRegistration<? extends EPTemplateListener> listenerRegistration;
-    @Mock
-    private DataTreeModification<EndpointPolicyTemplateBySgt> dataTreeModification;
-    @Mock
-    private DataObjectModification<EndpointPolicyTemplateBySgt> dataObjectModification;
-
-    private EPPolicyTemplateListenerImpl listener;
-
-    public EPPolicyTemplateListenerImplTest() {
-        EP_PL_TEMPLATE_VALUE = new EndpointPolicyTemplateBySgtBuilder()
-                .setSgt(SGT_1)
-                .build();
-    }
-
-    @Before
-    public void setUp() throws Exception {
-        Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
-        listener = new EPPolicyTemplateListenerImpl(dataBroker, sxpMapper, simpleCachedDao, masterDBDao, epForwardingTemplateDao);
-    }
-
-    @Test
-    public void testOnDataTreeChanged() throws Exception {
-        Mockito.when(dataTreeModification.getRootNode()).thenReturn(dataObjectModification);
-        Mockito.when(dataTreeModification.getRootPath()).thenReturn(TEMPLATE_TREE_PATH);
-        Mockito.when(dataObjectModification.getDataAfter()).thenReturn(EP_PL_TEMPLATE_VALUE);
-
-        final MasterDatabaseBinding masterDBBinding1 = new MasterDatabaseBindingBuilder()
-                .setSecurityGroupTag(SGT_1)
-                .setIpPrefix(IP_PREFIX_1)
-                .build();
-        final MasterDatabaseBinding masterDBBinding2 = new MasterDatabaseBindingBuilder()
-                .setSecurityGroupTag(SGT_1)
-                .setIpPrefix(IP_PREFIX_2)
-                .build();
-
-        final EndpointForwardingTemplateBySubnet epForwardingTemplate1 = new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(IP_PREFIX_1)
-                .build();
-        final EndpointForwardingTemplateBySubnet epForwardingTemplate2 = new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(IP_PREFIX_2)
-                .build();
-
-        Mockito.when(masterDBDao.readBy(Matchers.<Sgt>any())).thenReturn(
-                Futures.immediateFuture(Lists.newArrayList(masterDBBinding1, masterDBBinding2)));
-        Mockito.when(epForwardingTemplateDao.read(Matchers.<IpPrefix>any())).thenReturn(
-                Futures.immediateFuture(Optional.of(epForwardingTemplate1)),
-                Futures.immediateFuture(Optional.of(epForwardingTemplate2)));
-        Mockito.when(sxpMapper.processTemplatesAndSxpMasterDB(Matchers.<EndpointPolicyTemplateBySgt>any(),
-                Matchers.<EndpointForwardingTemplateBySubnet>any(), Matchers.<MasterDatabaseBinding>any())).thenReturn(
-                RpcResultBuilder.success((Void) null).buildFuture());
-
-        listener.onDataTreeChanged(Collections.singleton(dataTreeModification));
-
-        final InOrder inOrder = Mockito.inOrder(masterDBDao, simpleCachedDao, epForwardingTemplateDao, sxpMapper);
-        inOrder.verify(simpleCachedDao).update(SGT_1, EP_PL_TEMPLATE_VALUE);
-        inOrder.verify(masterDBDao).readBy(SGT_1);
-        inOrder.verify(epForwardingTemplateDao).read(IP_PREFIX_1);
-        inOrder.verify(epForwardingTemplateDao).read(IP_PREFIX_2);
-        inOrder.verify(sxpMapper).processTemplatesAndSxpMasterDB(EP_PL_TEMPLATE_VALUE, epForwardingTemplate1, masterDBBinding1);
-        inOrder.verify(sxpMapper).processTemplatesAndSxpMasterDB(EP_PL_TEMPLATE_VALUE, epForwardingTemplate2, masterDBBinding2);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        Mockito.verify(listenerRegistration, Mockito.never()).close();
-        listener.close();
-        Mockito.verify(listenerRegistration).close();
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImplTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImplTest.java
deleted file mode 100644 (file)
index 2126753..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.listen;
-
-import java.util.Collections;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.InOrder;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.DSAsyncDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.EPTemplateListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.MasterDatabaseBindingListener;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SimpleCachedDao;
-import org.opendaylight.groupbasedpolicy.sxp.mapper.api.SxpMapperReactor;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnet;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointForwardingTemplateBySubnetBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.sxp.mapper.EndpointPolicyTemplateBySgtBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.Sgt;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBindingBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBindingKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.SxpNodeIdentity;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.SxpDomains;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.sxp.domains.SxpDomain;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.network.topology.topology.node.sxp.domains.SxpDomainKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.node.rev160308.sxp.databases.fields.MasterDatabase;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NodeId;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
-import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
-
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
-
-/**
- * Test for {@link MasterDatabaseBindingListenerImpl}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class MasterDatabaseBindingListenerImplTest {
-
-    private static final Sgt SGT_1 = new Sgt(1);
-    private static final IpPrefix IP_PREFIX = new IpPrefix(new Ipv4Prefix("1.2.3.4/32"));
-    private static final KeyedInstanceIdentifier<MasterDatabaseBinding, MasterDatabaseBindingKey> MASTER_DB_PATH =
-            MasterDatabaseBindingListener.SXP_TOPOLOGY_PATH
-                    .child(Node.class, new NodeKey(new NodeId("utNodeId")))
-                    .augmentation(SxpNodeIdentity.class)
-                    .child(SxpDomains.class)
-                    .child(SxpDomain.class, new SxpDomainKey("global"))
-                    .child(MasterDatabase.class)
-                    .child(MasterDatabaseBinding.class, new MasterDatabaseBindingKey(IP_PREFIX));
-    private static final DataTreeIdentifier<MasterDatabaseBinding> MASTER_DB_BINDING_TREE_PATH =
-            new DataTreeIdentifier<>(LogicalDatastoreType.CONFIGURATION, MASTER_DB_PATH);
-    private final MasterDatabaseBinding MASTER_DB_BINDING_VALUE;
-
-    @Mock
-    private DataBroker dataBroker;
-    @Mock
-    private SxpMapperReactor sxpMapper;
-    @Mock
-    private DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
-    @Mock
-    private DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao;
-    @Mock
-    private SimpleCachedDao<IpPrefix, MasterDatabaseBinding> cachedDao;
-    @Mock
-    private ListenerRegistration<? extends EPTemplateListener> listenerRegistration;
-    @Mock
-    private DataTreeModification<MasterDatabaseBinding> dataTreeModification;
-    @Mock
-    private DataObjectModification<MasterDatabaseBinding> dataObjectModification;
-
-    private MasterDatabaseBindingListenerImpl listener;
-
-    public MasterDatabaseBindingListenerImplTest() {
-        MASTER_DB_BINDING_VALUE = new MasterDatabaseBindingBuilder()
-                .setSecurityGroupTag(SGT_1)
-                .setIpPrefix(IP_PREFIX)
-                .build();
-    }
-
-
-    @Before
-    public void setUp() throws Exception {
-        Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
-        listener = new MasterDatabaseBindingListenerImpl(dataBroker, sxpMapper, cachedDao, epPolicyTemplateDao,
-                epForwardingTemplateDao);
-    }
-
-    @Test
-    public void testOnDataTreeChanged() throws Exception {
-        Mockito.when(dataTreeModification.getRootNode()).thenReturn(dataObjectModification);
-        Mockito.when(dataTreeModification.getRootPath()).thenReturn(MASTER_DB_BINDING_TREE_PATH);
-        Mockito.when(dataObjectModification.getDataAfter()).thenReturn(MASTER_DB_BINDING_VALUE);
-
-        // prepare epPolicy template
-        final EndpointPolicyTemplateBySgt epPolicyTemplate = new EndpointPolicyTemplateBySgtBuilder()
-                .setSgt(SGT_1)
-                .build();
-        Mockito.when(epPolicyTemplateDao.read(Matchers.<Sgt>any())).thenReturn(
-                Futures.immediateFuture(Optional.of(epPolicyTemplate)));
-
-        // prepare epForwarding template
-        final IpPrefix ipPrefixSubnet = new IpPrefix(new Ipv4Prefix("1.2.3.0/24"));
-        final EndpointForwardingTemplateBySubnet epForwardingTemplate = new EndpointForwardingTemplateBySubnetBuilder()
-                .setIpPrefix(ipPrefixSubnet)
-                .build();
-        Mockito.when(epForwardingTemplateDao.read(Matchers.<IpPrefix>any())).thenReturn(
-                Futures.immediateFuture(Optional.of(epForwardingTemplate)));
-
-        listener.onDataTreeChanged(Collections.singleton(dataTreeModification));
-
-        final InOrder inOrder = Mockito.inOrder(cachedDao, epPolicyTemplateDao, epForwardingTemplateDao, sxpMapper);
-        inOrder.verify(cachedDao).update(IP_PREFIX, MASTER_DB_BINDING_VALUE);
-        inOrder.verify(epPolicyTemplateDao).read(SGT_1);
-        inOrder.verify(epForwardingTemplateDao).read(IP_PREFIX);
-        inOrder.verify(sxpMapper).processTemplatesAndSxpMasterDB(epPolicyTemplate, epForwardingTemplate, MASTER_DB_BINDING_VALUE);
-        inOrder.verifyNoMoreInteractions();
-    }
-
-    @Test
-    public void testClose() throws Exception {
-        Mockito.verify(listenerRegistration, Mockito.never()).close();
-        listener.close();
-        Mockito.verify(listenerRegistration).close();
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtilTest.java b/sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/util/EPTemplateUtilTest.java
deleted file mode 100644 (file)
index 41e3eed..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright (c) 2016 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.groupbasedpolicy.sxp.mapper.impl.util;
-
-import org.apache.commons.net.util.SubnetUtils;
-import org.junit.Assert;
-import org.junit.Test;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
-
-/**
- * Test for {@link EPTemplateUtil}.
- */
-public class EPTemplateUtilTest {
-
-    public static final IpPrefix IP_PREFIX_24 = new IpPrefix(new Ipv4Prefix("1.2.3.0/24"));
-    public static final IpPrefix IP_PREFIX_32 = new IpPrefix(new Ipv4Prefix("1.2.3.4/32"));
-
-    @Test
-    public void testIsPlain() throws Exception {
-        Assert.assertFalse(EPTemplateUtil.isPlain(IP_PREFIX_24));
-        Assert.assertTrue(EPTemplateUtil.isPlain(IP_PREFIX_32));
-    }
-
-    @Test
-    public void testBuildSubnetInfoKey() throws Exception {
-        checkSubnetInfoBuilder(IP_PREFIX_24, "1.2.3.1", "1.2.3.254", 254);
-        checkSubnetInfoBuilder(IP_PREFIX_32, "0.0.0.0", "0.0.0.0", 0);
-    }
-
-    private void checkSubnetInfoBuilder(final IpPrefix ipPrefix, final String expectedLow, final String expectedHigh, final int expectedCount) {
-        final SubnetInfoKeyDecorator subnetInfoKey = EPTemplateUtil.buildSubnetInfoKey(ipPrefix);
-        final SubnetUtils.SubnetInfo subnetInfo = subnetInfoKey.getDelegate();
-        Assert.assertEquals(expectedLow, subnetInfo.getLowAddress());
-        Assert.assertEquals(expectedHigh, subnetInfo.getHighAddress());
-        Assert.assertEquals(expectedCount, subnetInfo.getAddressCount());
-        Assert.assertEquals(ipPrefix.getIpv4Prefix().getValue(), subnetInfo.getCidrSignature());
-    }
-}
\ No newline at end of file
diff --git a/sxp-mapper/src/test/resources/log4j.xml b/sxp-mapper/src/test/resources/log4j.xml
deleted file mode 100644 (file)
index 024a8db..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">\r
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">\r
-\r
-    <appender name="console" class="org.apache.log4j.ConsoleAppender">\r
-        <layout class="org.apache.log4j.PatternLayout">\r
-            <param name="ConversionPattern" value="%-6p %d{HH:mm:ss.SSS} [%10.10t] %30.30c %x - %m%n"/>\r
-        </layout>\r
-        <!--         <param name="Threshold" value="DEBUG" /> -->\r
-    </appender>\r
-\r
-    <logger name="org.opendaylight.groupbasedpolicy.sxp.mapper" additivity="false">\r
-        <level value="DEBUG"/>\r
-        <appender-ref ref="console"/>\r
-    </logger>\r
-\r
-    <logger name="org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao" additivity="false">\r
-        <level value="TRACE"/>\r
-        <appender-ref ref="console"/>\r
-    </logger>\r
-\r
-    <root>\r
-        <priority value="INFO"/>\r
-        <appender-ref ref="console"/>\r
-    </root>\r
-</log4j:configuration>\r