From cbe4871cddf78adab335b5270269b6e704eb8bf9 Mon Sep 17 00:00:00 2001 From: Michal Rehak Date: Mon, 14 Apr 2014 18:35:03 +0200 Subject: [PATCH] changes for config subsystem - BUG 754 integration - issue with initialization pending added sal generator changed SPI - SwitchConnectionProvider has 1:1 bound with ServerFacade extended yang model of SwitchConnectionProvider configuration restored exported packages for osgi restored documentation generator changed API in order to use ListenableFuture instead of plain Future Change-Id: Ic21e3a0c1fd64584d98485567c26095674291548 Signed-off-by: Basheeruddin Ahmed Signed-off-by: Michal Rehak --- openflow-protocol-api/pom.xml | 3 - openflow-protocol-impl/pom.xml | 82 +++++++++-- .../protocol/impl/connection/Activator.java | 48 ------ .../SwitchConnectionProviderImpl.java | 105 ++++++-------- .../SwitchConnectionProviderModule.java | 137 ++++++++++++++++++ ...SwitchConnectionProviderModuleFactory.java | 19 +++ ...nflow-switch-connection-provider-impl.yang | 50 +++++++ .../openflow-switch-connection-provider.yang | 20 +++ .../impl/integration/IntegrationTest.java | 9 +- .../connection/SwitchConnectionProvider.java | 20 ++- pom.xml | 15 +- 11 files changed, 367 insertions(+), 141 deletions(-) delete mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModule.java create mode 100644 openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModuleFactory.java create mode 100644 openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider-impl.yang create mode 100644 openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider.yang diff --git a/openflow-protocol-api/pom.xml b/openflow-protocol-api/pom.xml index eb6615a9..099ca0a8 100644 --- a/openflow-protocol-api/pom.xml +++ b/openflow-protocol-api/pom.xml @@ -14,8 +14,6 @@ - 0.6.2-SNAPSHOT - 0.6.2-SNAPSHOT 0.6.2-SNAPSHOT @@ -24,7 +22,6 @@ org.opendaylight.yangtools yang-maven-plugin - ${yangtools.version} diff --git a/openflow-protocol-impl/pom.xml b/openflow-protocol-impl/pom.xml index ad813c8c..27f66695 100644 --- a/openflow-protocol-impl/pom.xml +++ b/openflow-protocol-impl/pom.xml @@ -12,20 +12,77 @@ https://wiki.opendaylight.org/view/Openflow_Protocol_Library:Main HEAD + + + 0.6.2-SNAPSHOT + 0.6.2-SNAPSHOT + 0.6.2-SNAPSHOT + - org.apache.felix - maven-bundle-plugin - - - - org.opendaylight.openflowjava.protocol.impl.connection.Activator - - org.opendaylight.openflowjava.protocol.impl.* - - + org.apache.felix + maven-bundle-plugin + true + + + + org.opendaylight.openflowjava.protocol.impl.*, + org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow._switch.connection.provider.* + + + + + + org.opendaylight.yangtools + yang-maven-plugin + + + + generate-sources + + + + + + org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator + + ${project.build.directory}/generated-sources/config + + + urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang + + + + + + org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl + + ${project.build.directory}/generated-sources/sal + + + org.opendaylight.yangtools.yang.unified.doc.generator.maven.DocumentationGeneratorImpl + ${project.build.directory}/site/models + + + true + + + + + + org.opendaylight.controller + yang-jmx-generator-plugin + ${config.version} + + + org.opendaylight.yangtools + maven-sal-api-gen-plugin + ${yangtools.generator.version} + jar + + @@ -83,5 +140,10 @@ org.mockito mockito-all + + org.opendaylight.controller + config-api + 0.2.5-SNAPSHOT + diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java deleted file mode 100644 index f028d787..00000000 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/Activator.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2013 Pantheon Technologies s.r.o. 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.openflowjava.protocol.impl.connection; - -import java.util.Hashtable; - -import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - - -/** - * Activates library bundle, exposes provided implementations: - *
    - *
  • {@link SwitchConnectionProviderImpl}
  • - *
