Session reconnect strategy updated to factory. 11/5611/6
authorMilos Fabian <milfabia@cisco.com>
Thu, 13 Mar 2014 12:01:04 +0000 (13:01 +0100)
committerMilos Fabian <milfabia@cisco.com>
Fri, 14 Mar 2014 09:48:28 +0000 (10:48 +0100)
Change-Id: I57ba847641609198492cfb6c361564f003d6af27
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
Signed-off-by: Milos Fabian <milfabia@cisco.com>
12 files changed:
bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/reconnectstrategy/util/ReconnectStrategyCloseable.java [deleted file]
bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java
bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/yang/reconnectstrategy/NeverReconnectStrategyModule.java
bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/yang/reconnectstrategy/ReconnectImmediatelyStrategyModule.java
bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/yang/reconnectstrategy/TimedReconnectStrategyModule.java
bgp/rib-impl-config/src/main/yang/reconnect-strategy.yang
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPDispatcherImpl.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/BGPPeer.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBImpl.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/BGPDispatcher.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/spi/RIB.java
integration-tests/src/test/java/org/opendaylight/protocol/integration/bgp/ParserToSalTest.java

diff --git a/bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/reconnectstrategy/util/ReconnectStrategyCloseable.java b/bgp/rib-impl-config/src/main/java/org/opendaylight/controller/config/reconnectstrategy/util/ReconnectStrategyCloseable.java
deleted file mode 100644 (file)
index cb660cd..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (c) 2013 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.reconnectstrategy.util;
-
-import io.netty.util.concurrent.Future;
-
-import org.opendaylight.protocol.framework.ReconnectStrategy;
-
-public final class ReconnectStrategyCloseable implements ReconnectStrategy,
-AutoCloseable {
-
-       private final ReconnectStrategy inner;
-
-       public ReconnectStrategyCloseable(final ReconnectStrategy inner) {
-               this.inner = inner;
-       }
-
-       @Override
-       public void close() {
-
-       }
-
-       @Override
-       public int getConnectTimeout() throws Exception {
-               return this.inner.getConnectTimeout();
-       }
-
-       @Override
-       public Future<Void> scheduleReconnect(final Throwable cause) {
-               return this.inner.scheduleReconnect(cause);
-       }
-
-       @Override
-       public void reconnectSuccessful() {
-               this.inner.reconnectSuccessful();
-       }
-}
index 73a67b937a827eee458dfc7f88d36c90773c598f..1deb030f4e13f981dc216e84b11e7add81706f8b 100644 (file)
@@ -18,8 +18,6 @@ package org.opendaylight.controller.config.yang.bgp.rib.impl;
 
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
 import org.opendaylight.protocol.bgp.rib.impl.RIBImpl;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
-import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 
 /**
@@ -52,11 +50,7 @@ public final class RIBImplModule extends org.opendaylight.controller.config.yang
        @Override
        public java.lang.AutoCloseable createInstance() {
                return new RIBImpl(getRibId(), new AsNumber(getLocalAs()), getBgpId(), getExtensionsDependency(),
-                               getBgpDispatcherDependency(), new ReconnectStrategyFactory() {
-                       @Override
-                       public ReconnectStrategy createReconnectStrategy() {
-                               return getTcpReconnectStrategyDependency();
-                       }
-               }, getSessionReconnectStrategyDependency(), getDataProviderDependency(), getLocalTableDependency());
+                               getBgpDispatcherDependency(), getTcpReconnectStrategyDependency()
+                               ,  getSessionReconnectStrategyDependency(), getDataProviderDependency(), getLocalTableDependency());
        }
 }
index 254e78222abfeb4abff4312c5afbd0eb8152ff73..8e478a57d531cc8e19b3ba0d6d393e01602fa3ed 100644 (file)
@@ -6,48 +6,72 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 /**
-* Generated file
+ * Generated file
 
-* Generated from: yang module name: reconnect-strategy  yang module local name: never-reconnect-strategy
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Tue Nov 12 13:27:18 CET 2013
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+ * Generated from: yang module name: reconnect-strategy  yang module local name: never-reconnect-strategy
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Tue Nov 12 13:27:18 CET 2013
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
 package org.opendaylight.controller.config.yang.reconnectstrategy;
 
+import io.netty.util.concurrent.EventExecutor;
+
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
-import org.opendaylight.controller.config.reconnectstrategy.util.ReconnectStrategyCloseable;
 import org.opendaylight.protocol.framework.NeverReconnectStrategy;
 import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 
 /**
 *
 */
