From: Tony Tkacik Date: Thu, 20 Nov 2014 16:49:47 +0000 (+0100) Subject: Bug 865: Changed Config subsystem module for ForwardedBindingDataBroker. X-Git-Tag: release/lithium~849 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=f38e20c808607c91dd1e35d49ea59f73524c48b6 Bug 865: Changed Config subsystem module for ForwardedBindingDataBroker. Implementation of new Bidning Data Broker was wired to deprecated APIs and used broker to discover dependencies which did not allowed for full-fledged customized wiring. Reworked configuration to explicitly allow injection of each required depenency and to not use deprecated APIs for dependency injection. Change-Id: Iccbb20ee4bb1df380f5fc4a3a1bbc5748dcc5a38 Signed-off-by: Tony Tkacik --- diff --git a/opendaylight/md-sal/md-sal-config/src/main/resources/initial/01-md-sal.xml b/opendaylight/md-sal/md-sal-config/src/main/resources/initial/01-md-sal.xml index 7664a9bfe4..1c0861ab02 100644 --- a/opendaylight/md-sal/md-sal-config/src/main/resources/initial/01-md-sal.xml +++ b/opendaylight/md-sal/md-sal-config/src/main/resources/initial/01-md-sal.xml @@ -111,9 +111,13 @@ binding-async-data-broker - dom:dom-broker-osgi-registry - dom-broker + dom:dom-async-data-broker + inmemory-data-broker + + dom:schema-service + yang-schema-service + binding:binding-dom-mapping-service runtime-mapping-singleton diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingAsyncDataBrokerImplModule.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingAsyncDataBrokerImplModule.java index 93d99c832f..d0d68218c0 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingAsyncDataBrokerImplModule.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/binding/impl/BindingAsyncDataBrokerImplModule.java @@ -1,18 +1,12 @@ package org.opendaylight.controller.config.yang.md.sal.binding.impl; -import java.util.Collection; -import java.util.Collections; import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; import org.opendaylight.controller.md.sal.binding.impl.ForwardedBindingDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.sal.core.api.Broker; -import org.opendaylight.controller.sal.core.api.Broker.ProviderSession; -import org.opendaylight.controller.sal.core.api.Provider; import org.opendaylight.controller.sal.core.api.model.SchemaService; public class BindingAsyncDataBrokerImplModule extends - org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractBindingAsyncDataBrokerImplModule implements - Provider { + org.opendaylight.controller.config.yang.md.sal.binding.impl.AbstractBindingAsyncDataBrokerImplModule { public BindingAsyncDataBrokerImplModule(final org.opendaylight.controller.config.api.ModuleIdentifier identifier, final org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { @@ -34,29 +28,10 @@ public class BindingAsyncDataBrokerImplModule extends @Override public java.lang.AutoCloseable createInstance() { - Broker domBroker = getDomAsyncBrokerDependency(); - BindingToNormalizedNodeCodec mappingService = getBindingMappingServiceDependency(); - - // FIXME: Switch this to DOM Broker registration which would not require - // BundleContext when API are updated. - ProviderSession session = domBroker.registerProvider(this, null); - DOMDataBroker domDataBroker = session.getService(DOMDataBroker.class); - SchemaService schemaService = session.getService(SchemaService.class); + final BindingToNormalizedNodeCodec mappingService = getBindingMappingServiceDependency(); + final DOMDataBroker domDataBroker = getDomAsyncBrokerDependency(); + final SchemaService schemaService = getSchemaServiceDependency(); return new ForwardedBindingDataBroker(domDataBroker, mappingService, schemaService); } - - - - - @Override - public Collection getProviderFunctionality() { - return Collections.emptySet(); - } - - @Override - public void onSessionInitiated(final ProviderSession arg0) { - // intentional NOOP - } - } diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang b/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang index aec2723591..de8ab63c0a 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang +++ b/opendaylight/md-sal/sal-binding-broker/src/main/yang/opendaylight-binding-broker-impl.yang @@ -135,7 +135,32 @@ module opendaylight-sal-binding-broker-impl { case binding-forwarded-data-broker { when "/config:modules/config:module/config:type = 'binding-forwarded-data-broker'"; container binding-forwarded-data-broker { - uses dom-forwarding-component; + container dom-async-broker { + uses config:service-ref { + refine type { + mandatory true; + config:required-identity dom:dom-async-data-broker; + } + } + } + + container binding-mapping-service { + uses config:service-ref { + refine type { + mandatory true; + config:required-identity binding-dom-mapping-service; + } + } + } + + container schema-service { + uses config:service-ref { + refine type { + mandatory false; + config:required-identity dom:schema-service; + } + } + } } } } diff --git a/opendaylight/md-sal/sal-binding-it/src/test/resources/controller.xml b/opendaylight/md-sal/sal-binding-it/src/test/resources/controller.xml index 5e37f36a2c..1b5aca2bee 100644 --- a/opendaylight/md-sal/sal-binding-it/src/test/resources/controller.xml +++ b/opendaylight/md-sal/sal-binding-it/src/test/resources/controller.xml @@ -98,9 +98,13 @@ binding-async-data-broker - dom:dom-broker-osgi-registry - dom-broker + dom:dom-async-data-broker + inmemory-data-broker + + dom:schema-service + yang-schema-service + binding:binding-dom-mapping-service runtime-mapping-singleton diff --git a/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml b/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml index 4cce64dcd3..cf61887d49 100644 --- a/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml +++ b/opendaylight/md-sal/samples/toaster-it/src/test/resources/controller.xml @@ -76,9 +76,13 @@ binding-async-data-broker - dom:dom-broker-osgi-registry - dom-broker + dom:dom-async-data-broker + inmemory-data-broker + + dom:schema-service + yang-schema-service + binding:binding-dom-mapping-service runtime-mapping-singleton