X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=applications%2Fforwardingrules-manager%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fopenflowplugin%2Fapplications%2Ffrm%2Fimpl%2FTableForwarder.java;h=ebfb2ae744c6f7c1b385ba1be65d33f1cab9c257;hb=49613603064b9a2cf2e13f76aa61793a0c8539b2;hp=79e17883d949b7e8bc194a6da29f234f01b76428;hpb=2fdde79d3bc5b5e2e54992e3c4b8c52e9131a48f;p=openflowplugin.git diff --git a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java index 79e17883d9..ebfb2ae744 100644 --- a/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java +++ b/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/impl/TableForwarder.java @@ -10,10 +10,8 @@ package org.opendaylight.openflowplugin.applications.frm.impl; import com.google.common.util.concurrent.Futures; import java.util.Collections; import java.util.concurrent.Future; -import org.opendaylight.infrautils.utils.concurrent.JdkFutures; +import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; import org.opendaylight.mdsal.binding.api.DataBroker; -import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; -import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.openflowplugin.applications.frm.ForwardingRulesManager; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri; import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode; @@ -21,12 +19,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableInputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTableOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.table.update.OriginalTableBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.table.update.UpdatedTableBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures; -import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; import org.slf4j.Logger; @@ -35,25 +31,10 @@ import org.slf4j.LoggerFactory; public class TableForwarder extends AbstractListeningCommiter { private static final Logger LOG = LoggerFactory.getLogger(TableForwarder.class); - private ListenerRegistration listenerRegistration; - public TableForwarder(final ForwardingRulesManager manager, final DataBroker db) { - super(manager, db); - } - - @SuppressWarnings("IllegalCatch") - @Override - public void registerListener() { - final DataTreeIdentifier treeId = DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, - getWildCardPath()); - - try { - listenerRegistration = dataBroker.registerDataTreeChangeListener(treeId, TableForwarder.this); - } catch (final Exception e) { - LOG.warn("FRM Table DataTreeChangeListener registration fail!"); - LOG.debug("FRM Table DataTreeChangeListener registration fail ..", e); - throw new IllegalStateException("TableForwarder startup fail! System needs restart.", e); - } + public TableForwarder(final ForwardingRulesManager manager, final DataBroker db, + final ListenerRegistrationHelper registrationHelper) { + super(manager, db, registrationHelper); } @Override @@ -104,21 +85,21 @@ public class TableForwarder extends AbstractListeningCommiter { builder.setTransactionUri(new Uri(provider.getNewTransactionId())); - builder.setUpdatedTable( - new UpdatedTableBuilder().setTableFeatures(Collections.singletonList(updatedTableFeatures)).build()); + builder.setUpdatedTable(new UpdatedTableBuilder() + .setTableFeatures(Collections.singletonMap(updatedTableFeatures.key(), updatedTableFeatures)) + .build()); - builder.setOriginalTable( - new OriginalTableBuilder().setTableFeatures(Collections.singletonList(originalTableFeatures)).build()); + builder.setOriginalTable(new OriginalTableBuilder() + .setTableFeatures(Collections.singletonMap(originalTableFeatures.key(), originalTableFeatures)) + .build()); LOG.debug("Invoking SalTableService "); if (this.provider.getSalTableService() != null) { LOG.debug(" Handle to SalTableServices {}", this.provider.getSalTableService()); } - final Future> resultFuture = - this.provider.getSalTableService().updateTable(builder.build()); - JdkFutures.addErrorLogging(resultFuture, LOG, "updateTable"); - + LoggingFutures.addErrorLogging(this.provider.getSalTableService().updateTable(builder.build()), LOG, + "updateTable"); } @Override