import static java.util.Objects.requireNonNull;
import com.google.common.base.Function;
-import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.util.concurrent.FluentFutures;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcError;
import org.opendaylight.yangtools.yang.common.RpcResult;
private void registerRpc(final DeviceInfo node) {
final var path = InstanceIdentifier.create(Nodes.class).child(Node.class, new NodeKey(node.getNodeId()));
LOG.debug("The path is registered : {}", path);
- rpcRegistrations.put(node.getNodeId().getValue(), rpcProviderService.registerRpcImplementations(
- ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(GetActiveBundle.class, this::getActiveBundle)
- .put(CommitActiveBundle.class, this::commitActiveBundle)
- .build(), Set.of(path)));
+ rpcRegistrations.put(node.getNodeId().getValue(), rpcProviderService.registerRpcImplementations(List.of(
+ (GetActiveBundle) this::getActiveBundle,
+ (CommitActiveBundle) this::commitActiveBundle), Set.of(path)));
}
private void deregisterRpc(final DeviceInfo node) {
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
import static java.util.Objects.requireNonNullElse;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.util.concurrent.FluentFuture;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
this.dataBroker = requireNonNull(dataBroker);
addFlow = rpcService.getRpc(AddFlow.class);
removeFlow = rpcService.getRpc(RemoveFlow.class);
- reg = rpcProviderService.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(Register.class, this::register)
- .put(AddFlowsRpc.class, this::addFlowsRpc)
- .put(RemoveFlowsRpc.class, this::removeFlowsRpc)
- .put(AddFlowsDs.class, this::addFlowsDs)
- .put(RemoveFlowsDs.class, this::removeFlowsDs)
- .put(FlowTest.class, this::flowTest)
- .put(ReadFlowTest.class, this::readFlowTest)
- .put(FlowRpcAddTest.class, this::flowRpcAddTest)
- .put(FlowRpcAddMultiple.class, this::flowRpcAddMultiple)
- .put(TableTest.class, this::tableTest)
- .build());
+ reg = rpcProviderService.registerRpcImplementations(
+ (Register) this::register,
+ (AddFlowsRpc) this::addFlowsRpc,
+ (RemoveFlowsRpc) this::removeFlowsRpc,
+ (AddFlowsDs) this::addFlowsDs,
+ (RemoveFlowsDs) this::removeFlowsDs,
+ (FlowTest) this::flowTest,
+ (ReadFlowTest) this::readFlowTest,
+ (FlowRpcAddTest) this::flowRpcAddTest,
+ (FlowRpcAddMultiple) this::flowRpcAddMultiple,
+ (TableTest) this::tableTest);
LoggingFutures.addErrorLogging(register(new RegisterInputBuilder().build()), LOG, "register");
}
import static org.opendaylight.infrautils.utils.concurrent.LoggingFutures.addErrorLogging;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.util.concurrent.ConcurrentHashMap;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.applications.lldp.speaker.rev141023.SetLldpFloodIntervalOutput;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
import org.opendaylight.yangtools.yang.common.Uint32;
scheduledSpeakerTask = scheduledExecutorService.scheduleAtFixedRate(this, LLDP_FLOOD_PERIOD, LLDP_FLOOD_PERIOD,
TimeUnit.SECONDS);
- registration = rpcProviderService.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(GetLldpFloodInterval.class, this::getLldpFloodInterval)
- .put(GetOperationalStatus.class, this::getOperationalStatus)
- .put(SetLldpFloodInterval.class, this::setLldpFloodInterval)
- .put(ChangeOperationalStatus.class, this::changeOperationalStatus)
- .build());
+ registration = rpcProviderService.registerRpcImplementations(
+ (GetLldpFloodInterval) this::getLldpFloodInterval,
+ (GetOperationalStatus) this::getOperationalStatus,
+ (SetLldpFloodInterval) this::setLldpFloodInterval,
+ (ChangeOperationalStatus) this::changeOperationalStatus);
LOG.info("LLDPSpeaker started, it will send LLDP frames each {} seconds", LLDP_FLOOD_PERIOD);
}
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>karaf4-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
</parent>
<groupId>org.opendaylight.openflowplugin</groupId>
<artifactId>openflowplugin-karaf</artifactId>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.netconf</groupId>
<artifactId>netconf-artifacts</artifactId>
- <version>7.0.1</version>
+ <version>7.0.2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-artifacts</artifactId>
- <version>13.0.0</version>
+ <version>13.0.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>controller-artifacts</artifactId>
- <version>9.0.0</version>
+ <version>9.0.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>controller-artifacts</artifactId>
- <version>9.0.0</version>
+ <version>9.0.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
- <version>6.0.5</version>
+ <version>6.0.6</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>feature-repo-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>single-feature-parent</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
- <version>6.0.5</version>
+ <version>6.0.6</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.opendaylight.yangtools</groupId>
<artifactId>yangtools-artifacts</artifactId>
- <version>13.0.1</version>
+ <version>13.0.2</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>mdsal-artifacts</artifactId>
- <version>13.0.0</version>
+ <version>13.0.1</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
*/
package org.opendaylight.openflowplugin.impl.rpc;
-import com.google.common.collect.ImmutableClassToInstanceMap;
+import com.google.common.collect.ImmutableList;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.Set;
import org.opendaylight.openflowplugin.impl.statistics.services.direct.singlelayer.SingleGetNodeConnectorStatistics;
import org.opendaylight.openflowplugin.impl.statistics.services.direct.singlelayer.SingleGetQueueStatistics;
import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.async.config.service.rev170619.GetAsync;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.async.config.service.rev170619.SetAsync;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetMeterStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetNodeConnectorStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.echo.service.rev150305.SendEcho;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.message.service.rev151020.SendExperimenter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.experimenter.mp.message.service.rev151020.SendExperimenterMpRequest;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flat.batch.service.rev160321.ProcessFlatBatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.AddFlow;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlow;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlow;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForAllFlows;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAggregateFlowStatisticsFromFlowTableForGivenMatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowStatisticsFromFlowTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetAllFlowsStatisticsFromAllFlowTables;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsFromFlowTable;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.table.statistics.rev131215.GetFlowTablesStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.transaction.rev150304.SendBarrier;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.AddGroup;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.RemoveGroup;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.service.rev130918.UpdateGroup;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetAllGroupStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupDescription;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupFeatures;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.AddMeter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.RemoveMeter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterFeatures;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.module.config.rev141015.SetConfig;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.AddBundleMessages;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.bundle.service.rev170124.ControlBundle;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacket;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.port.service.rev131107.UpdatePort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214.GetAllNodeConnectorsStatistics;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromAllPorts;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetAllQueuesStatisticsFromGivenPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.queue.statistics.rev131216.GetQueueStatisticsFromGivenPort;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.table.service.rev131026.UpdateTable;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.Rpc;
// FIXME: Use multipart writer provider from device context
final var multipartWriterProvider = MultipartWriterProviderFactory.createDefaultProvider(deviceContext);
- final var builder = ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(SendBarrier.class, sendBarrier)
+ final var builder = ImmutableList.<Rpc<?, ?>>builder()
+ .add(sendBarrier)
// node-config.yang
- .put(SetConfig.class, new SetConfigImpl(this, deviceContext))
+ .add(new SetConfigImpl(this, deviceContext))
// packet-processing.yang
- .put(TransmitPacket.class, new TransmitPacketImpl(this, deviceContext, convertorExecutor))
+ .add(new TransmitPacketImpl(this, deviceContext, convertorExecutor))
// sal-async-config.yang
- .put(GetAsync.class, new GetAsyncImpl(this, deviceContext))
- .put(SetAsync.class, new SetAsyncImpl(this, deviceContext))
+ .add(new GetAsyncImpl(this, deviceContext))
+ .add(new SetAsyncImpl(this, deviceContext))
// sal-echo.yang
- .put(SendEcho.class, new SendEchoImpl(this, deviceContext))
- .put(SendExperimenter.class, sendExperimenter)
+ .add(new SendEchoImpl(this, deviceContext))
+ .add(sendExperimenter)
// sal-bundle.yang (ONF extension?)
- .put(ControlBundle.class, new ControlBundleImpl(sendExperimenter))
- .put(AddBundleMessages.class, new AddBundleMessagesImpl(sendExperimenter))
+ .add(new ControlBundleImpl(sendExperimenter))
+ .add(new AddBundleMessagesImpl(sendExperimenter))
// sal-experimenter-mp-message.yang
- .put(SendExperimenterMpRequest.class, new SendExperimenterMpRequestImpl(this, deviceContext,
- extensionConverterProvider))
- .put(AddFlow.class, addFlow)
- .put(RemoveFlow.class, removeFlow)
- .put(UpdateFlow.class, updateFlow)
- .put(AddGroup.class, addGroup)
- .put(RemoveGroup.class, removeGroup)
- .put(UpdateGroup.class, updateGroup)
- .put(AddMeter.class, addMeter)
- .put(RemoveMeter.class, removeMeter)
- .put(UpdateMeter.class, updateMeter)
+ .add(new SendExperimenterMpRequestImpl(this, deviceContext, extensionConverterProvider))
+ .add(addFlow)
+ .add(removeFlow)
+ .add(updateFlow)
+ .add(addGroup)
+ .add(removeGroup)
+ .add(updateGroup)
+ .add(addMeter)
+ .add(removeMeter)
+ .add(updateMeter)
// sal-port.yang
- .put(UpdatePort.class, new UpdatePortImpl(this, deviceContext, convertorExecutor))
+ .add(new UpdatePortImpl(this, deviceContext, convertorExecutor))
// sal-flat-batch.yang
- .put(ProcessFlatBatch.class, new ProcessFlatBatchImpl(
+ .add(new ProcessFlatBatchImpl(
// sal-flows-batch.yang
// FIXME: register these?
new AddFlowsBatchImpl(addFlow, sendBarrier),
new RemoveMetersBatchImpl(removeMeter, sendBarrier),
new UpdateMetersBatchImpl(updateMeter, sendBarrier)))
// sal-table.yang
- .put(UpdateTable.class, new UpdateTableImpl(this, deviceContext, convertorExecutor,
- multipartWriterProvider))
+ .add(new UpdateTableImpl(this, deviceContext, convertorExecutor, multipartWriterProvider))
// opendaylight-flow-statistics.yang
- .put(GetAggregateFlowStatisticsFromFlowTableForGivenMatch.class,
- new GetAggregateFlowStatisticsFromFlowTableForGivenMatchImpl(this, deviceContext, convertorExecutor))
+ .add(new GetAggregateFlowStatisticsFromFlowTableForGivenMatchImpl(this, deviceContext, convertorExecutor))
// opendaylight-direct-statistics.yang
- .put(GetFlowStatistics.class, singleLayer
+ .add(singleLayer
? new SingleGetFlowStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider)
: new MultiGetFlowStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider))
- .put(GetGroupStatistics.class, singleLayer
+ .add(singleLayer
? new SingleGetGroupStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider)
: new MultiGetGroupStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider))
- .put(GetQueueStatistics.class, singleLayer
+ .add(singleLayer
? new SingleGetQueueStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider)
: new MultiGetQueueStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider))
- .put(GetMeterStatistics.class, singleLayer
+ .add(singleLayer
? new SingleGetMeterStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider)
: new MultiGetMeterStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider))
- .put(GetNodeConnectorStatistics.class, singleLayer
+ .add(singleLayer
? new SingleGetNodeConnectorStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider)
: new MultiGetNodeConnectorStatistics(this, deviceContext, convertorExecutor, multipartWriterProvider));
builder
// Legacy RPCs
- .put(GetAggregateFlowStatisticsFromFlowTableForAllFlows.class,
- new GetAggregateFlowStatisticsFromFlowTableForAllFlowsImpl(this, deviceContext, convertorExecutor,
+ .add(new GetAggregateFlowStatisticsFromFlowTableForAllFlowsImpl(this, deviceContext, convertorExecutor,
+ statsCompatXidSeed, notificationPublishService))
+ .add(new GetAllFlowStatisticsFromFlowTableImpl(this, deviceContext, convertorExecutor,
+ statsCompatXidSeed, notificationPublishService))
+ .add(new GetAllFlowsStatisticsFromAllFlowTablesImpl(this, deviceContext, convertorExecutor,
statsCompatXidSeed, notificationPublishService))
- .put(GetAllFlowStatisticsFromFlowTable.class,
- new GetAllFlowStatisticsFromFlowTableImpl(this, deviceContext, convertorExecutor,
- statsCompatXidSeed, notificationPublishService))
- .put(GetAllFlowsStatisticsFromAllFlowTables.class,
- new GetAllFlowsStatisticsFromAllFlowTablesImpl(this, deviceContext, convertorExecutor,
- statsCompatXidSeed, notificationPublishService))
- .put(GetFlowStatisticsFromFlowTable.class,
- new GetFlowStatisticsFromFlowTableImpl(this, deviceContext, convertorExecutor, statsCompatXidSeed,
- notificationPublishService))
+ .add(new GetFlowStatisticsFromFlowTableImpl(this, deviceContext, convertorExecutor, statsCompatXidSeed,
+ notificationPublishService))
// register all statistics (deprecated) services
- .put(GetFlowTablesStatistics.class,
- new GetFlowTablesStatisticsImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService))
- .put(org.opendaylight.yang.gen.v1.urn.opendaylight.group.statistics.rev131111.GetGroupStatistics.class,
- new GetGroupStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(GetAllGroupStatistics.class,
- new GetAllGroupStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(GetGroupDescription.class,
- new GetGroupDescriptionImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(GetGroupFeatures.class,
- new GetGroupFeaturesImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatistics.class,
- new GetMeterStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111
- .GetAllMeterStatistics.class,
- new GetAllMeterStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(GetAllMeterConfigStatistics.class,
- new GetAllMeterConfigStatisticsImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService, convertorExecutor))
- .put(GetMeterFeatures.class,
- new GetMeterFeaturesImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
- convertorExecutor))
- .put(GetQueueStatisticsFromGivenPort.class,
- new GetQueueStatisticsFromGivenPortImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService))
- .put(GetAllQueuesStatisticsFromAllPorts.class,
- new GetAllQueuesStatisticsFromAllPortsImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService))
- .put(GetAllQueuesStatisticsFromGivenPort.class,
- new GetAllQueuesStatisticsFromGivenPortImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService))
- .put(org.opendaylight.yang.gen.v1.urn.opendaylight.port.statistics.rev131214
- .GetNodeConnectorStatistics.class,
- new GetNodeConnectorStatisticsImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService))
- .put(GetAllNodeConnectorsStatistics.class,
- new GetAllNodeConnectorsStatisticsImpl(this, deviceContext, compatibilityXidSeed,
- notificationPublishService));
+ .add(new GetFlowTablesStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService))
+ .add(new GetGroupStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
+ convertorExecutor))
+ .add(new GetAllGroupStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService, convertorExecutor))
+ .add(new GetGroupDescriptionImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
+ convertorExecutor))
+ .add(new GetGroupFeaturesImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
+ convertorExecutor))
+ .add(new GetMeterStatisticsImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
+ convertorExecutor))
+ .add(new GetAllMeterStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService, convertorExecutor))
+ .add(new GetAllMeterConfigStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService, convertorExecutor))
+ .add(new GetMeterFeaturesImpl(this, deviceContext, compatibilityXidSeed, notificationPublishService,
+ convertorExecutor))
+ .add(new GetQueueStatisticsFromGivenPortImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService))
+ .add(new GetAllQueuesStatisticsFromAllPortsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService))
+ .add(new GetAllQueuesStatisticsFromGivenPortImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService))
+ .add(new GetNodeConnectorStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService))
+ .add(new GetAllNodeConnectorsStatisticsImpl(this, deviceContext, compatibilityXidSeed,
+ notificationPublishService));
}
rpcRegistration = rpcProviderRegistry.registerRpcImplementations(builder.build(),
package org.opendaylight.openflowplugin.impl.statistics;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.GetStatisticsWorkModeOutputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.StatisticsWorkMode;
import org.opendaylight.yangtools.concepts.Registration;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
this.executor = executor;
converterExecutor = convertorExecutor;
controlServiceRegistration = rpcProviderRegistry.registerRpcImplementations(
- ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(GetStatisticsWorkMode.class, this::getStatisticsWorkMode)
- .put(ChangeStatisticsWorkMode.class, this::changeStatisticsWorkMode)
- .build());
+ (GetStatisticsWorkMode) this::getStatisticsWorkMode,
+ (ChangeStatisticsWorkMode) this::changeStatisticsWorkMode);
}
@VisibleForTesting
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import com.google.common.collect.ClassToInstanceMap;
+import java.util.Collection;
import java.util.Set;
import org.junit.Before;
import org.junit.Test;
@Mock
private DeviceFlowRegistry flowRegistry;
@Captor
- private ArgumentCaptor<ClassToInstanceMap<Rpc<?, ?>>> captor;
+ private ArgumentCaptor<Collection<Rpc<?, ?>>> captor;
private KeyedInstanceIdentifier<Node, NodeKey> nodeInstanceIdentifier;
private RpcContextImpl rpcContext;
@Test
public void testInstantiateServiceInstance() {
- when(rpcProviderRegistry.registerRpcImplementations(any(),
+ when(rpcProviderRegistry.registerRpcImplementations(any(Collection.class),
eq(Set.of(nodeInstanceIdentifier)))).thenReturn(registration);
when(deviceContext.getDeviceFlowRegistry()).thenReturn(flowRegistry);
import com.google.common.util.concurrent.MoreExecutors;
import java.util.List;
import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Future;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfigBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.ChangeStatisticsWorkModeInputBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.ChangeStatisticsWorkModeOutput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.GetStatisticsWorkModeOutput;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflowplugin.sm.control.rev150812.StatisticsWorkMode;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
+import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.Uint32;
.create(Nodes.class)
.child(Node.class, new NodeKey(new NodeId("openflow:10")));
- when(rpcProviderRegistry.registerRpcImplementations(any())).thenReturn(serviceControlRegistration);
+ when(rpcProviderRegistry.registerRpcImplementations(any(Rpc[].class))).thenReturn(serviceControlRegistration);
final ConvertorManager convertorManager = ConvertorManagerFactory.createDefaultManager();
@Test
public void testGetStatisticsWorkMode() throws Exception {
- final Future<RpcResult<GetStatisticsWorkModeOutput>> workMode = statisticsManager.getStatisticsWorkMode(null);
+ final var workMode = statisticsManager.getStatisticsWorkMode(null);
assertTrue(workMode.isDone());
assertTrue(workMode.get().isSuccessful());
assertNotNull(workMode.get().getResult());
<parent>
<groupId>org.opendaylight.mdsal</groupId>
<artifactId>binding-parent</artifactId>
- <version>13.0.0</version>
+ <version>13.0.1</version>
<relativePath/>
</parent>
<dependency>
<groupId>org.opendaylight.controller</groupId>
<artifactId>controller-artifacts</artifactId>
- <version>9.0.0</version>
+ <version>9.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.opendaylight.infrautils</groupId>
<artifactId>infrautils-artifacts</artifactId>
- <version>6.0.5</version>
+ <version>6.0.6</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<parent>
<groupId>org.opendaylight.odlparent</groupId>
<artifactId>odlparent-lite</artifactId>
- <version>13.0.10</version>
+ <version>13.0.11</version>
<relativePath/>
</parent>
*/
package org.opendaylight.openflowplugin.test;
-import com.google.common.collect.ImmutableClassToInstanceMap;
+import java.util.List;
import java.util.Set;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
@Inject
@Activate
public OpenflowpluginGroupTestRpcsProvider(@Reference final RpcProviderService rpcRegistry) {
- groupRegistration = rpcRegistry.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(AddGroup.class, input -> {
+ groupRegistration = rpcRegistry.registerRpcImplementations(List.of(
+ (AddGroup) input -> {
LOG.info("addGroup - {}", input);
return null;
- })
- .put(RemoveGroup.class, input -> {
+ },
+ (RemoveGroup) input -> {
LOG.info("removeGroup - {}", input);
return null;
- })
- .put(UpdateGroup.class, input -> {
+ },
+ (UpdateGroup) input -> {
LOG.info("updateGroup - {}", input);
return null;
- })
- .build(),
- Set.of(InstanceIdentifier.create(Nodes.class)
+ }), Set.of(InstanceIdentifier.create(Nodes.class)
.child(Node.class, new NodeKey(new NodeId(OpenflowpluginTestActivator.NODE_ID)))));
LOG.info("SalGroupRpcsProvider Started.");
}
*/
package org.opendaylight.openflowplugin.test;
-import com.google.common.collect.ImmutableClassToInstanceMap;
+import java.util.List;
import java.util.Set;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.service.rev130918.UpdateMeter;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
@Inject
@Activate
public OpenflowpluginMeterTestRpcsProvider(@Reference final RpcProviderService rpcRegistry) {
- meterRegistration = rpcRegistry.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(RemoveMeter.class, input -> {
+ meterRegistration = rpcRegistry.registerRpcImplementations(List.of(
+ (RemoveMeter) input -> {
LOG.info("removeMeter - {}", input);
return null;
- })
- .put(AddMeter.class, input -> {
+ },
+ (AddMeter) input -> {
LOG.info("addMeter - {}", input);
return null;
- })
- .put(UpdateMeter.class, input -> {
+ },
+ (UpdateMeter) input -> {
LOG.info("updateMeter - {}", input);
return null;
- })
- .build(),
- Set.of(InstanceIdentifier.create(Nodes.class)
+ }), Set.of(InstanceIdentifier.create(Nodes.class)
.child(Node.class, new NodeKey(new NodeId(OpenflowpluginTestActivator.NODE_ID)))));
LOG.info("SalMeterRpcsProvider Started.");
}
*/
package org.opendaylight.openflowplugin.test;
-import com.google.common.collect.ImmutableClassToInstanceMap;
+import java.util.List;
import java.util.Set;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.opendaylight.yangtools.yang.binding.Rpc;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
@Inject
@Activate
public OpenflowpluginTestRpcProvider(@Reference final RpcProviderService rpcRegistry) {
- flowRegistration = rpcRegistry.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
- .put(AddFlow.class, input -> {
+ flowRegistration = rpcRegistry.registerRpcImplementations(List.of(
+ (AddFlow) input -> {
LOG.info("addFlow - {}", input);
return null;
- })
- .put(RemoveFlow.class, input -> {
+ },
+ (RemoveFlow) input -> {
LOG.info("removeFlow - {}", input);
return null;
- })
- .put(UpdateFlow.class, input -> {
+ },
+ (UpdateFlow) input -> {
LOG.info("updateFlow - {}", input);
return null;
- })
- .build(),
- Set.of(InstanceIdentifier.create(Nodes.class)
+ }), Set.of(InstanceIdentifier.create(Nodes.class)
.child(Node.class, new NodeKey(new NodeId(OpenflowpluginTestActivator.NODE_ID)))));
}