Fix proto cyclic dependency.

Change-Id: I84e0ba25b78e8212eff6b4c91fca2d4457dbf7eb
Issue-ID: CCSDK-1682
Signed-off-by: Brinda Santh <brindasanth@in.ibm.com>
diff --git a/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml b/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
index e5214e1..5cc29a6 100644
--- a/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
+++ b/ms/blueprintsprocessor/modules/commons/grpc-lib/pom.xml
@@ -30,16 +30,16 @@
     <dependencies>
         <dependency>
             <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+            <artifactId>blueprint-proto</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
             <artifactId>blueprint-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.onap.ccsdk.cds.blueprintsprocessor</groupId>
             <artifactId>processor-core</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.onap.ccsdk.cds.components</groupId>
-            <artifactId>proto-definition</artifactId>
-        </dependency>
     </dependencies>
 
 </project>
diff --git a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/pom.xml b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/pom.xml
index 7c53e1c..b5cac58 100755
--- a/ms/blueprintsprocessor/modules/inbounds/selfservice-api/pom.xml
+++ b/ms/blueprintsprocessor/modules/inbounds/selfservice-api/pom.xml
@@ -33,10 +33,9 @@
     <dependencies>
 
         <dependency>
-            <groupId>org.onap.ccsdk.cds.components</groupId>
-            <artifactId>proto-definition</artifactId>
+            <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+            <artifactId>blueprint-proto</artifactId>
         </dependency>
-
         <dependency>
             <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
             <artifactId>blueprint-core</artifactId>
diff --git a/ms/blueprintsprocessor/modules/services/execution-service/pom.xml b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
index 4acc224..784906b 100644
--- a/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
+++ b/ms/blueprintsprocessor/modules/services/execution-service/pom.xml
@@ -57,10 +57,6 @@
             <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
             <artifactId>resource-dict</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.onap.ccsdk.cds.components</groupId>
-            <artifactId>proto-definition</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>org.onap.ccsdk.sli.core</groupId>
diff --git a/ms/blueprintsprocessor/parent/pom.xml b/ms/blueprintsprocessor/parent/pom.xml
index 5a54a77..ded4ea1 100755
--- a/ms/blueprintsprocessor/parent/pom.xml
+++ b/ms/blueprintsprocessor/parent/pom.xml
@@ -248,11 +248,7 @@
                 <artifactId>protobuf-java-util</artifactId>
                 <version>${protobuff.java.utils.version}</version>
             </dependency>
-            <dependency>
-                <groupId>org.onap.ccsdk.cds.components</groupId>
-                <artifactId>proto-definition</artifactId>
-                <version>${project.version}</version>
-            </dependency>
+
 
             <!-- Adaptors -->
             <dependency>
@@ -460,6 +456,11 @@
             </dependency>
             <dependency>
                 <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+                <artifactId>blueprint-proto</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
                 <artifactId>blueprint-validation</artifactId>
                 <version>${project.version}</version>
             </dependency>
