From: Robert Varga Date: Wed, 4 Sep 2019 06:30:56 +0000 (+0200) Subject: Convert to using requireNonNull() X-Git-Tag: release/magnesium~43 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=f272d576a810e186759669e97f9f5b860e43d643;p=netconf.git Convert to using requireNonNull() This is a second pass to migrate further Preconditions users to java.util.Objects.requireNonNull(). Change-Id: Idb32790ae96957961628eae384c801931a203c08 Signed-off-by: Robert Varga --- diff --git a/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/CallHomeAuthorization.java b/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/CallHomeAuthorization.java index 81d6c6fa75..673c932050 100644 --- a/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/CallHomeAuthorization.java +++ b/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/CallHomeAuthorization.java @@ -7,7 +7,9 @@ */ package org.opendaylight.netconf.callhome.protocol; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.ImmutableSet; import java.security.KeyPair; import java.util.Collection; @@ -104,8 +106,8 @@ public abstract class CallHomeAuthorization { private final Set clientKeys = new HashSet<>(); Builder(final String nodeId, final String username) { - this.nodeId = Preconditions.checkNotNull(nodeId); - this.username = Preconditions.checkNotNull(username); + this.nodeId = requireNonNull(nodeId); + this.username = requireNonNull(username); } /** @@ -146,10 +148,10 @@ public abstract class CallHomeAuthorization { ServerAllowed(final String nodeId, final String username, final Collection passwords, final Collection clientKeyPairs) { - this.username = Preconditions.checkNotNull(username); + this.username = requireNonNull(username); this.passwords = ImmutableSet.copyOf(passwords); this.clientKeyPair = ImmutableSet.copyOf(clientKeyPairs); - this.nodeId = Preconditions.checkNotNull(nodeId); + this.nodeId = requireNonNull(nodeId); } @Override @@ -164,7 +166,7 @@ public abstract class CallHomeAuthorization { @Override protected void applyTo(final ClientSession session) { - Preconditions.checkArgument(session instanceof ClientSessionImpl); + checkArgument(session instanceof ClientSessionImpl); session.setUsername(username); // First try authentication using server host keys, else try password. diff --git a/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/MinaSshNettyChannel.java b/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/MinaSshNettyChannel.java index e18facf652..72ba8b1698 100644 --- a/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/MinaSshNettyChannel.java +++ b/netconf/callhome-protocol/src/main/java/org/opendaylight/netconf/callhome/protocol/MinaSshNettyChannel.java @@ -5,10 +5,10 @@ * 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.netconf.callhome.protocol; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import io.netty.buffer.ByteBuf; import io.netty.channel.AbstractServerChannel; import io.netty.channel.ChannelConfig; @@ -43,9 +43,9 @@ class MinaSshNettyChannel extends AbstractServerChannel { MinaSshNettyChannel(final CallHomeSessionContext context, final ClientSession session, final ClientChannel sshChannel) { - this.context = Preconditions.checkNotNull(context); - this.session = Preconditions.checkNotNull(session); - this.sshChannel = Preconditions.checkNotNull(sshChannel); + this.context = requireNonNull(context); + this.session = requireNonNull(session); + this.sshChannel = requireNonNull(sshChannel); this.sshReadHandler = new AsyncSshHandlerReader( new ConnectionClosedDuringRead(), new FireReadMessage(), "netconf", sshChannel.getAsyncOut()); this.sshWriteAsyncHandler = new AsyncSshHandlerWriter(sshChannel.getAsyncIn()); diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountSessionContext.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountSessionContext.java index 539f6ab315..85a79934ab 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountSessionContext.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/CallHomeMountSessionContext.java @@ -5,10 +5,10 @@ * 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.netconf.callhome.mount; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import io.netty.util.concurrent.Promise; import java.net.InetSocketAddress; import java.security.PublicKey; @@ -42,11 +42,11 @@ class CallHomeMountSessionContext { CallHomeMountSessionContext(String nodeId, CallHomeProtocolSessionContext protocol, CallHomeChannelActivator activator, CloseCallback callback) { - this.nodeId = new NodeId(Preconditions.checkNotNull(nodeId, "nodeId")); + this.nodeId = new NodeId(requireNonNull(nodeId, "nodeId")); this.key = ContextKey.from(protocol.getRemoteAddress()); - this.protocol = Preconditions.checkNotNull(protocol, "protocol"); - this.activator = Preconditions.checkNotNull(activator, "activator"); - this.onClose = Preconditions.checkNotNull(callback, "callback"); + this.protocol = requireNonNull(protocol, "protocol"); + this.activator = requireNonNull(activator, "activator"); + this.onClose = requireNonNull(callback, "callback"); } NodeId getId() { diff --git a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/ContextKey.java b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/ContextKey.java index 3536d66090..9f422d109e 100644 --- a/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/ContextKey.java +++ b/netconf/callhome-provider/src/main/java/org/opendaylight/netconf/callhome/mount/ContextKey.java @@ -5,11 +5,11 @@ * 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.netconf.callhome.mount; -import com.google.common.base.Objects; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; @@ -21,13 +21,12 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode; class ContextKey { - private final IpAddress address; private final PortNumber port; - ContextKey(IpAddress address, PortNumber port) { - this.address = Preconditions.checkNotNull(address); - this.port = Preconditions.checkNotNull(port); + ContextKey(final IpAddress address, final PortNumber port) { + this.address = requireNonNull(address); + this.port = requireNonNull(port); } @Override @@ -40,7 +39,7 @@ class ContextKey { } @Override - public boolean equals(Object obj) { + public boolean equals(final Object obj) { if (this == obj) { return true; } @@ -51,7 +50,7 @@ class ContextKey { return false; } ContextKey other = (ContextKey) obj; - return Objects.equal(address, other.address) && Objects.equal(port, other.port); + return address.equals(other.address) && port.equals(other.port); } IpAddress getIpAddress() { @@ -62,12 +61,12 @@ class ContextKey { return port; } - public static ContextKey from(NetconfNode node) { + public static ContextKey from(final NetconfNode node) { return new ContextKey(node.getHost().getIpAddress(), node.getPort()); } - public static ContextKey from(SocketAddress remoteAddress) { - Preconditions.checkArgument(remoteAddress instanceof InetSocketAddress); + public static ContextKey from(final SocketAddress remoteAddress) { + checkArgument(remoteAddress instanceof InetSocketAddress); InetSocketAddress inetSocketAddr = (InetSocketAddress) remoteAddress; InetAddress ipAddress = inetSocketAddr.getAddress(); @@ -75,7 +74,7 @@ class ContextKey { if (ipAddress instanceof Inet4Address) { yangIp = new IpAddress(IetfInetUtil.INSTANCE.ipv4AddressFor(ipAddress)); } else { - Preconditions.checkArgument(ipAddress instanceof Inet6Address); + checkArgument(ipAddress instanceof Inet6Address); yangIp = new IpAddress(IetfInetUtil.INSTANCE.ipv6AddressFor(ipAddress)); } return new ContextKey(yangIp, new PortNumber(inetSocketAddr.getPort())); diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java index 69e2dd20bd..97d067dae5 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/api/RemoteDeviceConnector.java @@ -5,24 +5,29 @@ * 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.netconf.topology.singleton.api; import org.opendaylight.netconf.sal.connect.api.RemoteDeviceHandler; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences; /** - * Provides API for connection odl (master) with device. + * Provides API for connection ODL (master) with device. */ +// FIXME: way more documentation is needed here public interface RemoteDeviceConnector { /** * Create device communicator and open device connection. + * + * @param deviceHandler Device handler + * @throws NullPointerException if {@code deviceHandler} is null */ + // FIXME: this should return a resource corresponding to the device connection void startRemoteDeviceConnection(RemoteDeviceHandler deviceHandler); /** * Stop device communicator. */ + // FIXME: see above, this should live in the returned resource void stopRemoteDeviceConnection(); } diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java index ee2d3ee0b1..2460134aa7 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/MasterSalFacade.java @@ -7,13 +7,14 @@ */ package org.opendaylight.netconf.topology.singleton.impl; +import static java.util.Objects.requireNonNull; + import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.cluster.Cluster; import akka.dispatch.OnComplete; import akka.pattern.Patterns; import akka.util.Timeout; -import com.google.common.base.Preconditions; import java.util.List; import java.util.stream.Collectors; import org.opendaylight.mdsal.binding.api.DataBroker; @@ -129,11 +130,9 @@ class MasterSalFacade implements AutoCloseable, RemoteDeviceHandler salFacade = deviceHandler; + RemoteDeviceHandler salFacade = requireNonNull(deviceHandler); if (keepaliveDelay > 0) { LOG.info("{}: Adding keepalive facade.", remoteDeviceId); salFacade = new KeepaliveSalFacade(remoteDeviceId, salFacade, @@ -166,6 +169,8 @@ public class RemoteDeviceConnectorImpl implements RemoteDeviceConnector { final NetconfDevice.SchemaResourcesDTO schemaResourcesDTO = netconfTopologyDeviceSetup.getSchemaResourcesDTO(); // pre register yang library sources as fallback schemas to schema registry + // FIXME: this list not used anywhere. Should it be retained or discarded? (why?) + // it would seem those registrations should be bound to NetconfConnectorDTO final List> registeredYangLibSources = Lists.newArrayList(); if (node.getYangLibrary() != null) { final String yangLibURL = node.getYangLibrary().getYangLibraryUrl().getValue(); diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java index 753637753c..ec76f8866b 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/DummyMonitoringService.java @@ -10,9 +10,9 @@ package org.opendaylight.netconf.test.tool; import com.google.common.base.Function; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Collections2; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.Optional; import java.util.Set; import org.opendaylight.netconf.api.capability.Capability; @@ -57,9 +57,9 @@ public class DummyMonitoringService implements NetconfMonitoringService { public DummyMonitoringService(final Set capabilities) { this.capabilities = new CapabilitiesBuilder().setCapability( - Lists.newArrayList(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build(); + new ArrayList<>(Collections2.transform(capabilities, CAPABILITY_URI_FUNCTION))).build(); - Set moduleCapabilities = Sets.newHashSet(); + Set moduleCapabilities = new HashSet<>(); this.capabilityMultiMap = ArrayListMultimap.create(); for (Capability cap : capabilities) { if (cap.getModuleName().isPresent()) { @@ -69,7 +69,7 @@ public class DummyMonitoringService implements NetconfMonitoringService { } this.schemas = new SchemasBuilder().setSchema( - Lists.newArrayList(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION))).build(); + new ArrayList<>(Collections2.transform(moduleCapabilities, CAPABILITY_SCHEMA_FUNCTION))).build(); } @Override diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java index ae396dc056..49eb3558f1 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/MdsalOperationProvider.java @@ -9,11 +9,11 @@ package org.opendaylight.netconf.test.tool; import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableClassToInstanceMap; -import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.google.common.util.concurrent.MoreExecutors; import java.util.Collections; import java.util.EnumMap; +import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.concurrent.ExecutionException; @@ -181,7 +181,7 @@ class MdsalOperationProvider implements NetconfOperationServiceFactory { LeafSetEntryNode locationLeafSetEntryNode = Builders.leafSetEntryBuilder().withNodeIdentifier( new NodeWithValue<>(location, "NETCONF")).withValue("NETCONF").build(); - Map keyValues = Maps.newHashMap(); + Map keyValues = new HashMap<>(); for (final Schema schema : monitor.getSchemas().getSchema()) { keyValues.put(identifier, schema.getIdentifier()); keyValues.put(version, schema.getVersion()); diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java index b74f5f52b0..46ac8a5e7c 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/NetconfDeviceSimulator.java @@ -5,13 +5,10 @@ * 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.netconf.test.tool; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.Collections2; -import com.google.common.collect.Lists; -import com.google.common.collect.Sets; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ThreadFactoryBuilder; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; @@ -28,6 +25,8 @@ import java.net.Inet4Address; import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.nio.channels.AsynchronousChannelGroup; +import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; @@ -81,8 +80,8 @@ public class NetconfDeviceSimulator implements Closeable { private final NioEventLoopGroup nettyThreadgroup; private final HashedWheelTimer hashedWheelTimer; - private final List devicesChannels = Lists.newArrayList(); - private final List sshWrappers = Lists.newArrayList(); + private final List devicesChannels = new ArrayList<>(); + private final List sshWrappers = new ArrayList<>(); private final ScheduledExecutorService minaTimerExecutor; private final ExecutorService nioExecutor; private final Configuration configuration; @@ -103,7 +102,7 @@ public class NetconfDeviceSimulator implements Closeable { private NetconfServerDispatcherImpl createDispatcher(final Set capabilities, final SchemaSourceProvider sourceProvider) { - final Set transformedCapabilities = Sets.newHashSet(Collections2.transform(capabilities, input -> { + final Set transformedCapabilities = new HashSet<>(Collections2.transform(capabilities, input -> { if (sendFakeSchema) { sendFakeSchema = false; return new FakeCapability((YangModuleCapability) input); @@ -184,7 +183,7 @@ public class NetconfDeviceSimulator implements Closeable { int currentPort = configuration.getStartingPort(); - final List openDevices = Lists.newArrayList(); + final List openDevices = new ArrayList<>(); // Generate key to temp folder final KeyPairProvider keyPairProvider = new VirtualKeyPairProvider(); @@ -285,7 +284,7 @@ public class NetconfDeviceSimulator implements Closeable { } private Set parseSchemasToModuleCapabilities(final SharedSchemaRepository consumer) { - final Set loadedSources = Sets.newHashSet(); + final Set loadedSources = new HashSet<>(); consumer.registerSchemaSourceListener(TextToASTTransformer.create(consumer, consumer)); consumer.registerSchemaSourceListener(new SchemaSourceListener() { @Override @@ -334,7 +333,7 @@ public class NetconfDeviceSimulator implements Closeable { throw new RuntimeException("Cannot parse schema context", e); } - final Set capabilities = Sets.newHashSet(); + final Set capabilities = new HashSet<>(); for (final Module module : schemaContext.getModules()) { for (final Module subModule : module.getSubmodules()) { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AbstractExecutionStrategy.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AbstractExecutionStrategy.java index b59df5495b..6f1a477696 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AbstractExecutionStrategy.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AbstractExecutionStrategy.java @@ -5,10 +5,9 @@ * 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.netconf.test.tool.client.stress; -import com.google.common.collect.Lists; +import java.util.ArrayList; import java.util.List; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfDeviceCommunicator; @@ -30,7 +29,7 @@ abstract class AbstractExecutionStrategy implements ExecutionStrategy { } private static List countEditBatchSizes(final Parameters params, final int amount) { - final List editBatches = Lists.newArrayList(); + final List editBatches = new ArrayList<>(); if (params.editBatchSize != amount) { final int fullBatches = amount / params.editBatchSize; for (int i = 0; i < fullBatches; i++) { diff --git a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java index c5833ddef5..5cfebdcdc8 100644 --- a/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java +++ b/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/client/stress/AsyncExecutionStrategy.java @@ -5,12 +5,11 @@ * 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.netconf.test.tool.client.stress; import com.google.common.base.Preconditions; -import com.google.common.collect.Lists; import com.google.common.util.concurrent.ListenableFuture; +import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; @@ -34,7 +33,7 @@ class AsyncExecutionStrategy extends AbstractExecutionStrategy { @Override public void invoke() { final AtomicInteger responseCounter = new AtomicInteger(0); - final List>> futures = Lists.newArrayList(); + final List>> futures = new ArrayList<>(); int batchI = 0; for (final Integer editBatch : getEditBatches()) { diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfDocumentedException.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfDocumentedException.java index ecd894b7ff..1d7870173b 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfDocumentedException.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfDocumentedException.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.common.errors; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.ImmutableList; import java.util.ArrayList; import java.util.Collection; @@ -152,14 +153,12 @@ public class RestconfDocumentedException extends WebApplicationException { * the HTTP status. */ public RestconfDocumentedException(final Status status) { - Preconditions.checkNotNull(status, "Status can't be null"); errors = ImmutableList.of(); - this.status = status; + this.status = requireNonNull(status, "Status can't be null"); } public RestconfDocumentedException(final Throwable cause, final RestconfError error) { super(cause, error.getErrorTag().getStatusCode()); - Preconditions.checkNotNull(error, "RestconfError can't be null"); errors = ImmutableList.of(error); status = null; } diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfError.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfError.java index fcf350f0d8..44890df1a9 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfError.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/errors/RestconfError.java @@ -5,10 +5,10 @@ * 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.restconf.common.errors; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import java.io.Serializable; import java.util.Locale; import org.opendaylight.yangtools.yang.common.RpcError; @@ -198,10 +198,8 @@ public class RestconfError implements Serializable { */ public RestconfError(final ErrorType errorType, final ErrorTag errorTag, final String errorMessage, final String errorAppTag, final String errorInfo, final YangInstanceIdentifier errorPath) { - Preconditions.checkNotNull(errorType, "Error type is required for RestConfError"); - Preconditions.checkNotNull(errorTag, "Error tag is required for RestConfError"); - this.errorType = errorType; - this.errorTag = errorTag; + this.errorType = requireNonNull(errorType, "Error type is required for RestConfError"); + this.errorTag = requireNonNull(errorTag, "Error tag is required for RestConfError"); this.errorMessage = errorMessage; this.errorAppTag = errorAppTag; this.errorInfo = errorInfo; diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/patch/PatchEntity.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/patch/PatchEntity.java index 790892304c..a57698ce93 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/patch/PatchEntity.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/patch/PatchEntity.java @@ -5,10 +5,10 @@ * 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.restconf.common.patch; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -28,10 +28,10 @@ public class PatchEntity { */ public PatchEntity(final String editId, final PatchEditOperation operation, final YangInstanceIdentifier targetNode, final NormalizedNode node) { - this.editId = Preconditions.checkNotNull(editId); - this.operation = Preconditions.checkNotNull(operation); - this.targetNode = Preconditions.checkNotNull(targetNode); - this.node = Preconditions.checkNotNull(node); + this.editId = requireNonNull(editId); + this.operation = requireNonNull(operation); + this.targetNode = requireNonNull(targetNode); + this.node = requireNonNull(node); } /** @@ -43,9 +43,9 @@ public class PatchEntity { */ public PatchEntity(final String editId, final PatchEditOperation operation, final YangInstanceIdentifier targetNode) { - this.editId = Preconditions.checkNotNull(editId); - this.operation = Preconditions.checkNotNull(operation); - this.targetNode = Preconditions.checkNotNull(targetNode); + this.editId = requireNonNull(editId); + this.operation = requireNonNull(operation); + this.targetNode = requireNonNull(targetNode); this.node = null; } diff --git a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/RestUtil.java b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/RestUtil.java index 82551250ac..4086546b32 100644 --- a/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/RestUtil.java +++ b/restconf/restconf-common/src/main/java/org/opendaylight/restconf/common/util/RestUtil.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.common.util; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import java.io.IOException; import java.io.InputStream; import java.io.PushbackInputStream; @@ -52,8 +53,7 @@ public final class RestUtil { * */ public static Optional isInputStreamEmpty(final InputStream entityStream) throws IOException { - Preconditions.checkNotNull(entityStream); - final PushbackInputStream pushbackInputStream = new PushbackInputStream(entityStream); + final PushbackInputStream pushbackInputStream = new PushbackInputStream(requireNonNull(entityStream)); int firstByte = pushbackInputStream.read(); if (firstByte == -1) { diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/codecs/RestCodec.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/codecs/RestCodec.java index 62c540f433..9f4a9c25e7 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/codecs/RestCodec.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/codecs/RestCodec.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.nb.rfc8040.codecs; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.Iterables; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.net.URI; @@ -339,6 +340,8 @@ public final class RestCodec { } } + @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", + justification = "https://github.com/spotbugs/spotbugs/issues/811") private static Module getModuleByNamespace(final String namespace, final DOMMountPoint mountPoint, final SchemaContext schemaContext) { final URI validNamespace = resolveValidNamespace(namespace, mountPoint, schemaContext); @@ -379,9 +382,11 @@ public final class RestCodec { return null; } + @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", + justification = "https://github.com/spotbugs/spotbugs/issues/811") private static DataSchemaNode findInstanceDataChildByNameAndNamespace(final DataNodeContainer container, final String name, final URI namespace) { - Preconditions.checkNotNull(namespace); + requireNonNull(namespace); final Iterable result = Iterables.filter(findInstanceDataChildrenByName(container, name), node -> namespace.equals(node.getQName().getNamespace())); @@ -390,11 +395,9 @@ public final class RestCodec { private static List findInstanceDataChildrenByName(final DataNodeContainer container, final String name) { - Preconditions.checkNotNull(container); - Preconditions.checkNotNull(name); - final List instantiatedDataNodeContainers = new ArrayList<>(); - collectInstanceDataNodeContainers(instantiatedDataNodeContainers, container, name); + collectInstanceDataNodeContainers(instantiatedDataNodeContainers, requireNonNull(container), + requireNonNull(name)); return instantiatedDataNodeContainers; } diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java index 6e12200660..5483dab8d4 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/handlers/SchemaContextHandler.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.nb.rfc8040.handlers; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import com.google.common.base.Throwables; import java.util.Collection; import java.util.concurrent.ExecutionException; @@ -89,8 +90,7 @@ public class SchemaContextHandler implements SchemaContextListenerHandler, AutoC @Override @SuppressWarnings("checkstyle:hiddenField") public void onGlobalContextUpdated(final SchemaContext context) { - Preconditions.checkNotNull(context); - schemaContext = context; + schemaContext = requireNonNull(context); final Module ietfYangLibraryModule = context.findModule(IetfYangLibrary.MODULE_QNAME).orElse(null); diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java index faf28ffe44..516b799df8 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/ParameterAwareNormalizedNodeWriter.java @@ -7,10 +7,10 @@ */ package org.opendaylight.restconf.nb.rfc8040.jersey.providers; +import static java.util.Objects.requireNonNull; import static org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter.UNKNOWN_SIZE; import com.google.common.annotations.Beta; -import com.google.common.base.Preconditions; import com.google.common.collect.Iterables; import java.io.IOException; import java.util.Collection; @@ -56,7 +56,7 @@ public class ParameterAwareNormalizedNodeWriter implements RestconfNormalizedNod private ParameterAwareNormalizedNodeWriter(final NormalizedNodeStreamWriter writer, final Integer maxDepth, final List> fields) { - this.writer = Preconditions.checkNotNull(writer); + this.writer = requireNonNull(writer); this.maxDepth = maxDepth; this.fields = fields; } diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java index e187b60102..97f0490947 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/utils/PutDataTransactionUtil.java @@ -7,8 +7,8 @@ */ package org.opendaylight.restconf.nb.rfc8040.rests.utils; -import com.google.common.collect.Maps; import com.google.common.util.concurrent.FluentFuture; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; @@ -122,7 +122,7 @@ public final class PutDataTransactionUtil { private static void isEqualUriAndPayloadKeyValues(final Map uriKeyValues, final MapEntryNode payload, final List keyDefinitions) { - final Map mutableCopyUriKeyValues = Maps.newHashMap(uriKeyValues); + final Map mutableCopyUriKeyValues = new HashMap<>(uriKeyValues); for (final QName keyDefinition : keyDefinitions) { final Object uriKeyValue = RestconfDocumentedException.throwIfNull( mutableCopyUriKeyValues.remove(keyDefinition), ErrorType.PROTOCOL, ErrorTag.DATA_MISSING, diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeImportedModule.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeImportedModule.java index 3d7feae3fd..24418c9eff 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeImportedModule.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeImportedModule.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.nb.rfc8040.services.simple.impl; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import com.google.common.collect.ForwardingObject; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -41,7 +42,7 @@ final class FakeImportedModule extends ForwardingObject implements Module { private final Module delegate; FakeImportedModule(final Module delegate) { - this.delegate = Preconditions.checkNotNull(delegate); + this.delegate = requireNonNull(delegate); } @Override diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeModuleImport.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeModuleImport.java index eff7662440..e11df85ef6 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeModuleImport.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/services/simple/impl/FakeModuleImport.java @@ -7,7 +7,8 @@ */ package org.opendaylight.restconf.nb.rfc8040.services.simple.impl; -import com.google.common.base.Preconditions; +import static java.util.Objects.requireNonNull; + import java.util.Optional; import org.opendaylight.yangtools.concepts.SemVer; import org.opendaylight.yangtools.yang.common.Revision; @@ -23,7 +24,7 @@ final class FakeModuleImport implements ModuleImport { private final Module module; FakeModuleImport(final Module module) { - this.module = Preconditions.checkNotNull(module); + this.module = requireNonNull(module); } @Override diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractQueryParams.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractQueryParams.java index feb60142b4..15b217da1b 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractQueryParams.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/AbstractQueryParams.java @@ -7,8 +7,9 @@ */ package org.opendaylight.restconf.nb.rfc8040.streams.listeners; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.VisibleForTesting; -import com.google.common.base.Preconditions; import java.io.StringReader; import java.time.Instant; import javax.xml.XMLConstants; @@ -68,7 +69,7 @@ abstract class AbstractQueryParams extends AbstractNotificationsData { @SuppressWarnings("checkstyle:hiddenField") public void setQueryParams(final Instant start, final Instant stop, final String filter, final boolean leafNodesOnly) { - this.start = Preconditions.checkNotNull(start); + this.start = requireNonNull(start); this.stop = stop; this.filter = filter; this.leafNodesOnly = leafNodesOnly; diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/ListenerAdapter.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/ListenerAdapter.java index ac3f4aeaf7..c241a63281 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/ListenerAdapter.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/ListenerAdapter.java @@ -7,8 +7,11 @@ */ package org.opendaylight.restconf.nb.rfc8040.streams.listeners; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; + import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; import java.io.IOException; import java.time.Instant; import java.util.Collection; @@ -63,10 +66,10 @@ public class ListenerAdapter extends AbstractCommonSubscriber implements Cluster final NotificationOutputType outputType) { setLocalNameOfPath(path.getLastPathArgument().getNodeType().getLocalName()); - this.outputType = Preconditions.checkNotNull(outputType); - this.path = Preconditions.checkNotNull(path); - Preconditions.checkArgument(streamName != null && !streamName.isEmpty()); - this.streamName = streamName; + this.outputType = requireNonNull(outputType); + this.path = requireNonNull(path); + this.streamName = requireNonNull(streamName); + checkArgument(!streamName.isEmpty()); } @Override @@ -190,7 +193,7 @@ public class ListenerAdapter extends AbstractCommonSubscriber implements Cluster .append(normalizedNode.getIdentifier()).build(); final Optional> childrenSchemaNode = dataSchemaContextTree.findChild(yiid); - Preconditions.checkState(childrenSchemaNode.isPresent()); + checkState(childrenSchemaNode.isPresent()); boolean isNodeMixin = childrenSchemaNode.get().isMixin(); boolean isSkippedNonLeaf = getLeafNodesOnly() && !(normalizedNode instanceof LeafNode); if (!isNodeMixin && !isSkippedNonLeaf) { @@ -258,7 +261,7 @@ public class ListenerAdapter extends AbstractCommonSubscriber implements Cluster try { SchemaPath nodePath; final Optional> childrenSchemaNode = dataSchemaContextTree.findChild(eventPath); - Preconditions.checkState(childrenSchemaNode.isPresent()); + checkState(childrenSchemaNode.isPresent()); if (normalized instanceof MapEntryNode || normalized instanceof UnkeyedListEntryNode) { nodePath = childrenSchemaNode.get().getDataSchemaNode().getPath(); } else { diff --git a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerAdapter.java b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerAdapter.java index bbfad3127c..8d95aca788 100644 --- a/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerAdapter.java +++ b/restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerAdapter.java @@ -7,9 +7,11 @@ */ package org.opendaylight.restconf.nb.rfc8040.streams.listeners; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.VisibleForTesting; import com.google.common.base.MoreObjects; -import com.google.common.base.Preconditions; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import java.io.IOException; @@ -55,10 +57,10 @@ public class NotificationListenerAdapter extends AbstractCommonSubscriber implem NotificationListenerAdapter(final SchemaPath path, final String streamName, final String outputType) { setLocalNameOfPath(path.getLastComponent().getLocalName()); - this.outputType = Preconditions.checkNotNull(outputType); - this.path = Preconditions.checkNotNull(path); - Preconditions.checkArgument(streamName != null && !streamName.isEmpty()); - this.streamName = streamName; + this.outputType = requireNonNull(outputType); + this.path = requireNonNull(path); + this.streamName = requireNonNull(streamName); + checkArgument(!streamName.isEmpty()); } /** diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/TestUtils.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/TestUtils.java index aa79fdedf9..4a6f7607a6 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/TestUtils.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/TestUtils.java @@ -7,12 +7,13 @@ */ package org.opendaylight.restconf.nb.rfc8040; +import static com.google.common.base.Preconditions.checkArgument; +import static java.util.Objects.requireNonNull; import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; -import com.google.common.base.Preconditions; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; @@ -114,7 +115,6 @@ public final class TestUtils { } public static String getDocumentInPrintableForm(final Document doc) { - Preconditions.checkNotNull(doc); try { final ByteArrayOutputStream out = new ByteArrayOutputStream(); final TransformerFactory tf = TransformerFactory.newInstance(); @@ -125,7 +125,7 @@ public final class TestUtils { transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); - transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(out, + transformer.transform(new DOMSource(requireNonNull(doc)), new StreamResult(new OutputStreamWriter(out, StandardCharsets.UTF_8))); final byte[] charData = out.toByteArray(); return new String(charData, StandardCharsets.UTF_8); @@ -235,8 +235,7 @@ public final class TestUtils { public static NodeIdentifierWithPredicates getNodeIdentifierPredicate(final String localName, final String namespace, final String revision, final String... keysAndValues) throws ParseException { - Preconditions.checkArgument(keysAndValues.length % 2 == 0, - "number of keys argument have to be divisible by 2 (map)"); + checkArgument(keysAndValues.length % 2 == 0, "number of keys argument have to be divisible by 2 (map)"); final Map predicate = new HashMap<>(); int index = 0; diff --git a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerTest.java b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerTest.java index 4f923eb120..851dae9449 100644 --- a/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerTest.java +++ b/restconf/restconf-nb-rfc8040/src/test/java/org/opendaylight/restconf/nb/rfc8040/streams/listeners/NotificationListenerTest.java @@ -7,12 +7,12 @@ */ package org.opendaylight.restconf.nb.rfc8040.streams.listeners; +import static java.util.Objects.requireNonNull; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.net.URI; import java.util.ArrayList; @@ -214,7 +214,6 @@ public class NotificationListenerTest { private String prepareJson(final DOMNotification notificationData, final SchemaPath schemaPathNotifi) { final NotificationListenerAdapter notifiAdapter = ListenersBroker.getInstance().registerNotificationListener( schemaPathNotifi, "stream-name", NotificationOutputType.JSON); - final String result = notifiAdapter.prepareJson(schmeaCtx, notificationData); - return Preconditions.checkNotNull(result); + return requireNonNull(notifiAdapter.prepareJson(schmeaCtx, notificationData)); } }