import org.opendaylight.protocol.bgp.linkstate.BGPActivator;
import org.opendaylight.protocol.bgp.linkstate.RIBActivator;
import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator;
+import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator;
import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext;
@Override
public java.lang.AutoCloseable createInstance() {
- final RIBExtensionProviderContext ribctx = getRibExtensionsDependency();
- final RIBExtensionProviderActivator ribact;
- if (ribctx != null) {
- ribact = new RIBActivator();
- ribact.startRIBExtensionProvider(ribctx);
- } else {
- ribact = null;
- }
-
- final BGPExtensionProviderActivator bgpact;
- if (getBgpExtensionsDependency() != null) {
- bgpact = new BGPActivator();
- bgpact.start(getBgpExtensionsDependency());
- } else {
- bgpact = null;
- }
+ final class LinkstateExtension implements AutoCloseable, BGPExtensionProviderActivator, RIBExtensionProviderActivator {
+ final BGPExtensionProviderActivator bgpact = new BGPActivator();
+ final RIBExtensionProviderActivator ribact = new RIBActivator();
- return new AutoCloseable() {
@Override
public void close() {
if (bgpact != null) {
ribact.stopRIBExtensionProvider();
}
}
- };
+
+ @Override
+ public void startRIBExtensionProvider(
+ final RIBExtensionProviderContext context) {
+ ribact.startRIBExtensionProvider(context);
+ }
+
+ @Override
+ public void stopRIBExtensionProvider() {
+ ribact.stopRIBExtensionProvider();
+ }
+
+ @Override
+ public void start(final BGPExtensionProviderContext context) {
+ bgpact.start(context);
+ }
+
+ @Override
+ public void stop() {
+ bgpact.stop();
+ }
+ }
+
+ return new LinkstateExtension();
}
}
identity bgp-linkstate {
base config:module-type;
-// config:provided-service bgpl:listener;
+ config:provided-service bgpspi:extension;
+ config:provided-service ribspi:extension;
config:java-name-prefix Linkstate;
}
augment "/config:modules/config:module/config:configuration" {
case bgp-linkstate {
when "/config:modules/config:module/config:type = 'bgp-linkstate'";
-
- container bgp-extensions {
- uses config:service-ref {
- refine type {
- config:required-identity bgpspi:extensions;
- }
- }
- }
-
- container rib-extensions {
- uses config:service-ref {
- refine type {
- config:required-identity ribspi:extensions;
- }
- }
- }
}
}
}
*/
package org.opendaylight.controller.config.yang.bgp.parser.spi;
+import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator;
import org.opendaylight.protocol.bgp.parser.spi.pojo.SimpleBGPExtensionProviderContext;
/**
final class SimpleBGPExtensionProviderContextAutoCloseable extends SimpleBGPExtensionProviderContext implements AutoCloseable {
@Override
public void close() {
- // Do-nothing
+ for (final BGPExtensionProviderActivator e : getExtensionDependency()) {
+ e.stop();
+ }
}
}
- return new SimpleBGPExtensionProviderContextAutoCloseable();
+ final SimpleBGPExtensionProviderContextAutoCloseable ret = new SimpleBGPExtensionProviderContextAutoCloseable();
+ for (final BGPExtensionProviderActivator e : getExtensionDependency()) {
+ e.start(ret);
+ }
+ return ret;
}
}
config:java-class "org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext";
}
+ identity extension {
+ description
+ "Service representing a BGP parser extension.";
+
+ base "config:service-type";
+ config:java-class "org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator";
+ }
+
identity bgp-extensions-impl {
base config:module-type;
config:provided-service extensions;
augment "/config:modules/config:module/config:configuration" {
case bgp-extensions-impl {
when "/config:modules/config:module/config:type = 'bgp-extensions-impl'";
+
+ list extension {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity extension;
+ }
+ }
+ }
}
}
}
import com.google.common.base.Preconditions;
-public abstract class AbstractBGPExtensionProviderActivator implements BGPExtensionProviderActivator {
+public abstract class AbstractBGPExtensionProviderActivator implements AutoCloseable, BGPExtensionProviderActivator {
private static final Logger LOG = LoggerFactory.getLogger(AbstractBGPExtensionProviderActivator.class);
@GuardedBy("this")
this.registrations = null;
}
+
+ @Override
+ public final void close() {
+ stop();
+ }
}
package org.opendaylight.controller.config.yang.bgp.rib.impl;
import org.opendaylight.protocol.bgp.parser.impl.BGPActivator;
-import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator;
/**
*
@Override
public java.lang.AutoCloseable createInstance() {
- final BGPExtensionProviderActivator act = new BGPActivator();
-
- act.start(getBgpExtensionsDependency());
- return new AutoCloseable() {
- @Override
- public void close() {
- act.stop();
- }
- };
+ return new BGPActivator();
}
}
@Override
public java.lang.AutoCloseable createInstance() {
- final RIBActivator act = new RIBActivator();
- act.startRIBExtensionProvider(getRibExtensionsDependency());
-
- return new AutoCloseable() {
- @Override
- public void close() {
- act.stopRIBExtensionProvider();
- }
- };
+ return new RIBActivator();
}
}
identity base-bgp-parser {
base config:module-type;
config:java-name-prefix BaseBGPParser;
+ config:provided-service bgpspi:extension;
}
augment "/config:modules/config:module/config:configuration" {
case base-bgp-parser {
when "/config:modules/config:module/config:type = 'base-bgp-parser'";
-
- container bgp-extensions {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity bgpspi:extensions;
- }
- }
- }
}
}
identity base-bgp-rib {
base config:module-type;
+ config:provided-service ribspi:extension;
config:java-name-prefix BaseBGPRIB;
}
augment "/config:modules/config:module/config:configuration" {
case base-bgp-rib {
when "/config:modules/config:module/config:type = 'base-bgp-rib'";
-
- container rib-extensions {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity ribspi:extensions;
- }
- }
- }
}
}
*/
package org.opendaylight.controller.config.yang.bgp.rib.spi;
+import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator;
import org.opendaylight.protocol.bgp.rib.spi.SimpleRIBExtensionProviderContext;
/**
final class RIBExtensionProviderContextImplCloseable extends SimpleRIBExtensionProviderContext implements AutoCloseable {
@Override
public void close() {
-
+ for (RIBExtensionProviderActivator e : getExtensionDependency()) {
+ e.stopRIBExtensionProvider();;
+ }
}
}
- return new RIBExtensionProviderContextImplCloseable();
+ final RIBExtensionProviderContextImplCloseable ret = new RIBExtensionProviderContextImplCloseable();
+ for (RIBExtensionProviderActivator e : getExtensionDependency()) {
+ e.startRIBExtensionProvider(ret);
+ }
+
+ return ret;
}
}
config:java-class "org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext";
}
+ identity extension {
+ description
+ "Service representing a BGP RIB extension.";
+
+ base "config:service-type";
+ config:java-class "org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator";
+ }
+
identity bgp-rib-extensions-impl {
base config:module-type;
config:provided-service extensions;
augment "/config:modules/config:module/config:configuration" {
case bgp-rib-extensions-impl {
when "/config:modules/config:module/config:type = 'bgp-rib-extensions-impl'";
+
+ list extension {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity extension;
+ }
+ }
+ }
}
}
import com.google.common.base.Preconditions;
-public abstract class AbstractRIBExtensionProviderActivator implements RIBExtensionProviderActivator {
+public abstract class AbstractRIBExtensionProviderActivator implements AutoCloseable, RIBExtensionProviderActivator {
private static final Logger LOG = LoggerFactory.getLogger(AbstractRIBExtensionProviderActivator.class);
@GuardedBy("this")
this.registrations = null;
}
+
+ @Override
+ public final void close() {
+ stopRIBExtensionProvider();
+ }
}
package org.opendaylight.controller.config.yang.pcep.impl;
import org.opendaylight.protocol.pcep.impl.Activator;
-import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
/**
*
@Override
public java.lang.AutoCloseable createInstance() {
- final PCEPExtensionProviderActivator act = new Activator();
- act.start(getPcepExtensionsDependency());
- return new AutoCloseable() {
- @Override
- public void close() {
- act.stop();
- }
- };
+ return new Activator();
}
}
package org.opendaylight.controller.config.yang.pcep.impl;
import org.opendaylight.protocol.pcep.impl.CrabbeInitiatedActivator;
-import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
/**
*
@Override
public java.lang.AutoCloseable createInstance() {
- final PCEPExtensionProviderActivator act = new CrabbeInitiatedActivator();
- act.start(getPcepExtensionsDependency());
- return new AutoCloseable() {
- @Override
- public void close() {
- act.stop();
- }
- };
+ return new CrabbeInitiatedActivator();
}
}
identity pcep-parser-base {
base config:module-type;
+ config:provided-service spi:extension;
config:java-name-prefix BasePCEPParser;
}
augment "/config:modules/config:module/config:configuration" {
case pcep-parser-base {
when "/config:modules/config:module/config:type = 'pcep-parser-base'";
-
- container pcep-extensions {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity spi:extensions;
- }
- }
- }
}
}
identity pcep-parser-crabbe-initiated {
base config:module-type;
+ config:provided-service spi:extension;
config:java-name-prefix CrabbeInitiatedPCEPParser;
}
augment "/config:modules/config:module/config:configuration" {
case pcep-parser-crabbe-initiated {
when "/config:modules/config:module/config:type = 'pcep-parser-crabbe-initiated'";
-
- container pcep-extensions {
- uses config:service-ref {
- refine type {
- mandatory true;
- config:required-identity spi:extensions;
- }
- }
- }
}
}
/**
-* Generated file
-
-* Generated from: yang module name: config-pcep-spi yang module local name: pcep-extensions-impl
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Mon Nov 18 14:32:53 CET 2013
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+ * Generated file
+
+ * Generated from: yang module name: config-pcep-spi yang module local name: pcep-extensions-impl
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Mon Nov 18 14:32:53 CET 2013
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
package org.opendaylight.controller.config.yang.pcep.spi;
+import org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator;
import org.opendaylight.protocol.pcep.spi.pojo.SimplePCEPExtensionProviderContext;
/**
-*
-*/
+ *
+ */
public final class SimplePCEPExtensionProviderContextModule extends org.opendaylight.controller.config.yang.pcep.spi.AbstractSimplePCEPExtensionProviderContextModule
{
- public SimplePCEPExtensionProviderContextModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
- super(identifier, dependencyResolver);
- }
+ public SimplePCEPExtensionProviderContextModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+ super(identifier, dependencyResolver);
+ }
- public SimplePCEPExtensionProviderContextModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, SimplePCEPExtensionProviderContextModule oldModule, java.lang.AutoCloseable oldInstance) {
- super(identifier, dependencyResolver, oldModule, oldInstance);
- }
+ public SimplePCEPExtensionProviderContextModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, final SimplePCEPExtensionProviderContextModule oldModule, final java.lang.AutoCloseable oldInstance) {
+ super(identifier, dependencyResolver, oldModule, oldInstance);
+ }
- @Override
- public void validate(){
- super.validate();
- // Add custom validation for module attributes here.
- }
+ @Override
+ public void validate(){
+ super.validate();
+ // Add custom validation for module attributes here.
+ }
- @Override
- public java.lang.AutoCloseable createInstance() {
+ @Override
+ public java.lang.AutoCloseable createInstance() {
final class PCEPExtensionProviderContextImplCloseable extends SimplePCEPExtensionProviderContext implements AutoCloseable {
@Override
public void close() {
- // Nothing to do
+ for (PCEPExtensionProviderActivator e : getExtensionDependency()) {
+ e.stop();
+ }
}
}
- return new PCEPExtensionProviderContextImplCloseable();
- }
+ final PCEPExtensionProviderContextImplCloseable ret = new PCEPExtensionProviderContextImplCloseable();
+ for (PCEPExtensionProviderActivator e : getExtensionDependency()) {
+ e.start(ret);
+ }
+
+ return ret;
+ }
}
config:java-class "org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderContext";
}
+ identity extension {
+ description
+ "Service representing a PCEP parser extension.";
+
+ base "config:service-type";
+ config:java-class "org.opendaylight.protocol.pcep.spi.PCEPExtensionProviderActivator";
+ }
+
identity pcep-extensions-impl {
base config:module-type;
config:provided-service extensions;
augment "/config:modules/config:module/config:configuration" {
case pcep-extensions-impl {
when "/config:modules/config:module/config:type = 'pcep-extensions-impl'";
+
+ list extension {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity extension;
+ }
+ }
+ }
}
}
}
import com.google.common.base.Preconditions;
-public abstract class AbstractPCEPExtensionProviderActivator implements PCEPExtensionProviderActivator {
+public abstract class AbstractPCEPExtensionProviderActivator implements AutoCloseable, PCEPExtensionProviderActivator {
private static final Logger LOG = LoggerFactory.getLogger(AbstractPCEPExtensionProviderActivator.class);
@GuardedBy("this")
this.registrations = null;
}
+
+ @Override
+ public final void close() {
+ stop();
+ }
}