diff --git a/ms/controllerblueprints/modules/blueprint-proto/krotoPlusConfig.asciipb b/ms/controllerblueprints/modules/blueprint-proto/krotoPlusConfig.asciipb
new file mode 100644
index 0000000..30255b9
--- /dev/null
+++ b/ms/controllerblueprints/modules/blueprint-proto/krotoPlusConfig.asciipb
@@ -0,0 +1,6 @@
+grpc_coroutines {
+    filter { exclude_path: "google/*" }
+}
+grpc_stub_exts {
+    support_coroutines: true
+}
\ No newline at end of file
diff --git a/ms/controllerblueprints/modules/blueprint-proto/pom.xml b/ms/controllerblueprints/modules/blueprint-proto/pom.xml
new file mode 100644
index 0000000..7d4d600
--- /dev/null
+++ b/ms/controllerblueprints/modules/blueprint-proto/pom.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~  Copyright © 2019 IBM.
+  ~
+  ~  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.
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+        <artifactId>modules</artifactId>
+        <version>0.7.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>blueprint-proto</artifactId>
+    <name>Controller Blueprints Proto</name>
+    <description>Controller Blueprints Proto</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.github.marcoferrer.krotoplus</groupId>
+            <artifactId>kroto-plus-coroutines</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <extensions>
+            <extension>
+                <groupId>kr.motd.maven</groupId>
+                <artifactId>os-maven-plugin</artifactId>
+                <version>1.6.2</version>
+            </extension>
+        </extensions>
+        <plugins>
+            <plugin>
+                <groupId>org.xolstice.maven.plugins</groupId>
+                <artifactId>protobuf-maven-plugin</artifactId>
+                <version>0.6.1</version>
+                <configuration>
+                    <protocArtifact>
+                        com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}
+                    </protocArtifact>
+                    <protoSourceRoot>${project.basedir}/../../../../components/model-catalog/proto-definition/proto
+                    </protoSourceRoot>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>grpc-java</id>
+                        <goals>
+                            <goal>compile-custom</goal>
+                        </goals>
+                        <configuration>
+                            <pluginId>grpc-java</pluginId>
+                            <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
+                            </pluginArtifact>
+                        </configuration>
+                    </execution>
+<!--                    <execution>-->
+<!--                        <id>grpc-coroutines</id>-->
+<!--                        <goals>-->
+<!--                            <goal>compile-custom</goal>-->
+<!--                        </goals>-->
+<!--                        <configuration>-->
+<!--                            <pluginId>kroto-plus</pluginId>-->
+<!--                            <pluginArtifact>-->
+<!--                                com.github.marcoferrer.krotoplus:protoc-gen-kroto-plus:${kroto-plus.version}:jar:jvm8-->
+<!--                            </pluginArtifact>-->
+<!--                            <pluginParameter>ConfigPath=${project.basedir}/krotoPlusConfig.asciipb</pluginParameter>-->
+<!--                        </configuration>-->
+<!--                    </execution>-->
+                </executions>
+            </plugin>
+            <plugin>
+                <artifactId>kotlin-maven-plugin</artifactId>
+                <groupId>org.jetbrains.kotlin</groupId>
+                <version>${kotlin.maven.version}</version>
+                <executions>
+                    <execution>
+                        <id>compile</id>
+                        <goals>
+                            <goal>compile</goal>
+                        </goals>
+                        <configuration>
+                            <sourceDirs>
+                                <sourceDir>${project.basedir}/target/generated-sources/protobuf/java</sourceDir>
+                                <sourceDir>${project.basedir}/target/generated-sources/protobuf/grpc-java</sourceDir>
+<!--                                <sourceDir>${project.basedir}/target/generated-sources/protobuf/kroto-plus</sourceDir>-->
+                            </sourceDirs>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/ms/controllerblueprints/modules/pom.xml b/ms/controllerblueprints/modules/pom.xml
index 73b2313..6cb4ea8 100644
--- a/ms/controllerblueprints/modules/pom.xml
+++ b/ms/controllerblueprints/modules/pom.xml
@@ -31,6 +31,7 @@
         <module>blueprint-core</module>
         <module>resource-dict</module>
         <module>blueprint-validation</module>
+        <module>blueprint-proto</module>
     </modules>
 
     <dependencies>
diff --git a/ms/controllerblueprints/parent/pom.xml b/ms/controllerblueprints/parent/pom.xml
index 925b167..86a7211 100644
--- a/ms/controllerblueprints/parent/pom.xml
+++ b/ms/controllerblueprints/parent/pom.xml
@@ -30,6 +30,7 @@
     <properties>
         <eelf.version>1.0.0</eelf.version>
         <guava.version>27.0.1-jre</guava.version>
+        <kroto-plus.version>0.5.0</kroto-plus.version>
         <springfox.swagger2.version>2.9.2</springfox.swagger2.version>
         <h2database.version>1.4.197</h2database.version>
         <onap.logger.slf4j>1.2.2</onap.logger.slf4j>
@@ -200,6 +201,11 @@
                 <artifactId>protobuf-java-util</artifactId>
                 <version>${protobuff.java.utils.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.github.marcoferrer.krotoplus</groupId>
+                <artifactId>kroto-plus-coroutines</artifactId>
+                <version>${kroto-plus.version}</version>
+            </dependency>
 
             <!-- Database -->
             <dependency>
diff --git a/ms/sdclistener/application/pom.xml b/ms/sdclistener/application/pom.xml
index da24e97..7b12e14 100644
--- a/ms/sdclistener/application/pom.xml
+++ b/ms/sdclistener/application/pom.xml
@@ -90,8 +90,8 @@
       <scope>test</scope>
     </dependency>
     <dependency>
-      <groupId>org.onap.ccsdk.cds.components</groupId>
-      <artifactId>proto-definition</artifactId>
+      <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+      <artifactId>blueprint-proto</artifactId>
     </dependency>
 
     <dependency>
diff --git a/ms/sdclistener/parent/pom.xml b/ms/sdclistener/parent/pom.xml
index cfdfc9b..05bfdef 100755
--- a/ms/sdclistener/parent/pom.xml
+++ b/ms/sdclistener/parent/pom.xml
@@ -16,7 +16,8 @@
   ~  See the License for the specific language governing permissions and
   ~  limitations under the License.
   -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.onap.ccsdk.cds</groupId>
@@ -110,9 +111,15 @@
                 <version>${protobuff.java.utils.version}</version>
             </dependency>
             <dependency>
-                <groupId>org.onap.ccsdk.cds.components</groupId>
-                <artifactId>proto-definition</artifactId>
+                <groupId>org.onap.ccsdk.cds.controllerblueprints</groupId>
+                <artifactId>blueprint-proto</artifactId>
                 <version>${project.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>*</groupId>
+                        <artifactId>*</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
             <dependency>
                 <groupId>io.projectreactor</groupId>