- * - * @author mirehak - */ -public class Activator implements BundleActivator { - - private static final Logger LOG = LoggerFactory.getLogger(Activator.class); - - @Override - public void start(BundleContext context) throws Exception { - LOG.debug("starting OF Library"); - Hashtable props = new Hashtable<>(); - props.put("type", "default"); - context.registerService( - SwitchConnectionProvider.class.getName(), - new SwitchConnectionProviderImpl(), props); - LOG.debug("started OF Library"); - } - - @Override - public void stop(BundleContext context) throws Exception { - LOG.debug("stopping OF Library"); - //TODO:: add teardown activities (check, if servers are running, stop if necessary..) - } -} diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java index d9e9f64e..3e45b174 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/connection/SwitchConnectionProviderImpl.java @@ -9,11 +9,6 @@ package org.opendaylight.openflowjava.protocol.impl.connection; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.List; -import java.util.Set; import java.util.concurrent.Future; import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfiguration; @@ -24,7 +19,6 @@ import org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionPro import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; @@ -38,22 +32,12 @@ public class SwitchConnectionProviderImpl implements SwitchConnectionProvider { private static final Logger LOGGER = LoggerFactory .getLogger(SwitchConnectionProviderImpl.class); private SwitchConnectionHandler switchConnectionHandler; - private Set serverLot; + private ServerFacade serverFacade; + private ConnectionConfiguration connConfig; @Override - public void configure(Collection connConfigs) { - LOGGER.debug("Configuring .."); - - //TODO - configure servers according to configuration - serverLot = new HashSet<>(); - for (ConnectionConfiguration connConfig : connConfigs) { - TcpHandler server = new TcpHandler(connConfig.getAddress(), connConfig.getPort()); - server.setSwitchConnectionHandler(switchConnectionHandler); - server.setSwitchIdleTimeout(connConfig.getSwitchIdleTimeout()); - boolean tlsSupported = FEATURE_SUPPORT.REQUIRED.equals(connConfig.getTlsSupport()); - server.setEncryption(tlsSupported); - serverLot.add(server); - } + public void setConfiguration(ConnectionConfiguration connConfig) { + this.connConfig = connConfig; } @Override @@ -63,68 +47,63 @@ public class SwitchConnectionProviderImpl implements SwitchConnectionProvider { } @Override - public Future> shutdown() { + public ListenableFuture shutdown() { LOGGER.debug("Shutdown summoned"); - ListenableFuture> result = SettableFuture.create(); - try { - List> shutdownChain = new ArrayList<>(); - for (ServerFacade server : serverLot) { - ListenableFuture shutdownFuture = server.shutdown(); - shutdownChain.add(shutdownFuture); - } - if (!shutdownChain.isEmpty()) { - result = Futures.allAsList(shutdownChain); - } else { - throw new IllegalStateException("No servers configured"); - } - } catch (Exception e) { - SettableFuture> exFuture = SettableFuture.create(); - exFuture.setException(e); - result = exFuture; - } + //TODO: provide exception in case of: not started, not configured (already stopped) + ListenableFuture result = serverFacade.shutdown(); return result; } @Override - public Future> startup() { - LOGGER.debug("startup summoned"); - ListenableFuture> result = SettableFuture.create(); + public ListenableFuture startup() { + LOGGER.debug("Startup summoned"); + serverFacade = createAndConfigureServer(); + + LOGGER.debug("Starting .."); + ListenableFuture result = null; try { - if (serverLot.isEmpty()) { - throw new IllegalStateException("No servers configured"); + if (serverFacade == null) { + throw new IllegalStateException("No server configured"); } - for (ServerFacade server : serverLot) { - if (server.getIsOnlineFuture().isDone()) { - throw new IllegalStateException("Servers already running"); - } + if (serverFacade.getIsOnlineFuture().isDone()) { + throw new IllegalStateException("Server already running"); } if (switchConnectionHandler == null) { throw new IllegalStateException("switchConnectionHandler is not set"); } - List> starterChain = new ArrayList<>(); - for (ServerFacade server : serverLot) { - new Thread(server).start(); - ListenableFuture isOnlineFuture = server.getIsOnlineFuture(); - starterChain.add(isOnlineFuture); - } - if (!starterChain.isEmpty()) { - result = Futures.allAsList(starterChain); - } else { - throw new IllegalStateException("No servers configured"); - } + new Thread(serverFacade).start(); + result = serverFacade.getIsOnlineFuture(); } catch (Exception e) { - SettableFuture> exFuture = SettableFuture.create(); - exFuture.setException(e); - result = exFuture; + SettableFuture exResult = SettableFuture.create(); + exResult.setException(e); + result = exResult; } return result; } + /** + * @return + */ + private TcpHandler createAndConfigureServer() { + LOGGER.debug("Configuring .."); + TcpHandler server = new TcpHandler(connConfig.getAddress(), connConfig.getPort()); + server.setSwitchConnectionHandler(switchConnectionHandler); + server.setSwitchIdleTimeout(connConfig.getSwitchIdleTimeout()); + boolean tlsSupported = FEATURE_SUPPORT.REQUIRED.equals(connConfig.getTlsSupport()); + server.setEncryption(tlsSupported); + + return server; + } + /** * @return servers */ - public Set getServerLot() { - return serverLot; + public ServerFacade getServerFacade() { + return serverFacade; } + @Override + public void close() throws Exception { + shutdown(); + } } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModule.java b/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModule.java new file mode 100644 index 00000000..6dbdef09 --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModule.java @@ -0,0 +1,137 @@ +/** +* Generated file + +* Generated from: yang module name: openflow-switch-connection-provider-impl yang module local name: openflow-switch-connection-provider-impl +* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator +* Generated at: Fri Mar 28 17:50:58 PDT 2014 +* +* Do not modify this file unless it is present under src/main directory +*/ +package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow._switch.connection.provider.impl.rev140328; + +import java.net.InetAddress; +import java.net.UnknownHostException; + +import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfiguration; +import org.opendaylight.openflowjava.protocol.impl.connection.SwitchConnectionProviderImpl; +import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** +* +*/ +public final class SwitchConnectionProviderModule extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow._switch.connection.provider.impl.rev140328.AbstractSwitchConnectionProviderModule + { + + private static Logger LOG = LoggerFactory + .getLogger(SwitchConnectionProviderModule.class); + + /** + * @param identifier + * @param dependencyResolver + */ + public SwitchConnectionProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); + } + + /** + * @param identifier + * @param dependencyResolver + * @param oldModule + * @param oldInstance + */ + public SwitchConnectionProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, + SwitchConnectionProviderModule oldModule, java.lang.AutoCloseable oldInstance) { + super(identifier, dependencyResolver, oldModule, oldInstance); + } + + @Override + protected void customValidation(){ + // Add custom validation for module attributes here. + } + + @Override + public java.lang.AutoCloseable createInstance() { + LOG.info("SwitchConnectionProvider started."); + SwitchConnectionProviderImpl switchConnectionProviderImpl = new SwitchConnectionProviderImpl(); + try { + ConnectionConfiguration connConfiguration = createConnectionConfiguration(); + switchConnectionProviderImpl.setConfiguration(connConfiguration); + } catch (UnknownHostException e) { + throw new IllegalArgumentException(e.getMessage(), e); + } + return switchConnectionProviderImpl; + } + + /** + * @return + * @throws UnknownHostException + */ + private ConnectionConfiguration createConnectionConfiguration() throws UnknownHostException { + final InetAddress address = extractIpAddressBin(getAddress()); + final Integer port = getPort(); + final long switchIdleTimeout = getSwitchIdleTimeout(); + + return new ConnectionConfiguration() { + @Override + public InetAddress getAddress() { + return address; + } + @Override + public int getPort() { + return port; + } + @Override + public Object getTransferProtocol() { + // TODO Auto-generated method stub + return null; + } + @Override + public FEATURE_SUPPORT getTlsSupport() { + // TODO Auto-generated method stub + return null; + } + @Override + public long getSwitchIdleTimeout() { + return switchIdleTimeout; + } + @Override + public Object getSslContext() { + // TODO Auto-generated method stub + return null; + } + }; + } + + /** + * @param address + * @return + * @throws UnknownHostException + */ + private static InetAddress extractIpAddressBin(IpAddress address) throws UnknownHostException { + byte[] addressBin = null; + if (address != null) { + if (address.getIpv4Address() != null) { + addressBin = address2bin(address.getIpv4Address().getValue()); + } else if (address.getIpv6Address() != null) { + addressBin = address2bin(address.getIpv6Address().getValue()); + } + } + + if (addressBin == null) { + return null; + } else { + return InetAddress.getByAddress(addressBin); + } + } + + /** + * @param value + * @return + */ + private static byte[] address2bin(String value) { + //TODO: translate ipv4 or ipv6 into byte[] + return null; + } +} diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModuleFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModuleFactory.java new file mode 100644 index 00000000..6bf14239 --- /dev/null +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/params/xml/ns/yang/openflow/_switch/connection/provider/impl/rev140328/SwitchConnectionProviderModuleFactory.java @@ -0,0 +1,19 @@ +/** +* Generated file + +* Generated from: yang module name: openflow-switch-connection-provider-impl yang module local name: openflow-switch-connection-provider-impl +* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator +* Generated at: Fri Mar 28 17:50:58 PDT 2014 +* +* Do not modify this file unless it is present under src/main directory +*/ +package org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow._switch.connection.provider.impl.rev140328; + +/** +* +*/ +public class SwitchConnectionProviderModuleFactory extends org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow._switch.connection.provider.impl.rev140328.AbstractSwitchConnectionProviderModuleFactory +{ + + +} diff --git a/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider-impl.yang b/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider-impl.yang new file mode 100644 index 00000000..ddd6ebd1 --- /dev/null +++ b/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider-impl.yang @@ -0,0 +1,50 @@ +module openflow-switch-connection-provider-impl { + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider:impl"; + prefix "openflow-switch-connection-provider-impl"; + + import config {prefix config; revision-date 2013-04-05; } + import openflow-switch-connection-provider {prefix openflow-switch-connection-provider; revision-date 2014-03-28; } + import ietf-inet-types {prefix ietf-inet; revision-date 2010-09-24; } + + description + "openflow-switch-connection-provider"; + + revision "2014-03-28" { + description + "Initial revision"; + } + + identity openflow-switch-connection-provider-impl { + base "config:module-type"; + config:provided-service openflow-switch-connection-provider:openflow-switch-connection-provider; + config:java-name-prefix SwitchConnectionProvider; + } + + + augment "/config:modules/config:module/config:configuration" { + case openflow-switch-connection-provider-impl { + when "/config:modules/config:module/config:type = 'openflow-switch-connection-provider-impl'"; + + leaf port { + description "local listening port"; + type uint16; + mandatory true; + } + leaf address { + description "address of local listening interface"; + type ietf-inet:ip-address; + } + leaf switch-idle-timeout { + description "idle timeout in [ms]"; + type uint32; + mandatory true; + } + leaf tls-support { + description "tls support enabled (requires SSL-context / keystore)"; + type boolean; + default false; + } + } + } +} \ No newline at end of file diff --git a/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider.yang b/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider.yang new file mode 100644 index 00000000..88d2427f --- /dev/null +++ b/openflow-protocol-impl/src/main/yang/openflow-switch-connection-provider.yang @@ -0,0 +1,20 @@ +module openflow-switch-connection-provider { + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:openflow:switch:connection:provider"; + prefix "openflow-switch-connection-provider"; + + import config {prefix config; revision-date 2013-04-05; } + + description + "openflow-switch-connection-provider service definitions"; + + revision "2014-03-28" { + description + "Initial revision"; + } + + identity openflow-switch-connection-provider { + base "config:service-type"; + config:java-class "org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider"; + } +} \ No newline at end of file diff --git a/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/IntegrationTest.java b/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/IntegrationTest.java index 2627d61f..2a7a8976 100644 --- a/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/IntegrationTest.java +++ b/openflow-protocol-it/src/test/java/org/opendaylight/openflowjava/protocol/impl/integration/IntegrationTest.java @@ -48,7 +48,7 @@ public class IntegrationTest { private InetAddress startupAddress; private MockPlugin mockPlugin; private SwitchConnectionProviderImpl scpimpl; - private List configs; + private TestingConnConfigImpl configs; /** * @throws Exception @@ -60,11 +60,10 @@ public class IntegrationTest { mockPlugin = new MockPlugin(); scpimpl = new SwitchConnectionProviderImpl(); scpimpl.setSwitchConnectionHandler(mockPlugin); - configs = new ArrayList<>(); - configs.add(new TestingConnConfigImpl(startupAddress, 0, DEFAULT_TLS_SUPPORT, SWITCH_IDLE_TIMEOUT)); - scpimpl.configure(configs); + configs = new TestingConnConfigImpl(startupAddress, 0, DEFAULT_TLS_SUPPORT, SWITCH_IDLE_TIMEOUT); + scpimpl.setConfiguration(configs); scpimpl.startup().get(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS); - TcpHandler server = (TcpHandler) scpimpl.getServerLot().iterator().next(); + TcpHandler server = (TcpHandler) scpimpl.getServerFacade(); port = server.getPort(); } diff --git a/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java b/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java index 0465ab4e..56766a7b 100644 --- a/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java +++ b/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/connection/SwitchConnectionProvider.java @@ -9,41 +9,39 @@ package org.opendaylight.openflowjava.protocol.spi.connection; -import java.util.Collection; -import java.util.List; -import java.util.concurrent.Future; - import org.opendaylight.openflowjava.protocol.api.connection.ConnectionConfiguration; import org.opendaylight.openflowjava.protocol.api.connection.SwitchConnectionHandler; +import com.google.common.util.concurrent.ListenableFuture; + /** * @author mirehak * @author michal.polkorab * */ -public interface SwitchConnectionProvider { +public interface SwitchConnectionProvider extends AutoCloseable { /** - * @param configurations list of [protocol, port, address and supported features] + * @param configuration [protocol, port, address and supported features] */ - public void configure(Collection configurations); + void setConfiguration(ConnectionConfiguration configuration); /** * start listening to switches, but please don't forget to do * {@link #setSwitchConnectionHandler(SwitchConnectionHandler)} first - * @return future, triggered to true, when all listening channels are up and running + * @return future, triggered to true, when listening channel is up and running */ - public Future> startup(); + ListenableFuture startup(); /** * stop listening to switches * @return future, triggered to true, when all listening channels are down */ - public Future> shutdown(); + ListenableFuture shutdown(); /** * @param switchConHandler instance being informed when new switch connects */ - public void setSwitchConnectionHandler(SwitchConnectionHandler switchConHandler); + void setSwitchConnectionHandler(SwitchConnectionHandler switchConHandler); } diff --git a/pom.xml b/pom.xml index 865fb637..63b57378 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ scm:git:ssh://git.opendaylight.org:29418/openflowjava.git https://wiki.opendaylight.org/view/Openflow_Protocol_Library:Main HEAD - + https://sonar.opendaylight.org/ @@ -40,6 +40,9 @@ 14.0.1 4.0.17.Final 2.3.2 + 0.6.2-SNAPSHOT + 0.6.2-SNAPSHOT + 0.2.5-SNAPSHOT @@ -213,6 +216,16 @@ maven-release-plugin ${releaseplugin.version}
+ + org.opendaylight.yangtools + yang-maven-plugin + ${yangtools.version} + + + org.apache.felix + maven-bundle-plugin + ${maven.bundle.version} + -- 2.36.6