Resolve OSGi wiring issue in TL1

Change-Id: Ic749d0739e2faa0fc913dbffa78c38af56142834
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java
deleted file mode 100644
index 91c235d..0000000
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceConfig.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright 2015-present 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.provider.tl1.device.impl;
-
-import com.google.common.annotations.Beta;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onlab.packet.IpAddress;
-import org.onosproject.net.DeviceId;
-import org.onosproject.net.config.Config;
-
-/**
- * Configuration to push devices to the TL1 provider.
- */
-@Beta
-public class Tl1DeviceConfig extends Config<DeviceId> {
-
-    private static final String IP = "ip";
-    private static final String PORT = "port";
-    private static final String USERNAME = "username";
-    private static final String PASSWORD = "password";
-
-    @Override
-    public boolean isValid() {
-        return hasOnlyFields(IP, PORT, USERNAME, PASSWORD) &&
-                ip() != null;
-    }
-
-    /**
-     * Gets the Ip of the TL1 device.
-     *
-     * @return ip
-     */
-    public IpAddress ip() {
-        return IpAddress.valueOf(get(IP, extractIpPort().getKey()));
-    }
-
-    /**
-     * Gets the port of the TL1 device.
-     *
-     * @return port
-     */
-    public int port() {
-        return get(PORT, extractIpPort().getValue());
-    }
-
-    /**
-     * Gets the username of the TL1 device.
-     *
-     * @return username
-     */
-    public String username() {
-        return get(USERNAME, "");
-    }
-
-    /**
-     * Gets the password of the TL1 device.
-     *
-     * @return password
-     */
-    public String password() {
-        return get(PASSWORD, "");
-    }
-
-
-    private Pair<String, Integer> extractIpPort() {
-        String info = subject.toString();
-        if (info.startsWith(Tl1DeviceProvider.TL1)) {
-            //+1 is due to length of colon separator
-            String ip = info.substring(info.indexOf(":") + 1, info.lastIndexOf(":"));
-            int port = Integer.parseInt(info.substring(info.lastIndexOf(":") + 1));
-            return Pair.of(ip, port);
-        }
-        return null;
-    }
-}
\ No newline at end of file
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
index 6013aea..506eb9d 100644
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
+++ b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1DeviceProvider.java
@@ -47,10 +47,11 @@
 import org.onosproject.net.device.DeviceService;
 import org.onosproject.net.provider.AbstractProvider;
 import org.onosproject.net.provider.ProviderId;
+import org.onosproject.tl1.DefaultTl1Device;
 import org.onosproject.tl1.Tl1Controller;
 import org.onosproject.tl1.Tl1Device;
 import org.onosproject.tl1.Tl1Listener;
-import org.onosproject.tl1.impl.DefaultTl1Device;
+import org.onosproject.tl1.device.Tl1DeviceConfig;
 import org.slf4j.Logger;
 
 import java.io.IOException;
@@ -74,7 +75,11 @@
 @Component(immediate = true)
 public class Tl1DeviceProvider extends AbstractProvider implements DeviceProvider {
     private static final String APP_NAME = "org.onosproject.tl1";
-    protected static final String TL1 = "tl1";
+    /**
+     * @deprecated in 1.11.0. Use {@link Tl1DeviceConfig#TL1} instead
+     */
+    @Deprecated
+    protected static final String TL1 = Tl1DeviceConfig.TL1;
     private static final String PROVIDER = "org.onosproject.provider.tl1.device";
     private static final String UNKNOWN = "unknown";
     private static final int REACHABILITY_TIMEOUT = 2000;      // in milliseconds
@@ -116,7 +121,7 @@
             },
             new ConfigFactory<DeviceId, Tl1DeviceConfig>(SubjectFactories.DEVICE_SUBJECT_FACTORY,
                                                          Tl1DeviceConfig.class,
-                                                         TL1) {
+                                                         Tl1DeviceConfig.TL1) {
                 @Override
                 public Tl1DeviceConfig createConfig() {
                     return new Tl1DeviceConfig();
@@ -150,7 +155,7 @@
     }
 
     public Tl1DeviceProvider() {
-        super(new ProviderId(TL1, PROVIDER));
+        super(new ProviderId(Tl1DeviceConfig.TL1, PROVIDER));
     }
 
     @Override
@@ -237,11 +242,11 @@
         try {
             // Add device to TL1 controller
             DeviceId deviceId = DeviceId.deviceId(
-                    new URI(TL1, device.ip() + ":" + device.port(), null));
+                    new URI(Tl1DeviceConfig.TL1, device.ip() + ":" + device.port(), null));
 
             if (controller.addDevice(deviceId, device)) {
                 SparseAnnotations ann = DefaultAnnotations.builder()
-                        .set(AnnotationKeys.PROTOCOL, TL1.toUpperCase())
+                        .set(AnnotationKeys.PROTOCOL, Tl1DeviceConfig.TL1.toUpperCase())
                         .build();
                 // Register device in the core with default parameters and mark it as unavailable
                 DeviceDescription dd = new DefaultDeviceDescription(deviceId.uri(),
diff --git a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
index 4f883cd..d083cb9 100644
--- a/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
+++ b/providers/tl1/device/src/main/java/org/onosproject/provider/tl1/device/impl/Tl1ProviderConfig.java
@@ -21,7 +21,7 @@
 import org.onosproject.core.ApplicationId;
 import org.onosproject.incubator.net.config.basics.ConfigException;
 import org.onosproject.net.config.Config;
-import org.onosproject.tl1.impl.DefaultTl1Device;
+import org.onosproject.tl1.DefaultTl1Device;
 import org.onosproject.tl1.Tl1Device;
 
 import java.util.Set;