Hide PingPongDataBroker 61/111761/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 20 May 2024 21:22:25 +0000 (23:22 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 20 May 2024 21:22:25 +0000 (23:22 +0200)
The ability to create merging transaction chains has long been
integrated into DataBroker. Eliminate the intermediate interface
capturing the DataBroker trait and turn it into an implementation detail
of OpenFlowPluginProviderImpl.

Change-Id: I470f85eead331b82ac3511e4669e86cbc3a34b85
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java [deleted file]
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/OpenFlowPluginProviderImpl.java
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/PingPongDataBroker.java
openflowplugin-impl/src/main/resources/OSGI-INF/blueprint/openflowplugin-impl.xml

diff --git a/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java b/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/ForwardingPingPongDataBroker.java
deleted file mode 100644 (file)
index e6e30a0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2018 Red Hat, 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.openflowplugin.impl;
-
-import static java.util.Objects.requireNonNull;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.TransactionChain;
-import org.opendaylight.mdsal.binding.spi.ForwardingDataBroker;
-
-/**
- * Delegating {@link PingPongDataBroker} implementation.
- * This is useful for simple strongly typed dependency injection.
- *
- * @author Michael Vorburger.ch
- */
-// FIXME: this should not be necessary
-public class ForwardingPingPongDataBroker extends ForwardingDataBroker implements PingPongDataBroker {
-    private final @NonNull DataBroker delegate;
-
-    public ForwardingPingPongDataBroker(final DataBroker delegate) {
-        this.delegate = requireNonNull(delegate);
-    }
-
-    @Override
-    protected DataBroker delegate() {
-        return delegate;
-    }
-
-    @Override
-    public TransactionChain createTransactionChain() {
-        return delegate().createMergingTransactionChain();
-    }
-}
index 93ce99e6bf0bdca8061d98986a9c98197960229d..7f3fdd663dd062fab7c87e74f0d64b033c681f92 100644 (file)
@@ -136,7 +136,7 @@ public class OpenFlowPluginProviderImpl implements
     @Inject
     public OpenFlowPluginProviderImpl(final ConfigurationService configurationService,
                                final List<SwitchConnectionProvider> switchConnectionProviders,
-                               final PingPongDataBroker pingPongDataBroker,
+                               final DataBroker dataBroker,
                                final RpcProviderService rpcProviderRegistry,
                                final NotificationPublishService notificationPublishService,
                                final ClusterSingletonServiceProvider singletonServiceProvider,
@@ -145,7 +145,7 @@ public class OpenFlowPluginProviderImpl implements
                                final DiagStatusProvider diagStatusProvider,
                                final SystemReadyMonitor systemReadyMonitor) {
         this.switchConnectionProviders = switchConnectionProviders;
-        dataBroker = pingPongDataBroker;
+        this.dataBroker = new PingPongDataBroker(dataBroker);
         this.rpcProviderRegistry = rpcProviderRegistry;
         this.notificationPublishService = notificationPublishService;
         singletonServicesProvider = singletonServiceProvider;
index 757a077d493d508a4c9052df4324dde677c2fdde..c09d3084501a0699733a607ead8f959f2de153ac 100644 (file)
@@ -7,13 +7,32 @@
  */
 package org.opendaylight.openflowplugin.impl;
 
+import static java.util.Objects.requireNonNull;
+
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.TransactionChain;
+import org.opendaylight.mdsal.binding.spi.ForwardingDataBroker;
 
 /**
- * An <code>odl:type="pingpong"</code> {@link DataBroker}.
+ * A {@link DataBroker} implementation which always creates merging transaction chains.
  *
  * @author Michael Vorburger.ch
  */
-public interface PingPongDataBroker extends DataBroker {
+final class PingPongDataBroker extends ForwardingDataBroker {
+    private final @NonNull DataBroker delegate;
+
+    PingPongDataBroker(final DataBroker delegate) {
+        this.delegate = requireNonNull(delegate);
+    }
+
+    @Override
+    protected DataBroker delegate() {
+        return delegate;
+    }
 
+    @Override
+    public TransactionChain createTransactionChain() {
+        return delegate.createMergingTransactionChain();
+    }
 }
index 0371850e2f2068073843321608695e0976497d5c..ca06337d6e0bcdcc047fdf46cbd5186dda356f60 100644 (file)
@@ -15,7 +15,7 @@
             <ref component-id="legacySwitchConnProvider"/>
         </list>
     </argument>
-    <argument ref="pingPongDataBroker"/>
+    <argument ref="dataBroker"/>
     <argument ref="rpcProviderService"/>
     <argument ref="notificationPublishService"/>
     <argument ref="clusterSingletonServiceProvider"/>
   <odl:clustered-app-config id="openflowProviderConfig"
                             binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig"/>
 
-  <bean id="pingPongDataBroker"
-        class="org.opendaylight.openflowplugin.impl.ForwardingPingPongDataBroker">
-    <argument ref="ppDB"/>
-  </bean>
-  <reference id="ppDB"
+  <reference id="dataBroker"
              interface="org.opendaylight.mdsal.binding.api.DataBroker"/>
-
   <reference id="defaultSwitchConnProvider"
              interface="org.opendaylight.openflowjava.protocol.spi.connection.SwitchConnectionProvider"
              odl:type="openflow-switch-connection-provider-default-impl"/>