From: Moiz Raja Date: Thu, 18 Sep 2014 16:30:45 +0000 (+0000) Subject: Merge "Bug-1903:On recovery all replicated log entries should not be applied to state" X-Git-Tag: release/helium~41 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=6e2f13caf52fe4f4af8aa7c0e8ffd475d4e15fba;hp=b9cc9136fe3970ea12dfa3f0fedc803dc3cc101b Merge "Bug-1903:On recovery all replicated log entries should not be applied to state" --- diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java index 73c81ca3a3..36b7a0f5f2 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/BindingTranslatedTransactionChain.java @@ -34,15 +34,15 @@ final class BindingTranslatedTransactionChain implements BindingTransactionChain private final DOMTransactionChain delegate; private final BindingToNormalizedNodeCodec codec; - private final DelegateChainListener delegatingListener; - private final TransactionChainListener listener; + private final DelegateChainListener domListener; + private final TransactionChainListener bindingListener; public BindingTranslatedTransactionChain(final DOMDataBroker chainFactory, final BindingToNormalizedNodeCodec codec, final TransactionChainListener listener) { Preconditions.checkNotNull(chainFactory, "DOM Transaction chain factory must not be null"); - this.delegatingListener = new DelegateChainListener(); - this.listener = listener; - this.delegate = chainFactory.createTransactionChain(listener); + this.domListener = new DelegateChainListener(); + this.bindingListener = listener; + this.delegate = chainFactory.createTransactionChain(domListener); this.codec = codec; } @@ -110,7 +110,7 @@ final class BindingTranslatedTransactionChain implements BindingTransactionChain * chain, so we are not changing any of our internal state * to mark that we failed. */ - this.delegatingListener.onTransactionChainFailed(this, tx, t); + this.bindingListener.onTransactionChainFailed(this, tx, t); } @Override @@ -141,7 +141,7 @@ final class BindingTranslatedTransactionChain implements BindingTransactionChain public void onTransactionChainSuccessful(final TransactionChain chain) { Preconditions.checkState(delegate.equals(chain), "Illegal state - listener for %s was invoked for incorrect chain %s.", delegate, chain); - listener.onTransactionChainSuccessful(BindingTranslatedTransactionChain.this); + bindingListener.onTransactionChainSuccessful(BindingTranslatedTransactionChain.this); } } diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModule.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModule.java deleted file mode 100644 index df1b5a3403..0000000000 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModule.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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.config.yang.md.sal.dom.impl; - -import org.opendaylight.controller.sal.dom.broker.impl.HashMapDataStore; - -/** -* -*/ -public final class HashMapDataStoreModule extends org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractHashMapDataStoreModule -{ - - public HashMapDataStoreModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(identifier, dependencyResolver); - } - - public HashMapDataStoreModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, HashMapDataStoreModule oldModule, java.lang.AutoCloseable oldInstance) { - super(identifier, dependencyResolver, oldModule, oldInstance); - } - - @Override - public void validate(){ - super.validate(); - // Add custom validation for module attributes here. - } - - @Override - public java.lang.AutoCloseable createInstance() { - HashMapDataStore store = new HashMapDataStore(); - return store; - } -} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModuleFactory.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModuleFactory.java deleted file mode 100644 index 6b5503f794..0000000000 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/config/yang/md/sal/dom/impl/HashMapDataStoreModuleFactory.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * 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.config.yang.md.sal.dom.impl; - -/** -* -*/ -public class HashMapDataStoreModuleFactory extends org.opendaylight.controller.config.yang.md.sal.dom.impl.AbstractHashMapDataStoreModuleFactory -{ - - -} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStore.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStore.java deleted file mode 100644 index 1f82bd71b4..0000000000 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStore.java +++ /dev/null @@ -1,121 +0,0 @@ -/* - * 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.sal.dom.broker.impl; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; - -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler; -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.controller.sal.core.api.data.DataStore; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.common.RpcResultBuilder; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public final class HashMapDataStore implements DataStore, AutoCloseable { - private static final Logger LOG = LoggerFactory - .getLogger(HashMapDataStore.class); - - private final Map configuration = new ConcurrentHashMap(); - private final Map operational = new ConcurrentHashMap(); - - @Override - public boolean containsConfigurationPath(final YangInstanceIdentifier path) { - return configuration.containsKey(path); - } - - @Override - public boolean containsOperationalPath(final YangInstanceIdentifier path) { - return operational.containsKey(path); - } - - @Override - public Iterable getStoredConfigurationPaths() { - return configuration.keySet(); - } - - @Override - public Iterable getStoredOperationalPaths() { - return operational.keySet(); - } - - @Override - public CompositeNode readConfigurationData(final YangInstanceIdentifier path) { - LOG.trace("Reading configuration path {}", path); - return configuration.get(path); - } - - @Override - public CompositeNode readOperationalData(YangInstanceIdentifier path) { - LOG.trace("Reading operational path {}", path); - return operational.get(path); - } - - @Override - public DataCommitHandler.DataCommitTransaction requestCommit( - final DataModification modification) { - return new HashMapDataStoreTransaction(modification, this); - } - - public RpcResult rollback(HashMapDataStoreTransaction transaction) { - return RpcResultBuilder. success().build(); - } - - public RpcResult finish(HashMapDataStoreTransaction transaction) { - final DataModification modification = transaction - .getModification(); - for (final YangInstanceIdentifier removal : modification - .getRemovedConfigurationData()) { - LOG.trace("Removing configuration path {}", removal); - remove(configuration, removal); - } - for (final YangInstanceIdentifier removal : modification - .getRemovedOperationalData()) { - LOG.trace("Removing operational path {}", removal); - remove(operational, removal); - } - if (LOG.isTraceEnabled()) { - for (final YangInstanceIdentifier a : modification - .getUpdatedConfigurationData().keySet()) { - LOG.trace("Adding configuration path {}", a); - } - for (final YangInstanceIdentifier a : modification - .getUpdatedOperationalData().keySet()) { - LOG.trace("Adding operational path {}", a); - } - } - configuration.putAll(modification.getUpdatedConfigurationData()); - operational.putAll(modification.getUpdatedOperationalData()); - - return RpcResultBuilder. success().build(); - } - - public void remove(final Map map, - final YangInstanceIdentifier identifier) { - Set affected = new HashSet(); - for (final YangInstanceIdentifier path : map.keySet()) { - if (identifier.contains(path)) { - affected.add(path); - } - } - for (final YangInstanceIdentifier pathToRemove : affected) { - LOG.trace("Removed path {}", pathToRemove); - map.remove(pathToRemove); - } - } - - @Override - public void close() { - // NOOP - } -} diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStoreTransaction.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStoreTransaction.java deleted file mode 100644 index ee026b6006..0000000000 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/sal/dom/broker/impl/HashMapDataStoreTransaction.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.sal.dom.broker.impl; - -import org.opendaylight.controller.md.sal.common.api.data.DataModification; -import org.opendaylight.controller.md.sal.common.api.data.DataCommitHandler.DataCommitTransaction; -import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.CompositeNode; -import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; - -public class HashMapDataStoreTransaction implements - DataCommitTransaction { - private final DataModification modification; - private final HashMapDataStore datastore; - - HashMapDataStoreTransaction( - final DataModification modify, - final HashMapDataStore store) { - modification = modify; - datastore = store; - } - - @Override - public RpcResult finish() throws IllegalStateException { - return datastore.finish(this); - } - - @Override - public DataModification getModification() { - return this.modification; - } - - @Override - public RpcResult rollback() throws IllegalStateException { - return datastore.rollback(this); - } -} \ No newline at end of file diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang index b1df7efcdb..e81f71a7d2 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang +++ b/opendaylight/md-sal/sal-dom-broker/src/main/yang/opendaylight-dom-broker-impl.yang @@ -32,12 +32,6 @@ module opendaylight-sal-dom-broker-impl { config:provided-service sal:dom-async-data-broker; } - identity hash-map-data-store { - base config:module-type; - config:provided-service sal:dom-data-store; - config:java-name-prefix HashMapDataStore; - } - identity schema-service-singleton { base config:module-type; config:provided-service sal:schema-service; @@ -129,12 +123,6 @@ module opendaylight-sal-dom-broker-impl { } } - augment "/config:modules/config:module/config:state" { - case hash-map-data-store { - when "/config:modules/config:module/config:type = 'hash-map-data-store'"; - } - } - augment "/config:modules/config:module/config:state" { case schema-service-singleton { when "/config:modules/config:module/config:type = 'schema-service-singleton'"; @@ -149,4 +137,4 @@ module opendaylight-sal-dom-broker-impl { } } } -} \ No newline at end of file +}