-public final class NeverReconnectStrategyModule extends org.opendaylight.controller.config.yang.reconnectstrategy.AbstractNeverReconnectStrategyModule
-{
+public final class NeverReconnectStrategyModule extends
+        org.opendaylight.controller.config.yang.reconnectstrategy.AbstractNeverReconnectStrategyModule {
 
-    public NeverReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+    public NeverReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public NeverReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, NeverReconnectStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
+    public NeverReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+            NeverReconnectStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    public void validate(){
-               super.validate();
-               JmxAttributeValidationException.checkNotNull(getTimeout(),
-                               "value is not set.", timeoutJmxAttribute);
-               JmxAttributeValidationException.checkCondition(getTimeout() >= 0,
-                               "value " + getTimeout() + " is less than 0",
-                               timeoutJmxAttribute);
+    public void validate() {
+        super.validate();
+        JmxAttributeValidationException.checkNotNull(getTimeout(), "value is not set.", timeoutJmxAttribute);
+        JmxAttributeValidationException.checkCondition(getTimeout() >= 0, "value " + getTimeout() + " is less than 0",
+                timeoutJmxAttribute);
     }
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-               ReconnectStrategy reconnectStrategy = new NeverReconnectStrategy(getExecutorDependency(), getTimeout());
-               return new ReconnectStrategyCloseable(reconnectStrategy);
-       }
+        return new NeverReconnectStrategyFactory(getExecutorDependency(), getTimeout());
+    }
+
+    private static final class NeverReconnectStrategyFactory implements ReconnectStrategyFactory, AutoCloseable {
+
+        private final EventExecutor executor;
+        private final int timeout;
+
+        public NeverReconnectStrategyFactory(final EventExecutor executor, final int timeout) {
+            this.executor = executor;
+            this.timeout = timeout;
+        }
+
+        @Override
+        public void close() throws Exception {
+            // no-op
+        }
+
+        @Override
+        public ReconnectStrategy createReconnectStrategy() {
+            return new NeverReconnectStrategy(this.executor, this.timeout);
+        }
+
+    }
 }
index e1b6ebd89e94812e4c56aea473ac00fa4599b294..85f6be5df0976b342efb3e60035c6844b61ee9e6 100644 (file)
@@ -6,48 +6,72 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 /**
-* Generated file
+ * Generated file
 
-* Generated from: yang module name: reconnect-strategy  yang module local name: reconnect-immediately-strategy
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Tue Nov 12 13:27:18 CET 2013
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+ * Generated from: yang module name: reconnect-strategy  yang module local name: reconnect-immediately-strategy
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Tue Nov 12 13:27:18 CET 2013
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
 package org.opendaylight.controller.config.yang.reconnectstrategy;
 
+import io.netty.util.concurrent.EventExecutor;
+
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
-import org.opendaylight.controller.config.reconnectstrategy.util.ReconnectStrategyCloseable;
 import org.opendaylight.protocol.framework.ReconnectImmediatelyStrategy;
 import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 
 /**
 *
 */
