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=2d715e348588f8479cf61a12ccbcfd81d5c19f53;hp=5b34fba69ac1b0eaebabaf8a82c801082eacc864;hb=33c9769f6dd0dadd68e460c8f6d76a06b43bf146;hpb=ed62b66118000e74ef3ddbf53f265ae02e7c8912 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..2d715e3485 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,13 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. 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.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,30 +19,30 @@ 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; import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaContextListener; -public class BackwardsCompatibleDataBroker implements DataProviderService, SchemaContextListener { +@Deprecated +@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; + schemaReg = schemaService.registerSchemaContextListener(new SchemaListener()); } @Override - public void onGlobalContextUpdated(final SchemaContext ctx) { - normalizer = new DataNormalizer(ctx); - } - - @Override - public CompositeNode readConfigurationData(final InstanceIdentifier legacyPath) { + public CompositeNode readConfigurationData(final YangInstanceIdentifier legacyPath) { final BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); try { return tx.readConfigurationData(legacyPath); @@ -44,7 +52,7 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public CompositeNode readOperationalData(final InstanceIdentifier legacyPath) { + public CompositeNode readOperationalData(final YangInstanceIdentifier legacyPath) { final BackwardsCompatibleTransaction tx = BackwardsCompatibleTransaction.readOnlyTransaction(backingBroker.newReadOnlyTransaction(),normalizer); try { return tx.readOperationalData(legacyPath); @@ -59,9 +67,9 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public ListenerRegistration registerDataChangeListener(final InstanceIdentifier legacyPath, + public ListenerRegistration registerDataChangeListener(final YangInstanceIdentifier legacyPath, final DataChangeListener listener) { - final InstanceIdentifier normalizedPath = normalizer.toNormalized(legacyPath); + final YangInstanceIdentifier normalizedPath = normalizer.toNormalized(legacyPath); final TranslatingListenerInvoker translatingCfgListener = TranslatingListenerInvoker.createConfig(listener, normalizer); @@ -75,10 +83,10 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public Registration> registerCommitHandler( - final InstanceIdentifier path, final DataCommitHandler commitHandler) { + public Registration registerCommitHandler( + final YangInstanceIdentifier path, final DataCommitHandler commitHandler) { // FIXME Do real forwarding - return new AbstractObjectRegistration>(commitHandler) { + return new AbstractObjectRegistration>(commitHandler) { @Override protected void removeRegistration() { // NOOP @@ -87,8 +95,8 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public ListenerRegistration>> registerCommitHandlerListener( - final RegistrationListener> commitHandlerListener) { + public ListenerRegistration>> registerCommitHandlerListener( + final RegistrationListener> commitHandlerListener) { return null; } @@ -115,14 +123,14 @@ public class BackwardsCompatibleDataBroker implements DataProviderService, Schem } @Override - public Registration> registerConfigurationReader( - final InstanceIdentifier path, final DataReader reader) { + public Registration registerConfigurationReader( + final YangInstanceIdentifier path, final DataReader reader) { throw new UnsupportedOperationException("Data Reader contract is not supported."); } @Override - public Registration> registerOperationalReader( - final InstanceIdentifier path, final DataReader reader) { + public Registration registerOperationalReader( + final YangInstanceIdentifier path, final DataReader reader) { throw new UnsupportedOperationException("Data Reader contract is not supported."); } @@ -148,4 +156,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); + } + + } }