X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2Fcompat%2FBackwardsCompatibleDataBroker.java;h=f361af948cb1c600a1c778fe97958cbcef1643d0;hp=5b34fba69ac1b0eaebabaf8a82c801082eacc864;hb=1f6daaf007e78df276604baa4c515a50037a649d;hpb=01ae144d488baf278143db152f78024ad4d524f3 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java index 5b34fba69a..f361af948c 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/compat/BackwardsCompatibleDataBroker.java @@ -1,5 +1,7 @@ package org.opendaylight.controller.md.sal.dom.broker.impl.compat; +import javax.annotation.concurrent.ThreadSafe; + import org.opendaylight.controller.md.sal.common.api.RegistrationListener; import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandlerRegistration; @@ -11,6 +13,7 @@ import org.opendaylight.controller.sal.core.api.data.DataChangeListener; import org.opendaylight.controller.sal.core.api.data.DataModificationTransaction; import org.opendaylight.controller.sal.core.api.data.DataProviderService; import org.opendaylight.controller.sal.core.api.data.DataValidator; +import org.opendaylight.controller.sal.core.api.model.SchemaService; import org.opendaylight.yangtools.concepts.AbstractObjectRegistration; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.Registration; @@ -18,19 +21,18 @@ import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; +import org.opendaylight.yangtools.yang.model.api.SchemaServiceListener; -public class BackwardsCompatibleDataBroker implements DataProviderService, SchemaContextListener { +@ThreadSafe +public class BackwardsCompatibleDataBroker implements DataProviderService { private final DOMDataBroker backingBroker; - private DataNormalizer normalizer; + private volatile DataNormalizer normalizer; + private final ListenerRegistration schemaReg; - public BackwardsCompatibleDataBroker(final DOMDataBroker newBiDataImpl) { + public BackwardsCompatibleDataBroker(final DOMDataBroker newBiDataImpl, final SchemaService schemaService) { backingBroker = newBiDataImpl; - } - - @Override - public void onGlobalContextUpdated(final SchemaContext ctx) { - normalizer = new DataNormalizer(ctx); + schemaReg = schemaService.registerSchemaServiceListener(new SchemaListener()); } @Override @@ -148,4 +150,13 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem return listener; } } + + private class SchemaListener implements SchemaContextListener { + + @Override + public void onGlobalContextUpdated(final SchemaContext ctx) { + normalizer = new DataNormalizer(ctx); + } + + } }