*/
package org.opendaylight.netconf.client;
+import static java.util.Objects.requireNonNull;
+
import io.netty.channel.EventLoopGroup;
import io.netty.util.Timer;
import io.netty.util.concurrent.Future;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
+import javax.inject.Inject;
+import javax.inject.Singleton;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.netconf.client.conf.NetconfReconnectingClientConfiguration;
import org.opendaylight.netconf.nettyutil.AbstractNetconfDispatcher;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+@Singleton
+@Component(immediate = true, service = NetconfClientDispatcher.class, property = "type=netconf-client-dispatcher")
public class NetconfClientDispatcherImpl
extends AbstractNetconfDispatcher<NetconfClientSession, NetconfClientSessionListener>
implements NetconfClientDispatcher {
-
private static final Logger LOG = LoggerFactory.getLogger(NetconfClientDispatcherImpl.class);
private final Timer timer;
- public NetconfClientDispatcherImpl(final EventLoopGroup bossGroup, final EventLoopGroup workerGroup,
- final Timer timer) {
+ @Inject
+ @Activate
+ public NetconfClientDispatcherImpl(@Reference(target = "(type=global-boss-group)") final EventLoopGroup bossGroup,
+ @Reference(target = "(type=global-worker-group)") final EventLoopGroup workerGroup,
+ @Reference(target = "(type=global-timer)") final Timer timer) {
super(bossGroup, workerGroup);
- this.timer = timer;
+ this.timer = requireNonNull(timer);
}
- protected Timer getTimer() {
+ protected final Timer getTimer() {
return timer;
}
if (odlHelloCapabilities == null || odlHelloCapabilities.isEmpty()) {
return new NetconfClientSessionNegotiatorFactory(timer, cfg.getAdditionalHeader(),
cfg.getConnectionTimeoutMillis());
- } else {
- // LinkedHashSet since perhaps the device cares about order of hello message capabilities.
- // This allows user control of the order while complying with the existing interface.
- final Set<String> stringCapabilities = new LinkedHashSet<>();
- for (final Uri uri : odlHelloCapabilities) {
- stringCapabilities.add(uri.getValue());
- }
- return new NetconfClientSessionNegotiatorFactory(timer, cfg.getAdditionalHeader(),
- cfg.getConnectionTimeoutMillis(), stringCapabilities);
}
+
+ // LinkedHashSet since perhaps the device cares about order of hello message capabilities.
+ // This allows user control of the order while complying with the existing interface.
+ final Set<String> stringCapabilities = new LinkedHashSet<>();
+ for (final Uri uri : odlHelloCapabilities) {
+ stringCapabilities.add(uri.getValue());
+ }
+ return new NetconfClientSessionNegotiatorFactory(timer, cfg.getAdditionalHeader(),
+ cfg.getConnectionTimeoutMillis(), stringCapabilities);
}
}