Remove all address bindings code from Host subsystem.

This has been superseded by the InterfaceService.

Change-Id: I8aae4cfe00752a84e545a1030c199aea8b59da38
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptor.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptor.java
deleted file mode 100644
index 78eecb8..0000000
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptor.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2014-2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.routing.config.impl;
-
-import com.google.common.collect.Sets;
-import org.onlab.packet.IpAddress;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.host.HostService;
-import org.onosproject.net.host.InterfaceIpAddress;
-import org.onosproject.net.host.PortAddresses;
-import org.onosproject.routing.config.Interface;
-
-import java.util.Set;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * Adapts PortAddresses data from the HostService into Interface data used by
- * the routing module.
- */
-public class HostToInterfaceAdaptor {
-
-    private final HostService hostService;
-
-    public HostToInterfaceAdaptor(HostService hostService) {
-        this.hostService = checkNotNull(hostService);
-    }
-
-    public Set<Interface> getInterfaces() {
-        Set<PortAddresses> addresses = hostService.getAddressBindings();
-        Set<Interface> interfaces = Sets.newHashSetWithExpectedSize(addresses.size());
-        for (PortAddresses a : addresses) {
-            interfaces.add(new Interface(a));
-        }
-        return interfaces;
-    }
-
-    public Interface getInterface(ConnectPoint connectPoint) {
-        checkNotNull(connectPoint);
-
-        Set<PortAddresses> portAddresses =
-                hostService.getAddressBindingsForPort(connectPoint);
-
-        for (PortAddresses addresses : portAddresses) {
-            if (addresses.connectPoint().equals(connectPoint)) {
-                return new Interface(addresses);
-            }
-        }
-
-        return null;
-    }
-
-    public Interface getInterface(IpAddress ip) {
-        Set<PortAddresses> portAddresses = hostService.getAddressBindings();
-
-        for (PortAddresses portAddress : portAddresses) {
-            for (InterfaceIpAddress portIp : portAddress.ipAddresses()) {
-                if (portIp.ipAddress().equals(ip)) {
-                    return new Interface(portAddress);
-                }
-            }
-        }
-
-        return null;
-    }
-
-    public Interface getMatchingInterface(IpAddress ipAddress) {
-        checkNotNull(ipAddress);
-
-        for (PortAddresses portAddresses : hostService.getAddressBindings()) {
-            for (InterfaceIpAddress ia : portAddresses.ipAddresses()) {
-                if (ia.subnetAddress().contains(ipAddress)) {
-                    return new Interface(portAddresses);
-                }
-            }
-        }
-
-        return null;
-    }
-
-}
diff --git a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
index 1078319..0a6f9d4 100644
--- a/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
+++ b/apps/routing/src/main/java/org/onosproject/routing/config/impl/RoutingConfigurationImpl.java
@@ -38,7 +38,6 @@
 import org.onosproject.net.config.NetworkConfigRegistry;
 import org.onosproject.net.config.NetworkConfigService;
 import org.onosproject.net.config.basics.SubjectFactories;
-import org.onosproject.net.host.HostService;
 import org.onosproject.routing.config.BgpConfig;
 import org.onosproject.routing.config.BgpPeer;
 import org.onosproject.routing.config.BgpSpeaker;
@@ -76,9 +75,6 @@
     private String configFileName = DEFAULT_CONFIG_FILE;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
-    protected HostService hostService;
-
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
     protected NetworkConfigRegistry registry;
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
@@ -103,7 +99,6 @@
                     new DefaultByteArrayNodeFactory());
 
     private MacAddress virtualGatewayMacAddress;
