diff --git a/drivers/src/main/java/org/onosproject/driver/DefaultDrivers.java b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java similarity index 69% rename from drivers/src/main/java/org/onosproject/driver/DefaultDrivers.java rename to core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java index 83adcde7b2..4065c1315b 100644 --- a/drivers/src/main/java/org/onosproject/driver/DefaultDrivers.java +++ b/core/api/src/main/java/org/onosproject/net/driver/AbstractDriverLoader.java @@ -13,18 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.onosproject.driver; +package org.onosproject.net.driver; import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Deactivate; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.apache.felix.scr.annotations.Service; -import org.onosproject.net.driver.DefaultDriverProviderService; -import org.onosproject.net.driver.DriverAdminService; -import org.onosproject.net.driver.DriverProvider; -import org.onosproject.net.driver.XmlDriverLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,13 +28,12 @@ import java.io.InputStream; /** * Bootstrap for built in drivers. */ -@Service -@Component(immediate = false) -public class DefaultDrivers implements DefaultDriverProviderService { +@Component +public abstract class AbstractDriverLoader { private final Logger log = LoggerFactory.getLogger(getClass()); - private static final String DRIVERS_XML = "/onos-drivers.xml"; + //private static final String DRIVERS_XML = "/onos-drivers.xml"; private DriverProvider provider; @@ -48,11 +42,9 @@ public class DefaultDrivers implements DefaultDriverProviderService { @Activate protected void activate() { - ClassLoader classLoader = getClass().getClassLoader(); try { - InputStream stream = classLoader.getResourceAsStream(DRIVERS_XML); - provider = new XmlDriverLoader(classLoader) - .loadDrivers(stream, driverAdminService); + provider = new XmlDriverLoader(getClassLoaderInstance()) + .loadDrivers(loadXMLDriversStream(), driverAdminService); driverAdminService.registerProvider(provider); } catch (Exception e) { log.error("Unable to load default drivers", e); @@ -66,4 +58,8 @@ public class DefaultDrivers implements DefaultDriverProviderService { log.info("Stopped"); } + protected abstract InputStream loadXMLDriversStream(); + + protected abstract ClassLoader getClassLoaderInstance(); + } diff --git a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java index f1d1fb4b3f..781faf9498 100644 --- a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java +++ b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java @@ -101,7 +101,6 @@ public class DefaultDriver implements Driver { public Driver merge(Driver other) { checkArgument(parents == null || Objects.equals(parent(), other.parent()), "Parent drivers are not the same"); - // Merge the behaviours. Map, Class> behaviours = Maps.newHashMap(); @@ -261,4 +260,23 @@ public class DefaultDriver implements Driver { .toString(); } + @Override + public boolean equals(Object driverToBeCompared) { + if (this == driverToBeCompared) { + return true; + } + if (driverToBeCompared == null || getClass() != driverToBeCompared.getClass()) { + return false; + } + + DefaultDriver driver = (DefaultDriver) driverToBeCompared; + + return name.equals(driver.name()); + + } + + @Override + public int hashCode() { + return Objects.hashCode(name); + } } diff --git a/drivers/ciena/features.xml b/drivers/ciena/features.xml new file mode 100644 index 0000000000..4dbf1a85d0 --- /dev/null +++ b/drivers/ciena/features.xml @@ -0,0 +1,27 @@ + + + + + onos-api + mvn:${project.groupId}/${project.artifactId}/${project.version} + + mvn:${project.groupId}/onos-restsb-api/${project.version} + + mvn:${project.groupId}/onos-drivers-utilities/${project.version} + + diff --git a/drivers/ciena/pom.xml b/drivers/ciena/pom.xml new file mode 100644 index 0000000000..b774f84a9a --- /dev/null +++ b/drivers/ciena/pom.xml @@ -0,0 +1,50 @@ + + + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + onos-drivers-ciena + bundle + + Ciena device drivers + + + org.onosproject.drivers.ciena + + + + + org.onosproject + onos-drivers-utilities + ${project.version} + + + org.onosproject + onos-restsb-api + ${project.version} + + + + \ No newline at end of file diff --git a/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java new file mode 100644 index 0000000000..13a6d9327c --- /dev/null +++ b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/CienaDriversLoader.java @@ -0,0 +1,41 @@ +/* + * Copyright 2016 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.drivers.ciena; + +import org.apache.felix.scr.annotations.Component; +import org.onosproject.net.driver.AbstractDriverLoader; + +import java.io.InputStream; + +/** + * Loader for Ciena device drivers from specific xml. + */ +@Component(immediate = true) +public class CienaDriversLoader extends AbstractDriverLoader { + + private static final String DRIVERS_XML = "/ciena-drivers.xml"; + + @Override + protected InputStream loadXMLDriversStream() { + return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); + } + + @Override + protected ClassLoader getClassLoaderInstance() { + return getClass().getClassLoader(); + } +} diff --git a/drivers/src/main/java/org/onosproject/driver/rest/PortDiscoveryCienaWaveserverImpl.java b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/PortDiscoveryCienaWaveserverImpl.java similarity index 97% rename from drivers/src/main/java/org/onosproject/driver/rest/PortDiscoveryCienaWaveserverImpl.java rename to drivers/ciena/src/main/java/org/onosproject/drivers/ciena/PortDiscoveryCienaWaveserverImpl.java index fa4abfb0de..affebe59a5 100644 --- a/drivers/src/main/java/org/onosproject/driver/rest/PortDiscoveryCienaWaveserverImpl.java +++ b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/PortDiscoveryCienaWaveserverImpl.java @@ -16,11 +16,11 @@ * */ -package org.onosproject.driver.rest; +package org.onosproject.drivers.ciena; import com.google.common.collect.Lists; import org.apache.commons.configuration.HierarchicalConfiguration; -import org.onosproject.driver.XmlConfigParser; +import org.onosproject.drivers.utilities.XmlConfigParser; import org.onosproject.net.AnnotationKeys; import org.onosproject.net.CltSignalType; import org.onosproject.net.DefaultAnnotations; diff --git a/drivers/src/main/java/org/onosproject/driver/rest/package-info.java b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/package-info.java similarity index 87% rename from drivers/src/main/java/org/onosproject/driver/rest/package-info.java rename to drivers/ciena/src/main/java/org/onosproject/drivers/ciena/package-info.java index 1fd813da28..e0d97c275a 100644 --- a/drivers/src/main/java/org/onosproject/driver/rest/package-info.java +++ b/drivers/ciena/src/main/java/org/onosproject/drivers/ciena/package-info.java @@ -15,6 +15,6 @@ */ /** - * Implementations of the REST driver behaviours. + * Package for Ciena device drivers. */ -package org.onosproject.driver.rest; \ No newline at end of file +package org.onosproject.drivers.ciena; \ No newline at end of file diff --git a/drivers/ciena/src/main/resources/ciena-drivers.xml b/drivers/ciena/src/main/resources/ciena-drivers.xml new file mode 100644 index 0000000000..fa3a0f0f7b --- /dev/null +++ b/drivers/ciena/src/main/resources/ciena-drivers.xml @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/drivers/default/features.xml b/drivers/default/features.xml new file mode 100644 index 0000000000..1dc6b2aa0e --- /dev/null +++ b/drivers/default/features.xml @@ -0,0 +1,26 @@ + + + + + onos-api + mvn:${project.groupId}/${project.artifactId}/${project.version} + + mvn:${project.groupId}/onos-of-api/${project.version} + + + diff --git a/drivers/default/pom.xml b/drivers/default/pom.xml new file mode 100644 index 0000000000..c77688a5ce --- /dev/null +++ b/drivers/default/pom.xml @@ -0,0 +1,42 @@ + + + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + Default device drivers + + onos-drivers + bundle + + + org.onosproject.drivers + + + + org.onosproject + onos-of-api + + + \ No newline at end of file diff --git a/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java b/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java new file mode 100644 index 0000000000..ad7d4a8aba --- /dev/null +++ b/drivers/default/src/main/java/org/onosproject/driver/DefaultDriversLoader.java @@ -0,0 +1,44 @@ +/* + * Copyright 2016 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.driver; + +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Service; +import org.onosproject.net.driver.AbstractDriverLoader; +import org.onosproject.net.driver.DefaultDriverProviderService; + +import java.io.InputStream; + +/** + * Loader for default device drivers from specific xml. + */ +@Service +@Component(immediate = true) +public class DefaultDriversLoader extends AbstractDriverLoader implements DefaultDriverProviderService { + + private static final String DRIVERS_XML = "/onos-drivers.xml"; + + @Override + protected InputStream loadXMLDriversStream() { + return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); + } + + @Override + protected ClassLoader getClassLoaderInstance() { + return getClass().getClassLoader(); + } +} diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java similarity index 99% rename from drivers/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java index 140a816794..b86b771f30 100644 --- a/drivers/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java +++ b/drivers/default/src/main/java/org/onosproject/driver/extensions/DefaultMoveExtensionTreatment.java @@ -15,15 +15,14 @@ */ package org.onosproject.driver.extensions; -import java.util.Map; -import java.util.Objects; - +import com.google.common.base.MoreObjects; +import com.google.common.collect.Maps; import org.onlab.util.KryoNamespace; import org.onosproject.net.flow.AbstractExtension; import org.onosproject.net.flow.instructions.ExtensionTreatmentType; -import com.google.common.base.MoreObjects; -import com.google.common.collect.Maps; +import java.util.Map; +import java.util.Objects; /** * Default implementation of Move treatment. diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/MoveExtensionTreatment.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/MoveExtensionTreatment.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/MoveExtensionTreatment.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/MoveExtensionTreatment.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionSelectorInterpreter.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionSelectorInterpreter.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionSelectorInterpreter.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionSelectorInterpreter.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraExtensionTreatmentInterpreter.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshContextHeader.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshContextHeader.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshContextHeader.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshContextHeader.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSi.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSi.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSi.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSi.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSpi.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSpi.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSpi.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMatchNshSpi.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraMoveTreatmentFactory.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMoveTreatmentFactory.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraMoveTreatmentFactory.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraMoveTreatmentFactory.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraResubmit.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraResubmit.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraResubmit.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraResubmit.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraResubmitTable.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraResubmitTable.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraResubmitTable.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraResubmitTable.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshContextHeader.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshContextHeader.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshContextHeader.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshContextHeader.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSi.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSi.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSi.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSi.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSpi.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSpi.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSpi.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetNshSpi.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetTunnelDst.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetTunnelDst.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/NiciraSetTunnelDst.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/NiciraSetTunnelDst.java diff --git a/drivers/src/main/java/org/onosproject/driver/extensions/package-info.java b/drivers/default/src/main/java/org/onosproject/driver/extensions/package-info.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/extensions/package-info.java rename to drivers/default/src/main/java/org/onosproject/driver/extensions/package-info.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/CalientFiberSwitchHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/CalientFiberSwitchHandshaker.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/CalientFiberSwitchHandshaker.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/CalientFiberSwitchHandshaker.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/CorsaSwitchHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/CorsaSwitchHandshaker.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/CorsaSwitchHandshaker.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/CorsaSwitchHandshaker.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/DefaultSwitchHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/DefaultSwitchHandshaker.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/DefaultSwitchHandshaker.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/DefaultSwitchHandshaker.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/NiciraSwitchHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/NiciraSwitchHandshaker.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/NiciraSwitchHandshaker.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/NiciraSwitchHandshaker.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitch13.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitch13.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitch13.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/OFOpticalSwitch13.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/OfOpticalSwitchImplLinc13.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/OfOpticalSwitchImplLinc13.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/OfOpticalSwitchImplLinc13.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/OfOpticalSwitchImplLinc13.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/OplinkRoadmHandshaker.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/OplinkRoadmHandshaker.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/OplinkRoadmHandshaker.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/OplinkRoadmHandshaker.java diff --git a/drivers/src/main/java/org/onosproject/driver/handshaker/package-info.java b/drivers/default/src/main/java/org/onosproject/driver/handshaker/package-info.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/handshaker/package-info.java rename to drivers/default/src/main/java/org/onosproject/driver/handshaker/package-info.java diff --git a/drivers/src/main/java/org/onosproject/driver/package-info.java b/drivers/default/src/main/java/org/onosproject/driver/package-info.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/package-info.java rename to drivers/default/src/main/java/org/onosproject/driver/package-info.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/CentecV350Pipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/CorsaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CorsaPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/CorsaPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/CorsaPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/CorsaPipelineV3.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CorsaPipelineV3.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/CorsaPipelineV3.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/CorsaPipelineV3.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/CpqdOFDPA2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/CpqdOFDPA2Pipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/CpqdOFDPA2Pipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/CpqdOFDPA2Pipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/DefaultSingleTablePipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OFDPA2GroupHandler.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2GroupHandler.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OFDPA2GroupHandler.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2GroupHandler.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java similarity index 99% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java index e4b7ef5297..1cfb9371c3 100644 --- a/drivers/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java +++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OFDPA2Pipeline.java @@ -34,7 +34,6 @@ import org.onlab.packet.VlanId; import org.onlab.util.KryoNamespace; import org.onosproject.core.ApplicationId; import org.onosproject.core.CoreService; -import org.onosproject.driver.pipeline.OFDPA2GroupHandler.OfdpaNextGroup; import org.onosproject.net.DeviceId; import org.onosproject.net.Port; import org.onosproject.net.PortNumber; @@ -113,7 +112,7 @@ public class OFDPA2Pipeline extends AbstractHandlerBehaviour implements Pipeline .register(KryoNamespaces.API) .register(GroupKey.class) .register(DefaultGroupKey.class) - .register(OfdpaNextGroup.class) + .register(OFDPA2GroupHandler.OfdpaNextGroup.class) .register(byte[].class) .register(ArrayDeque.class) .build(); diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OltPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OpenVSwitchPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OpenVSwitchPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OpenVSwitchPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OpenVSwitchPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OpenstackPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/OpenstackPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/OpenstackPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/OpenstackPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/PicaPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTP.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTPDell.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTPDell.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTPDell.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/SpringOpenTTPDell.java diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/package-info.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/package-info.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/pipeline/package-info.java rename to drivers/default/src/main/java/org/onosproject/driver/pipeline/package-info.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/CalientLambdaQuery.java b/drivers/default/src/main/java/org/onosproject/driver/query/CalientLambdaQuery.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/CalientLambdaQuery.java rename to drivers/default/src/main/java/org/onosproject/driver/query/CalientLambdaQuery.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/DefaultTributarySlotQuery.java b/drivers/default/src/main/java/org/onosproject/driver/query/DefaultTributarySlotQuery.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/DefaultTributarySlotQuery.java rename to drivers/default/src/main/java/org/onosproject/driver/query/DefaultTributarySlotQuery.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/FullMplsAvailable.java b/drivers/default/src/main/java/org/onosproject/driver/query/FullMplsAvailable.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/FullMplsAvailable.java rename to drivers/default/src/main/java/org/onosproject/driver/query/FullMplsAvailable.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/FullVlanAvailable.java b/drivers/default/src/main/java/org/onosproject/driver/query/FullVlanAvailable.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/FullVlanAvailable.java rename to drivers/default/src/main/java/org/onosproject/driver/query/FullVlanAvailable.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/LincOELambdaQuery.java b/drivers/default/src/main/java/org/onosproject/driver/query/LincOELambdaQuery.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/LincOELambdaQuery.java rename to drivers/default/src/main/java/org/onosproject/driver/query/LincOELambdaQuery.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java b/drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java rename to drivers/default/src/main/java/org/onosproject/driver/query/OFOpticalSwitch13LambdaQuery.java diff --git a/drivers/src/main/java/org/onosproject/driver/query/package-info.java b/drivers/default/src/main/java/org/onosproject/driver/query/package-info.java similarity index 100% rename from drivers/src/main/java/org/onosproject/driver/query/package-info.java rename to drivers/default/src/main/java/org/onosproject/driver/query/package-info.java diff --git a/drivers/src/main/resources/onos-drivers.xml b/drivers/default/src/main/resources/onos-drivers.xml similarity index 86% rename from drivers/src/main/resources/onos-drivers.xml rename to drivers/default/src/main/resources/onos-drivers.xml index fbc9662643..eb6075d8d9 100644 --- a/drivers/src/main/resources/onos-drivers.xml +++ b/drivers/default/src/main/resources/onos-drivers.xml @@ -21,17 +21,11 @@ impl="org.onosproject.driver.pipeline.DefaultSingleTablePipeline"/> - - - - - - - - - - - - - - - + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + Fujitsu device drivers + + onos-drivers-fujitsu + bundle + + + org.onosproject.drivers.fujitsu + + + \ No newline at end of file diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java new file mode 100644 index 0000000000..cb02af5d27 --- /dev/null +++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/FujitsuDriversLoader.java @@ -0,0 +1,41 @@ +/* + * Copyright 2016 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.drivers.fujitsu; + +import org.apache.felix.scr.annotations.Component; +import org.onosproject.net.driver.AbstractDriverLoader; + +import java.io.InputStream; + +/** + * Loader for Fujitsu device drivers from specific xml. + */ +@Component(immediate = true) +public class FujitsuDriversLoader extends AbstractDriverLoader { + + private static final String DRIVERS_XML = "/fujitsu-drivers.xml"; + + @Override + protected InputStream loadXMLDriversStream() { + return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); + } + + @Override + protected ClassLoader getClassLoaderInstance() { + return getClass().getClassLoader(); + } +} diff --git a/drivers/src/main/java/org/onosproject/driver/ovsdb/package-info.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/package-info.java similarity index 80% rename from drivers/src/main/java/org/onosproject/driver/ovsdb/package-info.java rename to drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/package-info.java index 8d878a50aa..a7ab66406a 100644 --- a/drivers/src/main/java/org/onosproject/driver/ovsdb/package-info.java +++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Open Networking Laboratory + * Copyright 2016 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. @@ -15,6 +15,6 @@ */ /** - * Implementations of OVSDB protocol configurations. + * Package for Ciena device drivers. */ -package org.onosproject.driver.ovsdb; \ No newline at end of file +package org.onosproject.drivers.fujitsu; \ No newline at end of file diff --git a/drivers/fujitsu/src/main/resources/onos-drivers.xml b/drivers/fujitsu/src/main/resources/onos-drivers.xml new file mode 100644 index 0000000000..ed741919fe --- /dev/null +++ b/drivers/fujitsu/src/main/resources/onos-drivers.xml @@ -0,0 +1,21 @@ + + + + + + + diff --git a/drivers/netconf/features.xml b/drivers/netconf/features.xml new file mode 100644 index 0000000000..ed1f431124 --- /dev/null +++ b/drivers/netconf/features.xml @@ -0,0 +1,28 @@ + + + + + + onos-api + mvn:${project.groupId}/${project.artifactId}/${project.version} + + mvn:${project.groupId}/onos-drivers-utilities/${project.version} + + mvn:${project.groupId}/onos-netconf-api/${project.version} + + diff --git a/drivers/netconf/pom.xml b/drivers/netconf/pom.xml new file mode 100644 index 0000000000..0235eaad47 --- /dev/null +++ b/drivers/netconf/pom.xml @@ -0,0 +1,50 @@ + + + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + onos-drivers-netconf + bundle + + Netconf device drivers + + + org.onosproject.drivers.netconf + + + + + org.onosproject + onos-netconf-api + ${project.version} + + + org.onosproject + onos-drivers-utilities + ${project.version} + + + + \ No newline at end of file diff --git a/drivers/src/main/java/org/onosproject/driver/netconf/NetconfConfigGetter.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigGetter.java similarity index 98% rename from drivers/src/main/java/org/onosproject/driver/netconf/NetconfConfigGetter.java rename to drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigGetter.java index f15b58c15c..4f42a9618b 100644 --- a/drivers/src/main/java/org/onosproject/driver/netconf/NetconfConfigGetter.java +++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfConfigGetter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.driver.netconf; +package org.onosproject.drivers.netconf; import com.google.common.base.Preconditions; import org.onosproject.net.DeviceId; @@ -31,7 +31,6 @@ import static org.slf4j.LoggerFactory.getLogger; /** * Gets the configuration of the specified type from the specified device. If a * failure occurs it returns the error string found in UNABLE_TO_READ_CONFIG. - * * This is a temporary development tool for use until yang integration is complete. * This is not a properly specified behavior implementation. DO NOT USE AS AN EXAMPLE. */ diff --git a/drivers/src/main/java/org/onosproject/driver/netconf/NetconfControllerConfig.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java similarity index 97% rename from drivers/src/main/java/org/onosproject/driver/netconf/NetconfControllerConfig.java rename to drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java index 4b8106976e..85a0dd81d0 100644 --- a/drivers/src/main/java/org/onosproject/driver/netconf/NetconfControllerConfig.java +++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfControllerConfig.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package org.onosproject.driver.netconf; +package org.onosproject.drivers.netconf; import com.google.common.base.Preconditions; -import org.onosproject.driver.XmlConfigParser; +import org.onosproject.drivers.utilities.XmlConfigParser; import org.onosproject.net.DeviceId; import org.onosproject.net.behaviour.ControllerConfig; import org.onosproject.net.behaviour.ControllerInfo; diff --git a/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java new file mode 100644 index 0000000000..30c87582f1 --- /dev/null +++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/NetconfDriversLoader.java @@ -0,0 +1,41 @@ +/* + * Copyright 2016 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.drivers.netconf; + +import org.apache.felix.scr.annotations.Component; +import org.onosproject.net.driver.AbstractDriverLoader; + +import java.io.InputStream; + +/** + * Loader for NETCONF device drivers from specific xml. + */ +@Component(immediate = true) +public class NetconfDriversLoader extends AbstractDriverLoader { + + private static final String DRIVERS_XML = "/netconf-drivers.xml"; + + @Override + protected InputStream loadXMLDriversStream() { + return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); + } + + @Override + protected ClassLoader getClassLoaderInstance() { + return getClass().getClassLoader(); + } +} diff --git a/drivers/src/main/java/org/onosproject/driver/netconf/package-info.java b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/package-info.java similarity index 80% rename from drivers/src/main/java/org/onosproject/driver/netconf/package-info.java rename to drivers/netconf/src/main/java/org/onosproject/drivers/netconf/package-info.java index 200312b479..1ff58b5745 100644 --- a/drivers/src/main/java/org/onosproject/driver/netconf/package-info.java +++ b/drivers/netconf/src/main/java/org/onosproject/drivers/netconf/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Open Networking Laboratory + * Copyright 2016 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. @@ -15,6 +15,6 @@ */ /** - * Implementations of the Netconf driver behaviours. + * Package for NETCONF device drivers. */ -package org.onosproject.driver.netconf; \ No newline at end of file +package org.onosproject.drivers.netconf; \ No newline at end of file diff --git a/drivers/netconf/src/main/resources/netconf-drivers.xml b/drivers/netconf/src/main/resources/netconf-drivers.xml new file mode 100644 index 0000000000..dc54612805 --- /dev/null +++ b/drivers/netconf/src/main/resources/netconf-drivers.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + diff --git a/drivers/src/main/resources/org/onosproject/driver/controllers.xml b/drivers/netconf/src/main/resources/org/onosproject/drivers/netconf/controllers.xml similarity index 100% rename from drivers/src/main/resources/org/onosproject/driver/controllers.xml rename to drivers/netconf/src/main/resources/org/onosproject/drivers/netconf/controllers.xml diff --git a/drivers/features.xml b/drivers/ovsdb/features.xml similarity index 80% rename from drivers/features.xml rename to drivers/ovsdb/features.xml index 0c0867861f..981a24d3db 100644 --- a/drivers/features.xml +++ b/drivers/ovsdb/features.xml @@ -1,6 +1,7 @@ + + onos-api mvn:${project.groupId}/${project.artifactId}/${project.version} - mvn:${project.groupId}/onos-of-api/${project.version} mvn:${project.groupId}/onos-ovsdb-api/${project.version} mvn:${project.groupId}/onos-ovsdb-rfc/${project.version} - - mvn:${project.groupId}/onos-netconf-api/${project.version} - - mvn:${project.groupId}/onos-restsb-api/${project.version} diff --git a/drivers/ovsdb/pom.xml b/drivers/ovsdb/pom.xml new file mode 100644 index 0000000000..fcff99d319 --- /dev/null +++ b/drivers/ovsdb/pom.xml @@ -0,0 +1,51 @@ + + + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + onos-drivers-ovsdb + bundle + + ovsdb device drivers + + + org.onosproject.drivers.ovsdb + + + + + org.onosproject + onos-ovsdb-api + ${project.version} + + + org.onosproject + onos-ovsdb-api + ${project.version} + tests + test + + + \ No newline at end of file diff --git a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbBridgeConfig.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbBridgeConfig.java similarity index 98% rename from drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbBridgeConfig.java rename to drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbBridgeConfig.java index 9a2a1a8392..e692eeb977 100644 --- a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbBridgeConfig.java +++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbBridgeConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Open Networking Laboratory + * Copyright 2016 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. @@ -13,13 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.onosproject.driver.ovsdb; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; +package org.onosproject.drivers.ovsdb; import org.onlab.packet.IpAddress; import org.onosproject.net.DefaultAnnotations; @@ -40,6 +35,12 @@ import org.onosproject.ovsdb.controller.OvsdbController; import org.onosproject.ovsdb.controller.OvsdbNodeId; import org.onosproject.ovsdb.controller.OvsdbPort; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + /** * The implementation of BridageConfig. */ diff --git a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbControllerConfig.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfig.java similarity index 98% rename from drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbControllerConfig.java rename to drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfig.java index f116ab847e..b04d56654f 100644 --- a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbControllerConfig.java +++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Open Networking Laboratory + * Copyright 2016 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.driver.ovsdb; +package org.onosproject.drivers.ovsdb; import com.google.common.collect.ImmutableSet; import org.onlab.packet.IpAddress; diff --git a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java new file mode 100644 index 0000000000..d3b127adc3 --- /dev/null +++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbDriversLoader.java @@ -0,0 +1,41 @@ +/* + * Copyright 2016 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.drivers.ovsdb; + +import org.apache.felix.scr.annotations.Component; +import org.onosproject.net.driver.AbstractDriverLoader; + +import java.io.InputStream; + +/** + * Loader for OVSDB device drivers from specific xml. + */ +@Component(immediate = true) +public class OvsdbDriversLoader extends AbstractDriverLoader { + + private static final String DRIVERS_XML = "/ovsdb-drivers.xml"; + + @Override + protected InputStream loadXMLDriversStream() { + return getClassLoaderInstance().getResourceAsStream(DRIVERS_XML); + } + + @Override + protected ClassLoader getClassLoaderInstance() { + return getClass().getClassLoader(); + } +} diff --git a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbTunnelConfig.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java similarity index 98% rename from drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbTunnelConfig.java rename to drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java index ad90ca445b..455c3ab16a 100644 --- a/drivers/src/main/java/org/onosproject/driver/ovsdb/OvsdbTunnelConfig.java +++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/OvsdbTunnelConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Open Networking Laboratory + * Copyright 2016 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. @@ -13,12 +13,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.onosproject.driver.ovsdb; -import java.util.Collection; -import java.util.Map; -import java.util.Set; -import java.util.stream.Collectors; +package org.onosproject.drivers.ovsdb; import org.onlab.packet.IpAddress; import org.onosproject.net.DefaultAnnotations; @@ -36,6 +32,11 @@ import org.onosproject.ovsdb.controller.OvsdbController; import org.onosproject.ovsdb.controller.OvsdbNodeId; import org.onosproject.ovsdb.controller.OvsdbTunnel; +import java.util.Collection; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + /** * OVSDB-based implementation of tunnel config behaviour. */ diff --git a/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/package-info.java b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/package-info.java new file mode 100644 index 0000000000..8d81f543f0 --- /dev/null +++ b/drivers/ovsdb/src/main/java/org/onosproject/drivers/ovsdb/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2016 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 for OVSDB device drivers. + */ +package org.onosproject.drivers.ovsdb; \ No newline at end of file diff --git a/drivers/ovsdb/src/main/resources/ovsdb-drivers.xml b/drivers/ovsdb/src/main/resources/ovsdb-drivers.xml new file mode 100644 index 0000000000..a32c614b59 --- /dev/null +++ b/drivers/ovsdb/src/main/resources/ovsdb-drivers.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/drivers/src/test/java/org/onosproject/driver/ovsdb/OvsdbControllerConfigTest.java b/drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfigTest.java similarity index 98% rename from drivers/src/test/java/org/onosproject/driver/ovsdb/OvsdbControllerConfigTest.java rename to drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfigTest.java index 74aae4c522..c943a41d0d 100644 --- a/drivers/src/test/java/org/onosproject/driver/ovsdb/OvsdbControllerConfigTest.java +++ b/drivers/ovsdb/src/test/java/org/onosproject/drivers/ovsdb/OvsdbControllerConfigTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.driver.ovsdb; +package org.onosproject.drivers.ovsdb; import com.google.common.collect.ImmutableMap; import org.junit.Before; diff --git a/drivers/pom.xml b/drivers/pom.xml index c09b657b7b..03514ff10b 100644 --- a/drivers/pom.xml +++ b/drivers/pom.xml @@ -19,7 +19,6 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 - org.onosproject onos @@ -27,14 +26,23 @@ ../pom.xml - onos-drivers - bundle + onos-drivers-general + pom - Builtin device drivers + Builtin device drivers general module - + + default + ciena + fujitsu + netconf + ovsdb + utilities + + + @@ -47,37 +55,16 @@ onos-api - - org.onosproject - onos-of-api - - org.onosproject onos-core-serializers ${project.version} - - org.onosproject - onos-ovsdb-api - ${project.version} - org.easymock easymock test - - org.onosproject - onos-restsb-api - ${project.version} - - - org.onosproject - onos-netconf-api - ${project.version} - - org.apache.felix org.apache.felix.scr.annotations @@ -94,13 +81,6 @@ onlab-junit test - - org.onosproject - onos-ovsdb-api - ${project.version} - tests - test - diff --git a/drivers/utilities/features.xml b/drivers/utilities/features.xml new file mode 100644 index 0000000000..fc2e905beb --- /dev/null +++ b/drivers/utilities/features.xml @@ -0,0 +1,25 @@ + + + + + + + onos-api + mvn:${project.groupId}/${project.artifactId}/${project.version} + + diff --git a/drivers/utilities/pom.xml b/drivers/utilities/pom.xml new file mode 100644 index 0000000000..f498a47c97 --- /dev/null +++ b/drivers/utilities/pom.xml @@ -0,0 +1,33 @@ + + + + + + onos-drivers-general + org.onosproject + 1.5.0-SNAPSHOT + + 4.0.0 + + Device drivers utilities + + onos-drivers-utilities + bundle + + \ No newline at end of file diff --git a/drivers/src/main/java/org/onosproject/driver/XmlConfigParser.java b/drivers/utilities/src/main/java/org/onosproject/drivers/utilities/XmlConfigParser.java similarity index 99% rename from drivers/src/main/java/org/onosproject/driver/XmlConfigParser.java rename to drivers/utilities/src/main/java/org/onosproject/drivers/utilities/XmlConfigParser.java index a5a059533b..5541461fdc 100644 --- a/drivers/src/main/java/org/onosproject/driver/XmlConfigParser.java +++ b/drivers/utilities/src/main/java/org/onosproject/drivers/utilities/XmlConfigParser.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.driver; +package org.onosproject.drivers.utilities; import com.google.common.collect.Lists; import org.apache.commons.configuration.ConfigurationException; diff --git a/drivers/utilities/src/main/java/org/onosproject/drivers/utilities/package-info.java b/drivers/utilities/src/main/java/org/onosproject/drivers/utilities/package-info.java new file mode 100644 index 0000000000..a4fc8a1514 --- /dev/null +++ b/drivers/utilities/src/main/java/org/onosproject/drivers/utilities/package-info.java @@ -0,0 +1,20 @@ +/* + * Copyright 2016 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 for device drivers utilities. + */ +package org.onosproject.drivers.utilities; \ No newline at end of file diff --git a/drivers/utilities/src/main/resources/controllers.xml b/drivers/utilities/src/main/resources/controllers.xml new file mode 100644 index 0000000000..21e4dd14c5 --- /dev/null +++ b/drivers/utilities/src/main/resources/controllers.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/drivers/src/test/java/org/onosproject/driver/XmlConfigParserTest.java b/drivers/utilities/src/test/java/org/onosproject/drivers/utilities/XmlConfigParserTest.java similarity index 54% rename from drivers/src/test/java/org/onosproject/driver/XmlConfigParserTest.java rename to drivers/utilities/src/test/java/org/onosproject/drivers/utilities/XmlConfigParserTest.java index 40a3b518e5..9c2735cda2 100644 --- a/drivers/src/test/java/org/onosproject/driver/XmlConfigParserTest.java +++ b/drivers/utilities/src/test/java/org/onosproject/drivers/utilities/XmlConfigParserTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.onosproject.driver; +package org.onosproject.drivers.utilities; import org.junit.Test; import org.onlab.packet.IpAddress; @@ -27,7 +27,6 @@ import java.util.Arrays; import java.util.List; import static org.junit.Assert.assertTrue; -import static org.onosproject.driver.XmlConfigParser.*; /** * Test the XML document Parsing for netconf configuration. @@ -37,8 +36,9 @@ public class XmlConfigParserTest { @Test public void basics() throws IOException { - InputStream stream = getClass().getResourceAsStream("testConfig.xml"); - List controllers = parseStreamControllers(loadXml(stream)); + InputStream stream = getClass().getResourceAsStream("/testConfig.xml"); + List controllers = XmlConfigParser + .parseStreamControllers(XmlConfigParser.loadXml(stream)); assertTrue(controllers.get(0).equals(new ControllerInfo( IpAddress.valueOf("10.128.12.1"), 6653, "tcp"))); assertTrue(controllers.get(1).equals(new ControllerInfo( @@ -48,28 +48,34 @@ public class XmlConfigParserTest { @Test public void switchId() { - InputStream stream = getClass().getResourceAsStream("testConfig.xml"); - String switchId = parseSwitchId(loadXml(stream)); + InputStream stream = getClass().getResourceAsStream("/testConfig.xml"); + String switchId = XmlConfigParser.parseSwitchId(XmlConfigParser + .loadXml(stream)); assertTrue(switchId.equals("ofc-bridge")); } @Test public void capableSwitchId() { - InputStream stream = getClass().getResourceAsStream("testConfig.xml"); - String capableSwitchId = parseCapableSwitchId(loadXml(stream)); + InputStream stream = getClass().getResourceAsStream("/testConfig.xml"); + String capableSwitchId = XmlConfigParser + .parseCapableSwitchId(XmlConfigParser.loadXml(stream)); assertTrue(capableSwitchId.equals("openvswitch")); } @Test public void controllersConfig() { - InputStream streamOrig = getClass().getResourceAsStream("testConfig.xml"); - InputStream streamCFG = XmlConfigParser.class - .getResourceAsStream("controllers.xml"); - String config = createControllersConfig(loadXml(streamCFG), - loadXml(streamOrig), "running", "merge", - "create", new ArrayList<>(Arrays.asList( - new ControllerInfo(IpAddress.valueOf("192.168.1.1"), - 5000, "tcp")))); + InputStream streamOrig = getClass().getResourceAsStream("/testConfig.xml"); + InputStream streamCFG = XmlConfigParser.class.getResourceAsStream("/controllers.xml"); + String config = XmlConfigParser + .createControllersConfig(XmlConfigParser.loadXml(streamCFG), + XmlConfigParser.loadXml(streamOrig), + "running", "merge", "create", + new ArrayList<>( + Arrays.asList( + new ControllerInfo( + IpAddress.valueOf( + "192.168.1.1"), + 5000, "tcp")))); assertTrue(config.contains("192.168.1.1")); assertTrue(config.contains("tcp")); assertTrue(config.contains("5000")); diff --git a/drivers/src/test/resources/org/onosproject/driver/testConfig.xml b/drivers/utilities/src/test/resources/testConfig.xml similarity index 100% rename from drivers/src/test/resources/org/onosproject/driver/testConfig.xml rename to drivers/utilities/src/test/resources/testConfig.xml diff --git a/providers/netconf/app/app.xml b/providers/netconf/app/app.xml index 2b1ef1a823..4d63a4ae2c 100644 --- a/providers/netconf/app/app.xml +++ b/providers/netconf/app/app.xml @@ -15,16 +15,13 @@ ~ limitations under the License. --> ${project.description} mvn:${project.groupId}/onos-netconf-api/${project.version} mvn:${project.groupId}/onos-netconf-ctl/${project.version} - mvn:${project.groupId}/onos-drivers/${project.version} mvn:${project.groupId}/onos-netconf-provider-device/${project.version} - - diff --git a/providers/netconf/app/features.xml b/providers/netconf/app/features.xml index e032f4da03..de810a8b2c 100644 --- a/providers/netconf/app/features.xml +++ b/providers/netconf/app/features.xml @@ -23,7 +23,6 @@ mvn:${project.groupId}/onos-netconf-ctl/${project.version} mvn:${project.groupId}/onos-netconf-provider-device/${project.version} - diff --git a/providers/ovsdb/base/app.xml b/providers/ovsdb/base/app.xml index 8e7795901d..c8dbc0954d 100644 --- a/providers/ovsdb/base/app.xml +++ b/providers/ovsdb/base/app.xml @@ -22,7 +22,7 @@ mvn:${project.groupId}/onos-ovsdb-rfc/${project.version} mvn:${project.groupId}/onos-ovsdb-api/${project.version} mvn:${project.groupId}/onos-ovsdb-ctl/${project.version} - mvn:${project.groupId}/onos-drivers/${project.version} + mvn:${project.groupId}/onos-drivers-ovsdb/${project.version} mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version} mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version} diff --git a/providers/ovsdb/base/features.xml b/providers/ovsdb/base/features.xml index 8f5a01a460..a4b61f24dd 100644 --- a/providers/ovsdb/base/features.xml +++ b/providers/ovsdb/base/features.xml @@ -27,6 +27,8 @@ mvn:${project.groupId}/onos-ovsdb-api/${project.version} mvn:${project.groupId}/onos-ovsdb-ctl/${project.version} + mvn:${project.groupId}/onos-drivers-ovsdb/${project.version} + mvn:${project.groupId}/onos-ovsdb-provider-device/${project.version} mvn:${project.groupId}/onos-ovsdb-provider-tunnel/${project.version} diff --git a/providers/ovsdb/base/pom.xml b/providers/ovsdb/base/pom.xml index 9b53ca8ca2..6f019e91f0 100644 --- a/providers/ovsdb/base/pom.xml +++ b/providers/ovsdb/base/pom.xml @@ -49,7 +49,7 @@ org.onosproject - onos-drivers + onos-drivers-ovsdb ${project.version} diff --git a/providers/rest/app/app.xml b/providers/rest/app/app.xml index a97d44b710..b24cd36eb6 100644 --- a/providers/rest/app/app.xml +++ b/providers/rest/app/app.xml @@ -15,13 +15,12 @@ ~ limitations under the License. --> ${project.description} mvn:${project.groupId}/onos-restsb-api/${project.version} mvn:${project.groupId}/onos-restsb-ctl/${project.version} - mvn:${project.groupId}/onos-drivers/${project.version} mvn:${project.groupId}/onos-restsb-provider-device/${project.version}