HC2VPP-336: reenable NSH plugin 46/12846/3
authorMarek Gradzki <[email protected]>
Fri, 1 Jun 2018 10:48:27 +0000 (12:48 +0200)
committerHongjun Ni <[email protected]>
Tue, 5 Jun 2018 07:17:36 +0000 (07:17 +0000)
This patch reverts https://gerrit.fd.io/r/#/c/12822/
and bumps jvpp nsh_sfc dependency to 18.07-SNAPSHOT.

Change-Id: Idce70d39c9c273b7db3c771430ef5af58417b43b
Signed-off-by: Marek Gradzki <[email protected]>
it/api-test/pom.xml
nsh/impl/pom.xml
pom.xml
vpp-integration/api-docs/docs/pom.xml
vpp-integration/api-docs/scripts/pom.xml
vpp-integration/api-docs/scripts/src/main/groovy/io/fd/hc2vpp/docs/scripts/ApiDocsIndexGenerator.groovy
vpp-integration/api-docs/scripts/src/main/java/io/fd/hc2vpp/docs/core/mock/binding/MockNshModule.java [new file with mode: 0644]
vpp-integration/minimal-distribution/pom.xml

index b40c5af..28263ec 100644 (file)
         </dependency>
 
         <!-- Open source plugins -->
+        <dependency>
+            <groupId>io.fd.hc2vpp.nsh</groupId>
+            <artifactId>vppnsh-api</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>io.fd.hc2vpp.ioam</groupId>
             <artifactId>vppioam-api</artifactId>
index 0b8cd1f..38038a4 100644 (file)
     <dependency>
         <groupId>io.fd.nsh_sfc</groupId>
         <artifactId>nsh-sfc</artifactId>
-        <version>18.04-SNAPSHOT</version>
-        <exclusions>
-          <exclusion>
-            <groupId>io.fd.vpp</groupId>
-            <artifactId>jvpp-registry</artifactId>
-          </exclusion>
-        </exclusions>
+        <version>18.07-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>io.fd.hc2vpp.common</groupId>
diff --git a/pom.xml b/pom.xml
index 851beb5..e5f7b7f 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -39,8 +39,7 @@
     <module>vpp-common</module>
     <module>v3po</module>
     <module>ioam</module>
-    <!-- TODO(HC2VPP-336): reenable after NSH build issues are resolved -->
-    <!--<module>nsh</module>-->
+    <module>nsh</module>
     <module>routing</module>
     <module>nat</module>
     <module>lisp</module>
index 03ebbc5..6545ed6 100644 (file)
@@ -46,6 +46,7 @@
             io.fd.hc2vpp.dhcp.DhcpModule,
             io.fd.hc2vpp.policer.PolicerModule,
             io.fd.hc2vpp.mpls.MplsModule,
+            io.fd.hc2vpp.docs.core.mock.binding.MockNshModule,
             io.fd.hc2vpp.docs.core.mock.binding.MockIoamModule,
             io.fd.hc2vpp.bgp.inet.BgpInetModule,
             io.fd.hc2vpp.bgp.prefix.sid.BgpPrefixSidModule
index c24fcac..cdc05e8 100644 (file)
             <artifactId>vppioam-impl</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>io.fd.hc2vpp.nsh</groupId>
+            <artifactId>vppnsh-impl</artifactId>
+            <version>${project.version}</version>
+        </dependency>
         <dependency>
             <groupId>io.fd.hc2vpp.v3po</groupId>
             <artifactId>v3po2vpp</artifactId>
index 0cd5289..65ee2ed 100644 (file)
@@ -26,6 +26,7 @@ import io.fd.vpp.jvpp.core.future.FutureJVppCore
 import io.fd.vpp.jvpp.ioamexport.future.FutureJVppIoamexport
 import io.fd.vpp.jvpp.ioampot.future.FutureJVppIoampot
 import io.fd.vpp.jvpp.ioamtrace.future.FutureJVppIoamtrace
+import io.fd.vpp.jvpp.nsh.future.FutureJVppNsh
 import io.fd.vpp.jvpp.nat.future.FutureJVppNat
 
 import java.nio.charset.StandardCharsets
@@ -44,7 +45,7 @@ class ApiDocsIndexGenerator {
     private static def NL = System.lineSeparator()
     // TODO - check if list of plugin classes can be generated based on list of modules enabled for doc generation
     private static
-    def PLUGIN_CLASSES = [FutureJVppCore.class, FutureJVppAcl.class, FutureJVppNat.class,
+    def PLUGIN_CLASSES = [FutureJVppCore.class, FutureJVppAcl.class, FutureJVppNat.class, FutureJVppNsh.class,
                           FutureJVppIoamexport.class, FutureJVppIoampot.class, FutureJVppIoamtrace.class]
     private static def TABLE_PART_MARK = "|"
 
diff --git a/vpp-integration/api-docs/scripts/src/main/java/io/fd/hc2vpp/docs/core/mock/binding/MockNshModule.java b/vpp-integration/api-docs/scripts/src/main/java/io/fd/hc2vpp/docs/core/mock/binding/MockNshModule.java
new file mode 100644 (file)
index 0000000..dace214
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2017 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.hc2vpp.docs.core.mock.binding;
+
+import static io.fd.hc2vpp.docs.core.mock.binding.MockBindingModule.noOpProxy;
+
+import com.google.inject.Provider;
+import io.fd.hc2vpp.vppnsh.impl.VppNshModule;
+import io.fd.vpp.jvpp.JVpp;
+import io.fd.vpp.jvpp.JVppRegistry;
+import io.fd.vpp.jvpp.nsh.future.FutureJVppNshFacade;
+import java.io.IOException;
+
+/**
+ * Use to bypass jvpp registration
+ */
+public class MockNshModule extends VppNshModule {
+
+    public MockNshModule() {
+        super(MockJVppNshProvider.class);
+    }
+
+    private static class MockJVppNshProvider implements Provider<FutureJVppNshFacade> {
+
+        @Override
+        public FutureJVppNshFacade get() {
+            try {
+                return new FutureJVppNshFacade(noOpProxy(JVppRegistry.class), noOpProxy(JVpp.class));
+            } catch (IOException e) {
+                throw new IllegalStateException(e);
+            }
+        }
+    }
+}
index 791ad95..8399ff2 100644 (file)
@@ -65,6 +65,8 @@
       io.fd.hc2vpp.dhcp.DhcpModule,
       io.fd.hc2vpp.policer.PolicerModule,
       io.fd.hc2vpp.mpls.MplsModule,
+      <!-- Nsh module by default disabled, because it needs vpp-nsh plugin, which is not part of vpp codebase.-->
+      // io.fd.hc2vpp.vppnsh.impl.VppNshModule,
       <!-- iOAM module by default disabled, because it needs ioam plugin (not part of vpp codebase.)-->
       // io.fd.hc2vpp.vppioam.impl.VppIoamModule,
       <!-- Bgp modules disabled by default, because it BGP northbound interface is not enabled by default -->
       <artifactId>lisp2vpp</artifactId>
       <version>${lisp.version}</version>
     </dependency>
+    <dependency>
+      <groupId>io.fd.hc2vpp.nsh</groupId>
+      <artifactId>vppnsh-impl</artifactId>
+      <version>${vppnsh.version}</version>
+    </dependency>
     <dependency>
       <groupId>io.fd.hc2vpp.nat</groupId>
       <artifactId>nat2vpp</artifactId>