Remove groovy to reduce footprint
authorMaros Marsalek <[email protected]>
Thu, 25 Aug 2016 08:46:02 +0000 (10:46 +0200)
committerMaros Marsalek <[email protected]>
Thu, 25 Aug 2016 10:35:11 +0000 (10:35 +0000)
Change-Id: I798558e52329c26aa5481d702745c4d46e290615
Signed-off-by: Maros Marsalek <[email protected]>
vpp-common/minimal-distribution/pom.xml
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/ContextsReaderFactoryProvider.java [moved from vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/ContextsReaderFactoryProvider.groovy with 63% similarity]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.groovy [deleted file]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.java [new file with mode: 0644]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.groovy [deleted file]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java [new file with mode: 0644]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.groovy [deleted file]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java [new file with mode: 0644]
vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppConfigAttributes.java [moved from vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppConfigAttributes.groovy with 71% similarity]

index e80f0eb..ad0a1be 100644 (file)
     <plugins>
       <plugin>
         <artifactId>maven-compiler-plugin</artifactId>
-        <!-- 2.8.0-01 and later require maven-compiler-plugin 3.1 or higher -->
-        <configuration>
-          <compilerId>groovy-eclipse-compiler</compilerId>
-        </configuration>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-eclipse-compiler</artifactId>
-            <version>2.9.2-01</version>
-          </dependency>
-          <!-- for 2.8.0-01 and later you must have an explicit dependency on groovy-eclipse-batch -->
-          <dependency>
-            <groupId>org.codehaus.groovy</groupId>
-            <artifactId>groovy-eclipse-batch</artifactId>
-            <version>2.4.3-01</version>
-          </dependency>
-        </dependencies>
       </plugin>
       <plugin>
         <groupId>org.codehaus.gmaven</groupId>
  * limitations under the License.
  */
 
-package io.fd.honeycomb.vpp.distro
+package io.fd.honeycomb.vpp.distro;
 
-import com.google.inject.Inject
-import com.google.inject.name.Named
-import groovy.transform.ToString
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule
-import io.fd.honeycomb.translate.read.ReaderFactory
-import org.opendaylight.controller.md.sal.binding.api.DataBroker
-import io.fd.honeycomb.vpp.context.ContextsReaderFactory
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule;
+import io.fd.honeycomb.translate.read.ReaderFactory;
+import io.fd.honeycomb.vpp.context.ContextsReaderFactory;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 
 /**
  * Mirror of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.context.impl.rev141210.ContextReaderModule
  */
