From 2cdd56d31c4514d7d7000ce7c7b6417ce53e2be2 Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Wed, 31 Aug 2016 15:16:38 +0200 Subject: Fixing sonar issues #1 Change-Id: I4c27d0ad2fd1655db2237ae914361f029093084c Signed-off-by: Maros Marsalek --- .../data/init/AbstractDataTreeConverter.java | 7 -- .../honeycomb/data/init/DataTreeInitializer.java | 8 +-- .../honeycomb/data/init/InitializerRegistry.java | 5 +- .../data/init/InitializerRegistryImpl.java | 8 --- .../honeycomb/data/init/RestoringInitializer.java | 7 +- .../data/init/InitializerRegistryImplTest.java | 9 --- .../io/fd/honeycomb/data/ReadableDataManager.java | 1 + .../data/impl/ModifiableDataTreeDelegator.java | 8 +-- .../fd/honeycomb/data/impl/WriteTransaction.java | 8 ++- .../fd/honeycomb/impl/FakeBindingAwareBroker.java | 84 ++++++++++++---------- .../impl/NorthboundFacadeHoneycombDOMBroker.java | 11 ++- .../infra/distro/InitializationException.java | 31 ++++++++ .../java/io/fd/honeycomb/infra/distro/Main.java | 5 +- .../initializer/InitializerRegistryAdapter.java | 3 - .../distro/netconf/NetconfSshServerProvider.java | 5 +- .../distro/netconf/NetconfTcpServerProvider.java | 3 +- .../impl/HoneycombNotificationCollector.java | 2 +- .../fd/honeycomb/translate/write/WriteContext.java | 2 +- .../translate/write/WriteFailedException.java | 10 +-- .../translate/write/registry/WriterRegistry.java | 2 +- .../io/fd/honeycomb/translate/util/JsonUtils.java | 17 +++-- .../util/write/TransactionWriteContext.java | 5 +- .../v3po/initializers/VppInitializer.java | 30 ++++---- 23 files changed, 143 insertions(+), 128 deletions(-) create mode 100644 infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java diff --git a/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/AbstractDataTreeConverter.java b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/AbstractDataTreeConverter.java index 74cdc3058..5476bb423 100644 --- a/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/AbstractDataTreeConverter.java +++ b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/AbstractDataTreeConverter.java @@ -54,13 +54,6 @@ public abstract class AbstractDataTreeConverter r) { + final Consumer modificationHandler) { switch (store) { case CONFIGURATION: checkArgument(configModification != null, "Modification of %s is not supported", store); - r.accept(configModification); + modificationHandler.accept(configModification); break; case OPERATIONAL: checkArgument(operationalModification != null, "Modification of %s is not supported", store); - r.accept(operationalModification); + modificationHandler.accept(operationalModification); break; + default: + throw new IllegalArgumentException("Unable to handle operation for type " + store); } } diff --git a/infra/impl/src/main/java/io/fd/honeycomb/impl/FakeBindingAwareBroker.java b/infra/impl/src/main/java/io/fd/honeycomb/impl/FakeBindingAwareBroker.java index f11848ac7..c978135cb 100644 --- a/infra/impl/src/main/java/io/fd/honeycomb/impl/FakeBindingAwareBroker.java +++ b/infra/impl/src/main/java/io/fd/honeycomb/impl/FakeBindingAwareBroker.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package io.fd.honeycomb.impl; import org.opendaylight.controller.md.sal.binding.api.DataBroker; @@ -28,7 +29,7 @@ import org.opendaylight.yangtools.yang.binding.RpcService; import org.osgi.framework.BundleContext; /** - * Binding aware broker wrapping just a DataBroker + * Binding aware broker wrapping just a DataBroker. */ public final class FakeBindingAwareBroker implements BindingAwareBroker, AutoCloseable { @@ -39,7 +40,6 @@ public final class FakeBindingAwareBroker implements BindingAwareBroker, AutoClo this.netconfBindingBrokerDependency = netconfBindingBrokerDependency; } - @Deprecated @Override public ConsumerContext registerConsumer(final BindingAwareConsumer bindingAwareConsumer, final BundleContext bundleContext) { @@ -50,14 +50,14 @@ public final class FakeBindingAwareBroker implements BindingAwareBroker, AutoClo public ConsumerContext registerConsumer(final BindingAwareConsumer bindingAwareConsumer) { final ConsumerContext consumerContext = new ConsumerContext() { @Override - public T getSALService(final Class aClass) { - return aClass.equals(DataBroker.class) - ? (T) netconfBindingBrokerDependency - : null; + public T getSALService(final Class serviceClass) { + return serviceClass.equals(DataBroker.class) + ? (T) netconfBindingBrokerDependency + : null; } @Override - public T getRpcService(final Class aClass) { + public T getRpcService(final Class serviceClass) { return null; } }; @@ -73,36 +73,7 @@ public final class FakeBindingAwareBroker implements BindingAwareBroker, AutoClo @Override public ProviderContext registerProvider(final BindingAwareProvider bindingAwareProvider) { - final ProviderContext context = new ProviderContext() { - @Override - public >> ListenerRegistration registerRouteChangeListener( - final L l) { - throw new UnsupportedOperationException("Unsupported"); - } - - @Override - public T getRpcService(final Class aClass) { - throw new UnsupportedOperationException("Unsupported"); - } - - @Override - public RpcRegistration addRpcImplementation(final Class aClass, final T t) - throws IllegalStateException { - throw new UnsupportedOperationException("Unsupported"); - } - - @Override - public RoutedRpcRegistration addRoutedRpcImplementation( - final Class aClass, final T t) throws IllegalStateException { - throw new UnsupportedOperationException("Unsupported"); - } - - @Override - public T getSALService(final Class aClass) { - return aClass.equals(DataBroker.class) - ? (T) netconfBindingBrokerDependency - : null; } - }; + final ProviderContext context = new FakeProviderContext(netconfBindingBrokerDependency); bindingAwareProvider.onSessionInitiated(context); return context; } @@ -111,4 +82,43 @@ public final class FakeBindingAwareBroker implements BindingAwareBroker, AutoClo public void close() throws Exception { netconfBindingBrokerDependency = null; } + + private static final class FakeProviderContext implements ProviderContext { + + private Object netconfBindingBrokerDependency; + + FakeProviderContext(final DataBroker netconfBindingBrokerDependency) { + this.netconfBindingBrokerDependency = netconfBindingBrokerDependency; + } + + @Override + public >> ListenerRegistration registerRouteChangeListener( + final L listener) { + throw new UnsupportedOperationException("Unsupported"); + } + + @Override + public T getRpcService(final Class serviceClass) { + throw new UnsupportedOperationException("Unsupported"); + } + + @Override + public RpcRegistration addRpcImplementation(final Class rpcClass, final T t) + throws IllegalStateException { + throw new UnsupportedOperationException("Unsupported"); + } + + @Override + public RoutedRpcRegistration addRoutedRpcImplementation( + final Class rpcClass, final T type) throws IllegalStateException { + throw new UnsupportedOperationException("Unsupported"); + } + + @Override + public T getSALService(final Class serviceClass) { + return serviceClass.equals(DataBroker.class) + ? (T) netconfBindingBrokerDependency + : null; + } + } } diff --git a/infra/impl/src/main/java/io/fd/honeycomb/impl/NorthboundFacadeHoneycombDOMBroker.java b/infra/impl/src/main/java/io/fd/honeycomb/impl/NorthboundFacadeHoneycombDOMBroker.java index 7e5dfd873..4af0a9d4a 100644 --- a/infra/impl/src/main/java/io/fd/honeycomb/impl/NorthboundFacadeHoneycombDOMBroker.java +++ b/infra/impl/src/main/java/io/fd/honeycomb/impl/NorthboundFacadeHoneycombDOMBroker.java @@ -47,7 +47,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.osgi.framework.BundleContext; /** - * Implementation of dom broker to facade VPP pipeline for northbound APIs + * Implementation of dom broker to facade VPP pipeline for northbound APIs. */ public class NorthboundFacadeHoneycombDOMBroker implements AutoCloseable, Broker { @@ -82,7 +82,6 @@ public class NorthboundFacadeHoneycombDOMBroker implements AutoCloseable, Broker return session; } - @Deprecated @Override public ConsumerSession registerConsumer(final Consumer consumer, final BundleContext bundleContext) { throw new UnsupportedOperationException(); @@ -115,8 +114,8 @@ public class NorthboundFacadeHoneycombDOMBroker implements AutoCloseable, Broker } @Override - public T getService(final Class aClass) { - return (T)services.get(aClass); + public T getService(final Class serviceClass) { + return (T)services.get(serviceClass); } @Override @@ -140,8 +139,8 @@ public class NorthboundFacadeHoneycombDOMBroker implements AutoCloseable, Broker } @Override - public T getService(final Class aClass) { - return (T)services.get(aClass); + public T getService(final Class serviceClass) { + return (T)services.get(serviceClass); } @Override diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java new file mode 100644 index 000000000..0ed530cdb --- /dev/null +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/InitializationException.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2016 Cisco and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.fd.honeycomb.infra.distro; + +/** + * Exception thrown when a failure occurs during HC initialization. + */ +public class InitializationException extends RuntimeException { + + public InitializationException(final String s) { + super(s); + } + + public InitializationException(final String s, final Throwable throwable) { + super(s, throwable); + } +} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java index 44b6cd35b..d43e33096 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/Main.java @@ -66,6 +66,8 @@ public final class Main { // Json config attributes new CfgAttrsModule()); + private Main() {} + public static void main(String[] args) { // TODO add "clean" argument init(BASE_MODULES); @@ -107,7 +109,7 @@ public final class Main { server.start(); } catch (Exception e) { LOG.error("Unable to start Restconf", e); - throw new RuntimeException("Unable to start Restconf", e); + throw new InitializationException("Unable to start Restconf", e); } } @@ -157,4 +159,5 @@ public final class Main { System.gc(); } } + } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java index 4d488cfdb..8add9fdf0 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java @@ -45,7 +45,6 @@ final class InitializerRegistryAdapter implements InitializerRegistry { LOG.info("Config initialization started"); final InitializerRegistry initializer = new InitializerRegistryImpl(pluginInitializers); - try { // Initialize contexts first so that other initializers can find any relevant mapping before initializing // configuration to what is already in VPP @@ -64,6 +63,4 @@ final class InitializerRegistryAdapter implements InitializerRegistry { LOG.info("Honeycomb initialized"); } - @Override - public void close() throws Exception {} } diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfSshServerProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfSshServerProvider.java index 53be6b5d9..0b3be9f1f 100644 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfSshServerProvider.java +++ b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/netconf/NetconfSshServerProvider.java @@ -18,6 +18,7 @@ package io.fd.honeycomb.infra.distro.netconf; import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.inject.Inject; +import io.fd.honeycomb.infra.distro.InitializationException; import io.fd.honeycomb.infra.distro.ProviderTrait; import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration; import io.netty.channel.ChannelFuture; @@ -137,12 +138,12 @@ public final class NetconfSshServerProvider extends ProviderTrait failedId, @Nonnull final DataObject data, @@ -126,12 +126,12 @@ public class WriteFailedException extends TranslationException { } /** - * Update specific write failed exception + * Update specific write failed exception. */ public static class UpdateFailedException extends WriteFailedException { - private final DataObject dataBefore; - private final DataObject dataAfter; + private final transient DataObject dataBefore; + private final transient DataObject dataAfter; public UpdateFailedException(@Nonnull final InstanceIdentifier failedId, @Nonnull final DataObject dataBefore, diff --git a/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java b/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java index 2467972da..402335115 100644 --- a/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java +++ b/infra/translate-api/src/main/java/io/fd/honeycomb/translate/write/registry/WriterRegistry.java @@ -133,7 +133,7 @@ public interface WriterRegistry { @Beta class BulkUpdateException extends TranslationException { - private final Reverter reverter; + private final transient Reverter reverter; private final Set> failedIds; /** diff --git a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/JsonUtils.java b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/JsonUtils.java index a26334454..d551802e4 100644 --- a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/JsonUtils.java +++ b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/JsonUtils.java @@ -40,13 +40,17 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeS import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.SchemaPath; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public final class JsonUtils { + private static final Logger LOG = LoggerFactory.getLogger(JsonUtils.class); + private JsonUtils() {} /** - * Serialize normalized node root structure into provided output stream + * Serialize normalized node root structure into provided output stream. * * @throws IOException if serialized data cannot be written into provided output stream */ @@ -79,15 +83,18 @@ public final class JsonUtils { Builders.containerBuilder().withNodeIdentifier(new YangInstanceIdentifier.NodeIdentifier(schemaContext.getQName())); final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(builder); - final JsonParserStream jsonParser = JsonParserStream.create(writer, schemaContext); - final JsonReader reader = new JsonReader(new InputStreamReader(stream, Charsets.UTF_8)); - jsonParser.parse(reader); + try (final JsonParserStream jsonParser = JsonParserStream.create(writer, schemaContext)) { + final JsonReader reader = new JsonReader(new InputStreamReader(stream, Charsets.UTF_8)); + jsonParser.parse(reader); + } catch (IOException e) { + LOG.warn("Unable to close json parser. Ignoring exception", e); + } return builder.build(); } private static void writeChildren(final NormalizedNodeWriter nnWriter, final ContainerNode data) throws IOException { - for(final DataContainerChild child : data.getValue()) { + for (final DataContainerChild child : data.getValue()) { nnWriter.write(child); } } diff --git a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/TransactionWriteContext.java b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/TransactionWriteContext.java index 51f999294..5d801edab 100644 --- a/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/TransactionWriteContext.java +++ b/infra/translate-utils/src/main/java/io/fd/honeycomb/translate/util/write/TransactionWriteContext.java @@ -35,7 +35,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** - * Transaction based WriteContext + * Transaction backed WriteContext. */ public final class TransactionWriteContext implements WriteContext { @@ -110,11 +110,12 @@ public final class TransactionWriteContext implements WriteContext { } /** - * Does not close the transactions + * Does not close the transactions. */ @Override public void close() { ctx.close(); + mappingContext.close(); beforeTx.close(); afterTx.close(); } diff --git a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/initializers/VppInitializer.java b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/initializers/VppInitializer.java index b2c2f7b1e..b2fc436e7 100644 --- a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/initializers/VppInitializer.java +++ b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/initializers/VppInitializer.java @@ -64,24 +64,18 @@ public class VppInitializer extends AbstractDataTreeConverter { } private static final Function - CONVERT_BD = - new Function() { - @Nullable - @Override - public BridgeDomain apply( - @Nullable final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.vpp.state.bridge.domains.BridgeDomain input) { - final BridgeDomainBuilder builder = new BridgeDomainBuilder(); - builder.setLearn(input.isLearn()); - builder.setUnknownUnicastFlood(input.isUnknownUnicastFlood()); - builder.setArpTermination(input.isArpTermination()); - builder.setFlood(input.isFlood()); - builder.setForward(input.isForward()); - builder.setKey(new BridgeDomainKey(input.getKey().getName())); - builder.setName(input.getName()); - setL2FibTable(builder, input.getL2FibTable()); - return builder.build(); - } - }; + CONVERT_BD = input -> { + final BridgeDomainBuilder builder = new BridgeDomainBuilder(); + builder.setLearn(input.isLearn()); + builder.setUnknownUnicastFlood(input.isUnknownUnicastFlood()); + builder.setArpTermination(input.isArpTermination()); + builder.setFlood(input.isFlood()); + builder.setForward(input.isForward()); + builder.setKey(new BridgeDomainKey(input.getKey().getName())); + builder.setName(input.getName()); + setL2FibTable(builder, input.getL2FibTable()); + return builder.build(); + }; private static void setL2FibTable(@Nonnull final BridgeDomainBuilder builder, @Nullable final L2FibTable l2FibTable) { -- cgit 1.2.3-korg