-public final class ReconnectImmediatelyStrategyModule extends org.opendaylight.controller.config.yang.reconnectstrategy.AbstractReconnectImmediatelyStrategyModule
-{
+public final class ReconnectImmediatelyStrategyModule extends
+        org.opendaylight.controller.config.yang.reconnectstrategy.AbstractReconnectImmediatelyStrategyModule {
 
-    public ReconnectImmediatelyStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+    public ReconnectImmediatelyStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public ReconnectImmediatelyStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, ReconnectImmediatelyStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
+    public ReconnectImmediatelyStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+            ReconnectImmediatelyStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    public void validate(){
-               super.validate();
-               JmxAttributeValidationException.checkNotNull(getTimeout(),
-                               "value is not set.", timeoutJmxAttribute);
-               JmxAttributeValidationException.checkCondition(getTimeout() >= 0,
-                               "value " + getTimeout() + " is less than 0",
-                               timeoutJmxAttribute);
+    public void validate() {
+        super.validate();
+        JmxAttributeValidationException.checkNotNull(getTimeout(), "value is not set.", timeoutJmxAttribute);
+        JmxAttributeValidationException.checkCondition(getTimeout() >= 0, "value " + getTimeout() + " is less than 0",
+                timeoutJmxAttribute);
     }
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-               final ReconnectStrategy reconnectStrategy = new ReconnectImmediatelyStrategy(getExecutorDependency(), getTimeout());
-               return new ReconnectStrategyCloseable(reconnectStrategy);
-       }
+        return new ReconnectImmediatelyStrategyFactory(getExecutorDependency(), getTimeout());
+    }
+
+    private static final class ReconnectImmediatelyStrategyFactory implements ReconnectStrategyFactory, AutoCloseable {
+
+        private final EventExecutor executor;
+        private final int timeout;
+
+        public ReconnectImmediatelyStrategyFactory(final EventExecutor executor, final int timeout) {
+            this.executor = executor;
+            this.timeout = timeout;
+        }
+
+        @Override
+        public void close() throws Exception {
+            // no-op
+        }
+
+        @Override
+        public ReconnectStrategy createReconnectStrategy() {
+            return new ReconnectImmediatelyStrategy(this.executor, this.timeout);
+        }
+
+    }
 }
index d40d35c00b2e25696b3014704eb208bed6bc0ef7..27e15e9796ca5febff7d5256e6a74d49e35a8286 100644 (file)
@@ -6,65 +6,98 @@
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
 /**
-* Generated file
+ * Generated file
 
-* Generated from: yang module name: reconnect-strategy  yang module local name: timed-reconnect-strategy
-* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
-* Generated at: Tue Nov 12 13:27:18 CET 2013
-*
-* Do not modify this file unless it is present under src/main directory
-*/
+ * Generated from: yang module name: reconnect-strategy  yang module local name: timed-reconnect-strategy
+ * Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+ * Generated at: Tue Nov 12 13:27:18 CET 2013
+ *
+ * Do not modify this file unless it is present under src/main directory
+ */
 package org.opendaylight.controller.config.yang.reconnectstrategy;
 
+import io.netty.util.concurrent.EventExecutor;
+
 import org.opendaylight.controller.config.api.JmxAttributeValidationException;
-import org.opendaylight.controller.config.reconnectstrategy.util.ReconnectStrategyCloseable;
 import org.opendaylight.protocol.framework.ReconnectStrategy;
+import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 import org.opendaylight.protocol.framework.TimedReconnectStrategy;
 
+import com.google.common.base.Preconditions;
+
 /**
 *
 */
-public final class TimedReconnectStrategyModule extends org.opendaylight.controller.config.yang.reconnectstrategy.AbstractTimedReconnectStrategyModule
-{
+public final class TimedReconnectStrategyModule extends
+        org.opendaylight.controller.config.yang.reconnectstrategy.AbstractTimedReconnectStrategyModule {
 
-    public TimedReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+    public TimedReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
         super(identifier, dependencyResolver);
     }
 
-    public TimedReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, TimedReconnectStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
+    public TimedReconnectStrategyModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+            TimedReconnectStrategyModule oldModule, java.lang.AutoCloseable oldInstance) {
         super(identifier, dependencyResolver, oldModule, oldInstance);
     }
 
     @Override
