+++ /dev/null
-/*
- * 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();
- }
-}
@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,
final DiagStatusProvider diagStatusProvider,
final SystemReadyMonitor systemReadyMonitor) {
this.switchConnectionProviders = switchConnectionProviders;
- dataBroker = pingPongDataBroker;
+ this.dataBroker = new PingPongDataBroker(dataBroker);
this.rpcProviderRegistry = rpcProviderRegistry;
this.notificationPublishService = notificationPublishService;
singletonServicesProvider = singletonServiceProvider;
*/
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();
+ }
}
<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"/>