-    private HostToInterfaceAdaptor hostAdaptor;
 
     private ConfigFactory configFactory =
             new ConfigFactory(SubjectFactories.APP_SUBJECT_FACTORY, BgpConfig.class, "bgp") {
@@ -117,7 +112,6 @@
     public void activate() {
         registry.registerConfigFactory(configFactory);
         readConfiguration();
-        hostAdaptor = new HostToInterfaceAdaptor(hostService);
         log.info("Routing configuration service started");
     }
 
@@ -189,7 +183,7 @@
 
     @Override
     public Set<Interface> getInterfaces() {
-        return hostAdaptor.getInterfaces();
+        return Collections.emptySet();
     }
 
     @Override
@@ -212,17 +206,17 @@
 
     @Override
     public Interface getInterface(ConnectPoint connectPoint) {
-        return hostAdaptor.getInterface(connectPoint);
+        return null;
     }
 
     @Override
     public Interface getInterface(IpAddress ip) {
-        return hostAdaptor.getInterface(ip);
+        return null;
     }
 
     @Override
     public Interface getMatchingInterface(IpAddress ipAddress) {
-        return hostAdaptor.getMatchingInterface(ipAddress);
+        return null;
     }
 
     @Override
diff --git a/apps/routing/src/test/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptorTest.java b/apps/routing/src/test/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptorTest.java
deleted file mode 100644
index 0347fc5..0000000
--- a/apps/routing/src/test/java/org/onosproject/routing/config/impl/HostToInterfaceAdaptorTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright 2014-2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.routing.config.impl;
-
-import com.google.common.collect.Maps;
-import com.google.common.collect.Sets;
-import org.junit.Before;
-import org.junit.Test;
-import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpPrefix;
-import org.onlab.packet.MacAddress;
-import org.onlab.packet.VlanId;
-import org.onosproject.net.ConnectPoint;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.PortNumber;
-import org.onosproject.net.host.HostService;
-import org.onosproject.net.host.InterfaceIpAddress;
-import org.onosproject.net.host.PortAddresses;
-import org.onosproject.routing.config.Interface;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-/**
- * Unit tests for the HostToInterfaceAdaptor class.
- */
-public class HostToInterfaceAdaptorTest {
-
-    private HostService hostService;
-    private HostToInterfaceAdaptor adaptor;
-
-    private Set<PortAddresses> portAddresses;
-    private Map<ConnectPoint, Interface> interfaces;
-
-    private static final ConnectPoint CP1 = new ConnectPoint(
-            DeviceId.deviceId("of:1"), PortNumber.portNumber(1));
-    private static final ConnectPoint CP2 = new ConnectPoint(
-            DeviceId.deviceId("of:1"), PortNumber.portNumber(2));
-    private static final ConnectPoint CP3 = new ConnectPoint(
-            DeviceId.deviceId("of:2"), PortNumber.portNumber(1));
-
-    private static final ConnectPoint NON_EXISTENT_CP = new ConnectPoint(
-            DeviceId.deviceId("doesnotexist"), PortNumber.portNumber(1));
-
-    @Before
-    public void setUp() throws Exception {
-        hostService = createMock(HostService.class);
-
-        portAddresses = Sets.newHashSet();
-        interfaces = Maps.newHashMap();
-
-        InterfaceIpAddress ia11 =
-            new InterfaceIpAddress(IpAddress.valueOf("192.168.1.1"),
-                                   IpPrefix.valueOf("192.168.1.0/24"));
-        createPortAddressesAndInterface(CP1,
-                Sets.newHashSet(ia11),
-                MacAddress.valueOf("00:00:00:00:00:01"),
-                VlanId.NONE);
-
-        // Two addresses in the same subnet
-        InterfaceIpAddress ia21 =
-            new InterfaceIpAddress(IpAddress.valueOf("192.168.2.1"),
-                                   IpPrefix.valueOf("192.168.2.0/24"));
-        InterfaceIpAddress ia22 =
-            new InterfaceIpAddress(IpAddress.valueOf("192.168.2.2"),
-                                   IpPrefix.valueOf("192.168.2.0/24"));
-        createPortAddressesAndInterface(CP2,
-                Sets.newHashSet(ia21, ia22),
-                MacAddress.valueOf("00:00:00:00:00:02"),
-                VlanId.vlanId((short) 4));
-
-        // Two addresses in different subnets
-        InterfaceIpAddress ia31 =
-            new InterfaceIpAddress(IpAddress.valueOf("192.168.3.1"),
-                                   IpPrefix.valueOf("192.168.3.0/24"));
-        InterfaceIpAddress ia41 =
-            new InterfaceIpAddress(IpAddress.valueOf("192.168.4.1"),
-                                   IpPrefix.valueOf("192.168.4.0/24"));
-        createPortAddressesAndInterface(CP3,
-                Sets.newHashSet(ia31, ia41),
-                MacAddress.valueOf("00:00:00:00:00:03"),
-                VlanId.NONE);
-
-        expect(hostService.getAddressBindings()).andReturn(portAddresses).anyTimes();
-
-        replay(hostService);
-
-        adaptor = new HostToInterfaceAdaptor(hostService);
-    }
-
-    /**
-     * Creates both a PortAddresses and an Interface for the given inputs and
-     * places them in the correct global data stores.
-     *
-     * @param cp the connect point
-     * @param ipAddresses the set of interface IP addresses
-     * @param mac the MAC address
-     * @param vlan the VLAN ID
-     */
-    private void createPortAddressesAndInterface(
-            ConnectPoint cp, Set<InterfaceIpAddress> ipAddresses,
-            MacAddress mac, VlanId vlan) {
-        PortAddresses pa = new PortAddresses(cp, ipAddresses, mac, vlan);
-        portAddresses.add(pa);
-        expect(hostService.getAddressBindingsForPort(cp)).andReturn(
-                Collections.singleton(pa)).anyTimes();
-
-        Interface intf = new Interface(cp, ipAddresses, mac, vlan);
-        interfaces.put(cp, intf);
-    }
-
-    /**
-     * Tests {@link HostToInterfaceAdaptor#getInterfaces()}.
-     * Verifies that the set of interfaces returned matches what is expected
-     * based on the input PortAddresses data.
-     */
-    @Test
-    public void testGetInterfaces() {
-        Set<Interface> adaptorIntfs = adaptor.getInterfaces();
-
-        assertEquals(3, adaptorIntfs.size());
-        assertTrue(adaptorIntfs.contains(this.interfaces.get(CP1)));
-        assertTrue(adaptorIntfs.contains(this.interfaces.get(CP2)));
-        assertTrue(adaptorIntfs.contains(this.interfaces.get(CP3)));
-    }
-
-    /**
-     * Tests {@link HostToInterfaceAdaptor#getInterface(ConnectPoint)}.
-     * Verifies that the correct interface is returned for a given connect
-     * point.
-     */
-    @Test
-    public void testGetInterface() {
-        assertEquals(this.interfaces.get(CP1), adaptor.getInterface(CP1));
-        assertEquals(this.interfaces.get(CP2), adaptor.getInterface(CP2));
-        assertEquals(this.interfaces.get(CP3), adaptor.getInterface(CP3));
-
-        // Try and get an interface for a connect point with no addresses
-        reset(hostService);
-        expect(hostService.getAddressBindingsForPort(NON_EXISTENT_CP))
-                .andReturn(Collections.<PortAddresses>emptySet()).anyTimes();
-        replay(hostService);
-
-        assertNull(adaptor.getInterface(NON_EXISTENT_CP));
-    }
-
-    /**
-     * Tests {@link HostToInterfaceAdaptor#getInterface(ConnectPoint)} in the
-     * case that the input connect point is null.
-     * Verifies that a NullPointerException is thrown.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testGetInterfaceNull() {
-        ConnectPoint c = null;
-        adaptor.getInterface(c);
-    }
-
-    /**
-     * Tests {@link HostToInterfaceAdaptor#getMatchingInterface(IpAddress)}.
-     * Verifies that the correct interface is returned based on the given IP
-     * address.
-     */
-    @Test
-    public void testGetMatchingInterface() {
-        assertEquals(this.interfaces.get(CP1),
-                adaptor.getMatchingInterface(IpAddress.valueOf("192.168.1.100")));
-        assertEquals(this.interfaces.get(CP2),
-                adaptor.getMatchingInterface(IpAddress.valueOf("192.168.2.100")));
-        assertEquals(this.interfaces.get(CP3),
-                adaptor.getMatchingInterface(IpAddress.valueOf("192.168.3.100")));
-        assertEquals(this.interfaces.get(CP3),
-                adaptor.getMatchingInterface(IpAddress.valueOf("192.168.4.100")));
-
-        // Try and match an address we don't have subnet configured for
-        assertNull(adaptor.getMatchingInterface(IpAddress.valueOf("1.1.1.1")));
-    }
-
-    /**
-     * Tests {@link HostToInterfaceAdaptor#getMatchingInterface(IpAddress)} in the
-     * case that the input IP address is null.
-     * Verifies that a NullPointerException is thrown.
-     */
-    @Test(expected = NullPointerException.class)
-    public void testGetMatchingInterfaceNull() {
-        adaptor.getMatchingInterface(null);
-    }
-
-}