-    public void validate(){
-               super.validate();
-               JmxAttributeValidationException.checkNotNull(getSleepFactor(),
-               "value is not set.", sleepFactorJmxAttribute);
-               JmxAttributeValidationException.checkCondition(getSleepFactor()
-                               .doubleValue() >= 1,
-                               "value " + getSleepFactor() + " is less than 1",
-                               sleepFactorJmxAttribute);
-
-               JmxAttributeValidationException.checkNotNull(getConnectTime(),
-               "value is not set.", connectTimeJmxAttribute);
-               JmxAttributeValidationException.checkCondition(getConnectTime() >= 0,
-                               "value " + getConnectTime() + " is less than 0",
-                               connectTimeJmxAttribute);
-
-               JmxAttributeValidationException.checkNotNull(getMinSleep(),
-               "value is not set.", minSleepJmxAttribute);
-               JmxAttributeValidationException.checkCondition(
-                               getMaxSleep() == null || getMinSleep() <= getMaxSleep(),
-                               "value " + getMinSleep() + " is greter than MaxSleep " + getMaxSleep(),
-                               minSleepJmxAttribute);
+    public void validate() {
+        super.validate();
+        JmxAttributeValidationException.checkNotNull(getSleepFactor(), "value is not set.", sleepFactorJmxAttribute);
+        JmxAttributeValidationException.checkCondition(getSleepFactor().doubleValue() >= 1, "value " + getSleepFactor()
+                + " is less than 1", sleepFactorJmxAttribute);
+
+        JmxAttributeValidationException.checkNotNull(getConnectTime(), "value is not set.", connectTimeJmxAttribute);
+        JmxAttributeValidationException.checkCondition(getConnectTime() >= 0, "value " + getConnectTime()
+                + " is less than 0", connectTimeJmxAttribute);
+
+        JmxAttributeValidationException.checkNotNull(getMinSleep(), "value is not set.", minSleepJmxAttribute);
+        JmxAttributeValidationException.checkCondition(getMaxSleep() == null || getMinSleep() <= getMaxSleep(),
+                "value " + getMinSleep() + " is greter than MaxSleep " + getMaxSleep(), minSleepJmxAttribute);
     }
 
     @Override
     public java.lang.AutoCloseable createInstance() {
-               ReconnectStrategy reconnectStrategy = new TimedReconnectStrategy(
-                               getExecutorDependency(), getConnectTime(), getMinSleep(),
-                               getSleepFactor().doubleValue(), getMaxSleep(),
-                               getMaxAttempts(), getDeadline());
-               return new ReconnectStrategyCloseable(reconnectStrategy);
-       }
+        return new TimedReconnectStrategyFactory(getExecutorDependency(),
+                getConnectTime(), getMinSleep(), getSleepFactor().doubleValue(), getMaxSleep(), getMaxAttempts(),
+                getDeadline());
+    }
+
+    private static final class TimedReconnectStrategyFactory implements ReconnectStrategyFactory, AutoCloseable {
+
+        private final EventExecutor executor;
+        private final long deadline, maxAttempts, maxSleep;
+        private final double sleepFactor;
+        private final int connectTime;
+        private final long minSleep;
+
+        public TimedReconnectStrategyFactory(final EventExecutor executor, final int connectTime, final long minSleep, final double sleepFactor,
+                final Long maxSleep, final Long maxAttempts, final Long deadline) {
+            Preconditions.checkArgument(maxSleep == null || minSleep <= maxSleep);
+            Preconditions.checkArgument(sleepFactor >= 1);
+            Preconditions.checkArgument(connectTime >= 0);
+            this.executor = Preconditions.checkNotNull(executor);
+            this.deadline = deadline;
+            this.maxAttempts = maxAttempts;
+            this.minSleep = minSleep;
+            this.maxSleep = maxSleep;
+            this.sleepFactor = sleepFactor;
+            this.connectTime = connectTime;
+        }
+
+        @Override
+        public void close() throws Exception {
+            // no-op
+        }
+
+        @Override
+        public ReconnectStrategy createReconnectStrategy() {
+            return new TimedReconnectStrategy(this.executor,
+                    this.connectTime, this.minSleep, this.sleepFactor, this.maxSleep, this.maxAttempts,
+                    this.deadline);
+        }
+
+    }
 }
index a65bbe7e739229b9bb834186c67329901458631e..d1050e55905a6507819f0d3211cb4ad0a0980720 100644 (file)
@@ -32,7 +32,7 @@ module reconnect-strategy {
             "Service representing a reconnect strategy.";
 
         base "config:service-type";
-        config:java-class "org.opendaylight.protocol.framework.ReconnectStrategy";
+        config:java-class "org.opendaylight.protocol.framework.ReconnectStrategyFactory";
     }
 
     identity never-reconnect-strategy {
index 984c7a859b7596d102553f7cd1cb318cfca8b6a1..e4bb409c3c02d7e7c7c37a8d440f51f406d4cd46 100644 (file)
@@ -53,9 +53,9 @@ public final class BGPDispatcherImpl extends AbstractDispatcher<BGPSessionImpl,
                return super.createClient(address, strategy, new PipelineInitializer<BGPSessionImpl>() {
                        @Override
                        public void initializeChannel(final SocketChannel ch, final Promise<BGPSessionImpl> promise) {
-                               ch.pipeline().addLast(hf.getDecoders());
+                               ch.pipeline().addLast(BGPDispatcherImpl.this.hf.getDecoders());
                                ch.pipeline().addLast("negotiator", snf.getSessionNegotiator(slf, ch, promise));
-                               ch.pipeline().addLast(hf.getEncoders());
+                               ch.pipeline().addLast(BGPDispatcherImpl.this.hf.getEncoders());
                        }
                });
        }