-@Slf4j
-@ToString
-class ContextsReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
+public final class ContextsReaderFactoryProvider extends ProviderTrait<ReaderFactory> {
 
     @Inject
     @Named(ContextPipelineModule.HONEYCOMB_CONTEXT)
-    DataBroker contextDataBroker
+    private DataBroker contextDataBroker;
 
-    def create() { new ContextsReaderFactory(contextDataBroker) }
+    @Override
+    protected ContextsReaderFactory create() {
+        return new ContextsReaderFactory(contextDataBroker);
+    }
 }
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.groovy b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.groovy
deleted file mode 100644 (file)
index 1d4fd1a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * 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.vpp.distro
-
-import com.google.inject.Inject
-import groovy.transform.ToString
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import org.openvpp.jvpp.JVppRegistry
-import org.openvpp.jvpp.core.JVppCoreImpl
-import org.openvpp.jvpp.core.future.FutureJVppCore
-import org.openvpp.jvpp.core.future.FutureJVppCoreFacade
-
-/**
- * Provides future API for jvpp-core plugin. Must be a singleton due to shutdown hook usage.
- * Registers shutdown hook to free plugin's resources on shutdown.
- */
-@Slf4j
-@ToString
-class JVppCoreProvider extends ProviderTrait<FutureJVppCore> {
-
-    @Inject
-    JVppRegistry registry
-
-    def create() {
-        try {
-            def jVpp = new JVppCoreImpl()
-            // Free jvpp-core plugin's resources on shutdown
-            Runtime.addShutdownHook {
-                log.info("Unloading jvpp-core plugin")
-                jVpp.close()
-                log.info("Successfully unloaded jvpp-core plugin")
-            }
-            log.info("Successfully loaded jvpp-core plugin")
-            new FutureJVppCoreFacade(registry, jVpp)
-        } catch (IOException e) {
-            throw new IllegalStateException("Unable to open VPP management connection", e)
-        }
-    }
-}
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.java b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppCoreProvider.java
new file mode 100644 (file)
index 0000000..41f7b13
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+ * 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.vpp.distro;
+
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import java.io.IOException;
+import org.openvpp.jvpp.JVppRegistry;
+import org.openvpp.jvpp.core.JVppCoreImpl;
+import org.openvpp.jvpp.core.future.FutureJVppCore;
+import org.openvpp.jvpp.core.future.FutureJVppCoreFacade;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Provides future API for jvpp-core plugin. Must be a singleton due to shutdown hook usage. Registers shutdown hook to
+ * free plugin's resources on shutdown.
+ */
+public final class JVppCoreProvider extends ProviderTrait<FutureJVppCore> {
+
+    private static final Logger LOG = LoggerFactory.getLogger(JVppCoreProvider.class);
+
+    @Inject
+    private JVppRegistry registry;
+
+    @Override
+    protected FutureJVppCoreFacade create() {
+        try {
+            final JVppCoreImpl jVpp = new JVppCoreImpl();
+            // Free jvpp-core plugin's resources on shutdown
+            Runtime.getRuntime().addShutdownHook(new Thread() {
+
+                @Override
+                public void run() {
+                    LOG.info("Unloading jvpp-core plugin");
+                    jVpp.close();
+                    LOG.info("Successfully unloaded jvpp-core plugin");
+                }
+            });
+
+            LOG.info("Successfully loaded jvpp-core plugin");
+            return new FutureJVppCoreFacade(registry, jVpp);
+        } catch (IOException e) {
+            throw new IllegalStateException("Unable to open VPP management connection", e);
+        }
+    }
+}
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.groovy b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.groovy
deleted file mode 100644 (file)
index 125f766..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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.vpp.distro
-
-import com.google.inject.Inject
-import groovy.transform.ToString
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.infra.distro.ProviderTrait
-import org.openvpp.jvpp.JVppRegistry
-import org.openvpp.jvpp.JVppRegistryImpl
-
-/**
- * Provides JVppRegistry. Must be a singleton due to shutdown hook usage.
- * Registers shutdown hook to disconnect from VPP.
- */
-@Slf4j
-@ToString
-class JVppRegistryProvider extends ProviderTrait<JVppRegistry> {
-
-    @Inject
-    VppConfigAttributes config
-
-    def create() {
-        try {
-            def registry = new JVppRegistryImpl(config.jvppConnectionName);
-
-            // Closing JVpp connection with shutdown hook to erase the connection from VPP so HC will be able
-            // to connect next time. If JVM is force closed, this will not be executed and VPP connection
-            // with name from config will stay open and prevent next startup of HC to success
-            Runtime.addShutdownHook {
-                log.info("Disconnecting from VPP")
-                registry.close()
-                log.info("Successfully disconnected from VPP as {}", config.jvppConnectionName)
-            }
-            log.info("JVpp connection opened successfully as: {}", config.jvppConnectionName)
-            registry
-        } catch (IOException e) {
-            throw new IllegalStateException("Unable to open VPP management connection", e)
-        }
-    }
-}
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/JVppRegistryProvider.java
new file mode 100644 (file)
index 0000000..8605fa0
--- /dev/null
@@ -0,0 +1,65 @@
+/*
+ * 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.vpp.distro;
+
+import com.google.inject.Inject;
+import io.fd.honeycomb.infra.distro.ProviderTrait;
+import java.io.IOException;
+import org.openvpp.jvpp.JVppRegistry;
+import org.openvpp.jvpp.JVppRegistryImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Provides JVppRegistry. Must be a singleton due to shutdown hook usage. Registers shutdown hook to disconnect from
+ * VPP.
+ */
+public final class JVppRegistryProvider extends ProviderTrait<JVppRegistry> {
+
+    private static final Logger LOG = LoggerFactory.getLogger(JVppRegistryProvider.class);
+
+    @Inject
+    private VppConfigAttributes config;
+
+    @Override
+    protected JVppRegistryImpl create() {
+        try {
+            final JVppRegistryImpl registry = new JVppRegistryImpl(config.jvppConnectionName);
+
+            // Closing JVpp connection with shutdown hook to erase the connection from VPP so HC will be able
+            // to connect next time. If JVM is force closed, this will not be executed and VPP connection
+            // with name from config will stay open and prevent next startup of HC to success
+            Runtime.getRuntime().addShutdownHook(new Thread() {
+                @Override
+                public void run() {
+                    LOG.info("Disconnecting from VPP");
+                    try {
+                        registry.close();
+                        LOG.info("Successfully disconnected from VPP as {}", config.jvppConnectionName);
+                    } catch (Exception e) {
+                        LOG.warn("Unable to properly close jvpp registry", e);
+                    }
+                }
+            });
+
+            LOG.info("JVpp connection opened successfully as: {}", config.jvppConnectionName);
+            return registry;
+        } catch (IOException e) {
+            throw new IllegalStateException("Unable to open VPP management connection", e);
+        }
+    }
+}
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.groovy b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.groovy
deleted file mode 100644 (file)
index cd5816f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.vpp.distro
-
-import com.google.inject.AbstractModule
-import com.google.inject.Singleton
-import com.google.inject.multibindings.Multibinder
-import groovy.util.logging.Slf4j
-import io.fd.honeycomb.translate.read.ReaderFactory
-import net.jmob.guice.conf.core.ConfigurationModule
-import org.openvpp.jvpp.JVppRegistry
-import org.openvpp.jvpp.core.future.FutureJVppCore
-
-@Slf4j
-public final class VppCommonModule extends AbstractModule {
-
-    protected void configure() {
-        install(ConfigurationModule.create())
-        // Inject non-dependency configuration
-        requestInjection(VppConfigAttributes)
-
-        bind(JVppRegistry).toProvider(JVppRegistryProvider).in(Singleton)
-        bind(FutureJVppCore).toProvider(JVppCoreProvider).in(Singleton)
-
-        // Naming contexts reader exposing context storage over REST/HONEYCOMB_NETCONF
-        Multibinder.newSetBinder(binder(), ReaderFactory.class).with {
-            addBinding().toProvider(ContextsReaderFactoryProvider).in(Singleton)
-        }
-    }
-}
diff --git a/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java b/vpp-common/minimal-distribution/src/main/java/io/fd/honeycomb/vpp/distro/VppCommonModule.java
new file mode 100644 (file)
index 0000000..8735235
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * 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.vpp.distro;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Singleton;
+import com.google.inject.multibindings.Multibinder;
+import io.fd.honeycomb.translate.read.ReaderFactory;
+import net.jmob.guice.conf.core.ConfigurationModule;
+import org.openvpp.jvpp.JVppRegistry;
+import org.openvpp.jvpp.core.future.FutureJVppCore;
+
+public final class VppCommonModule extends AbstractModule {
+    protected void configure() {
+
+        install(ConfigurationModule.create());
+        // Inject non-dependency configuration
+        requestInjection(VppConfigAttributes.class);
+
+        bind(JVppRegistry.class).toProvider(JVppRegistryProvider.class).in(Singleton.class);
+        bind(FutureJVppCore.class).toProvider(JVppCoreProvider.class).in(Singleton.class);
+
+        // Naming contexts reader exposing context storage over REST/HONEYCOMB_NETCONF
+        final Multibinder<ReaderFactory> readerBinder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
+        readerBinder.addBinding().toProvider(ContextsReaderFactoryProvider.class).in(Singleton.class);
+    }
+
+}
  * limitations under the License.
  */
 
-package io.fd.honeycomb.vpp.distro
+package io.fd.honeycomb.vpp.distro;
 
-import groovy.transform.ToString
-import net.jmob.guice.conf.core.BindConfig
-import net.jmob.guice.conf.core.InjectConfig
-import net.jmob.guice.conf.core.Syntax
+import net.jmob.guice.conf.core.BindConfig;
+import net.jmob.guice.conf.core.InjectConfig;
+import net.jmob.guice.conf.core.Syntax;
 
-@ToString(includeNames = true)
 @BindConfig(value = "jvpp", syntax = Syntax.JSON)
-class VppConfigAttributes {
+public class VppConfigAttributes {
 
     @InjectConfig("jvpp-connection-name")
-    String jvppConnectionName
-
+    public String jvppConnectionName;
 }