@@ -64,7 +64,7 @@ public final class BGPDispatcherImpl extends AbstractDispatcher<BGPSessionImpl,
        public Future<Void> createReconnectingClient(final InetSocketAddress address,
                        final BGPSessionPreferences preferences, final AsNumber remoteAs,
                        final BGPSessionListener listener, final ReconnectStrategyFactory connectStrategyFactory,
-                       final ReconnectStrategy reestablishStrategy) {
+                       final ReconnectStrategyFactory reestablishStrategyFactory) {
                final BGPSessionNegotiatorFactory snf = new BGPSessionNegotiatorFactory(this.timer, preferences, remoteAs);
                final SessionListenerFactory<BGPSessionListener> slf = new SessionListenerFactory<BGPSessionListener>() {
                        @Override
@@ -73,12 +73,12 @@ public final class BGPDispatcherImpl extends AbstractDispatcher<BGPSessionImpl,
                        }
                };
 
-               return super.createReconnectingClient(address, connectStrategyFactory, reestablishStrategy, new PipelineInitializer<BGPSessionImpl>() {
+               return super.createReconnectingClient(address, connectStrategyFactory, reestablishStrategyFactory.createReconnectStrategy(), new PipelineInitializer<BGPSessionImpl>() {
                        @Override
                        public void initializeChannel(final SocketChannel ch, final Promise<BGPSessionImpl> promise) {
-                               ch.pipeline().addLast(hf.getDecoders());
+                               ch.pipeline().addLast(BGPDispatcherImpl.this.hf.getDecoders());
                                ch.pipeline().addLast("negotiator", snf.getSessionNegotiator(slf, ch, promise));
-                               ch.pipeline().addLast(hf.getEncoders());
+                               ch.pipeline().addLast(BGPDispatcherImpl.this.hf.getEncoders());
                        }
                });
        }
index 8b4e49527704e8a6bf6bb191ab588407d82b7363..86d90248801914177d66fb743dc1721993c5ba54 100644 (file)
@@ -55,18 +55,18 @@ public final class BGPPeer implements BGPSessionListener, Peer, AutoCloseable {
                        final AsNumber remoteAs, final RIB rib) {
                this.rib = Preconditions.checkNotNull(rib);
                this.name = Preconditions.checkNotNull(name);
-               cf = rib.getDispatcher().createReconnectingClient(address, prefs, remoteAs, this, rib.getTcpStrategyFactory(), rib.getSessionStrategy());
+               this.cf = rib.getDispatcher().createReconnectingClient(address, prefs, remoteAs, this, rib.getTcpStrategyFactory(), rib.getSessionStrategyFactory());
        }
 
        @Override
        public synchronized void close() {
-               if (cf != null) {
-                       cf.cancel(true);
-                       if (session != null) {
-                               session.close();
-                               session = null;
+               if (this.cf != null) {
+                       this.cf.cancel(true);
+                       if (this.session != null) {
+                               this.session.close();
+                               this.session = null;
                        }
-                       cf = null;
+                       this.cf = null;
                }
        }
 
@@ -84,7 +84,7 @@ public final class BGPPeer implements BGPSessionListener, Peer, AutoCloseable {
                LOG.info("Session with peer {} went up with tables: {}", this.name, session.getAdvertisedTableTypes());
 
                this.session = session;
-               this.comparator = new BGPObjectComparator(rib.getLocalAs(), rib.getBgpIdentifier(), session.getBgpId());
+               this.comparator = new BGPObjectComparator(this.rib.getLocalAs(), this.rib.getBgpIdentifier(), session.getBgpId());
 
                for (final BgpTableType t : session.getAdvertisedTableTypes()) {
                        final TablesKey key = new TablesKey(t.getAfi(), t.getSafi());
@@ -130,7 +130,7 @@ public final class BGPPeer implements BGPSessionListener, Peer, AutoCloseable {
 
        @Override
        public String getName() {
-               return name;
+               return this.name;
        }
 
        @Override
index c99241b67818ac40b022dec70d2e40134bc4f00d..812415a0a569c811853ffd877e080dd646178206 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.protocol.bgp.rib.impl.spi.RIB;
 import org.opendaylight.protocol.bgp.rib.spi.AdjRIBsIn;
 import org.opendaylight.protocol.bgp.rib.spi.Peer;
 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
@@ -71,7 +70,7 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
        private static final Update EOR = new UpdateBuilder().build();
        private static final TablesKey IPV4_UNICAST_TABLE = new TablesKey(Ipv4AddressFamily.class, UnicastSubsequentAddressFamily.class);
        private final ReconnectStrategyFactory tcpStrategyFactory;
-       private final ReconnectStrategy sessionStrategy;
+       private final ReconnectStrategyFactory sessionStrategyFactory;
        private final BGPDispatcher dispatcher;
        private final DataProviderService dps;
        private final AsNumber localAs;
@@ -80,14 +79,14 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
        private final RIBTables tables;
 
        public RIBImpl(final RibId ribId, final AsNumber localAs, final Ipv4Address localBgpId, final RIBExtensionConsumerContext extensions,
-                       final BGPDispatcher dispatcher, final ReconnectStrategyFactory tcpStrategyFactory, final ReconnectStrategy sessionStrategy,
+                       final BGPDispatcher dispatcher, final ReconnectStrategyFactory tcpStrategyFactory, final ReconnectStrategyFactory sessionStrategyFactory,
                        final DataProviderService dps, final List<BgpTableType> localTables) {
                super(InstanceIdentifier.builder(BgpRib.class).child(Rib.class, new RibKey(Preconditions.checkNotNull(ribId))).toInstance());
                this.dps = Preconditions.checkNotNull(dps);
                this.localAs = Preconditions.checkNotNull(localAs);
                this.bgpIdentifier = Preconditions.checkNotNull(localBgpId);
                this.dispatcher = Preconditions.checkNotNull(dispatcher);
-               this.sessionStrategy = Preconditions.checkNotNull(sessionStrategy);
+               this.sessionStrategyFactory = Preconditions.checkNotNull(sessionStrategyFactory);
                this.tcpStrategyFactory = Preconditions.checkNotNull(tcpStrategyFactory);
                this.localTables = ImmutableList.copyOf(localTables);
                this.tables = new RIBTables(extensions);
@@ -105,7 +104,7 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
 
                for (BgpTableType t : localTables) {
                        final TablesKey key = new TablesKey(t.getAfi(), t.getSafi());
-                       if (tables.create(trans, this, key) == null) {
+                       if (this.tables.create(trans, this, key) == null) {
                                LOG.debug("Did not create local table for unhandled table type {}", t);
                        }
                }
@@ -258,32 +257,32 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
 
        @Override
        public AsNumber getLocalAs() {
-               return localAs;
+               return this.localAs;
        }
 
        @Override
        public Ipv4Address getBgpIdentifier() {
-               return bgpIdentifier;
+               return this.bgpIdentifier;
        }
 
        @Override
        public List<? extends BgpTableType> getLocalTables() {
-               return localTables;
+               return this.localTables;
        }
 
        @Override
        public ReconnectStrategyFactory getTcpStrategyFactory() {
-               return tcpStrategyFactory;
+               return this.tcpStrategyFactory;
        }
 
        @Override
-       public ReconnectStrategy getSessionStrategy() {
-               return sessionStrategy;
+       public ReconnectStrategyFactory getSessionStrategyFactory() {
+               return this.sessionStrategyFactory;
        }
 
        @Override
        public BGPDispatcher getDispatcher() {
-               return dispatcher;
+               return this.dispatcher;
        }
 
        @Override
index f474def0cfa06766eada14660c6711fed2032faa..67d21d2bc09d7c46f7b3f9d0f01379151d0a34ea 100644 (file)
@@ -34,5 +34,5 @@ public interface BGPDispatcher {
                        BGPSessionListener listener, ReconnectStrategy strategy);
 
        Future<Void> createReconnectingClient(InetSocketAddress address, BGPSessionPreferences preferences, AsNumber remoteAs,
-                       BGPSessionListener listener, ReconnectStrategyFactory connectStrategyFactory, ReconnectStrategy reestablishStrategy);
+                       BGPSessionListener listener, ReconnectStrategyFactory connectStrategyFactory, ReconnectStrategyFactory reestablishStrategyFactory);
 }
index 1042a28ced7fbfaee84cdf68ebc4660cbab49c86..96ac30dfcb8fece25c2d96e6505cf41a1bc111af 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.protocol.bgp.rib.impl.spi;
 import java.util.List;
 
 import org.opendaylight.protocol.bgp.rib.spi.Peer;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
@@ -32,5 +31,5 @@ public interface RIB {
 
        BGPDispatcher getDispatcher();
        ReconnectStrategyFactory getTcpStrategyFactory();
-       ReconnectStrategy getSessionStrategy();
+       ReconnectStrategyFactory getSessionStrategyFactory();
 }
index 5fb31c3a499d3a2503c79bbccb06d1115c6f1053..189424545f3f7bf5570652946f4087d7ad751f72 100644 (file)
@@ -45,7 +45,6 @@ import org.opendaylight.protocol.bgp.rib.spi.AbstractRIBExtensionProviderActivat
 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderContext;
 import org.opendaylight.protocol.bgp.rib.spi.SimpleRIBExtensionProviderContext;
 import org.opendaylight.protocol.bgp.util.HexDumpBGPFileParser;
-import org.opendaylight.protocol.framework.ReconnectStrategy;
 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
@@ -91,7 +90,7 @@ public class ParserToSalTest {
        ReconnectStrategyFactory tcpStrategyFactory;
 
        @Mock
-       ReconnectStrategy sessionStrategy;
+       ReconnectStrategyFactory sessionStrategy;
 
        @Before
        public void setUp() throws Exception {
@@ -158,26 +157,26 @@ public class ParserToSalTest {
 
                }).when(this.mockedTransaction).readOperationalData(Matchers.any(InstanceIdentifier.class));
 
-               Mockito.doReturn(GlobalEventExecutor.INSTANCE.newSucceededFuture(null)).when(dispatcher).
+               Mockito.doReturn(GlobalEventExecutor.INSTANCE.newSucceededFuture(null)).when(this.dispatcher).
                createReconnectingClient(Mockito.any(InetSocketAddress.class), Mockito.any(BGPSessionPreferences.class), Mockito.any(AsNumber.class),
-                               Mockito.any(BGPSessionListener.class), Mockito.eq(tcpStrategyFactory), Mockito.eq(sessionStrategy));
+                               Mockito.any(BGPSessionListener.class), Mockito.eq(this.tcpStrategyFactory), Mockito.eq(this.sessionStrategy));
 
-               ext = new SimpleRIBExtensionProviderContext();
-               baseact = new RIBActivator();
-               lsact = new org.opendaylight.protocol.bgp.linkstate.RIBActivator();
+               this.ext = new SimpleRIBExtensionProviderContext();
+               this.baseact = new RIBActivator();
+               this.lsact = new org.opendaylight.protocol.bgp.linkstate.RIBActivator();
 
-               baseact.startRIBExtensionProvider(ext);
-               lsact.startRIBExtensionProvider(ext);
+               this.baseact.startRIBExtensionProvider(this.ext);
+               this.lsact.startRIBExtensionProvider(this.ext);
        }
 
        @After
        public void tearDown() {
-               lsact.close();
-               baseact.close();
+               this.lsact.close();
+               this.baseact.close();
        }
 
        private void runTestWithTables(final List<BgpTableType> tables) {
-               final RIBImpl rib = new RIBImpl(new RibId("testRib"), new AsNumber(72L), new Ipv4Address("127.0.0.1"), ext,
+               final RIBImpl rib = new RIBImpl(new RibId("testRib"), new AsNumber(72L), new Ipv4Address("127.0.0.1"), this.ext,
                                this.dispatcher, this.tcpStrategyFactory, this.sessionStrategy, this.providerService, tables);
                final BGPPeer peer = new BGPPeer("peer-" + this.mock.toString(), null, null, rib.getLocalAs(), rib);