Restructure ProtoBuf & gRPC project structure
- pom.xml {protobuf, grpc}-dependencies to consolidte
plugin configuration, dependency version property
- {protobuf, grpc}: ONOS App to load required feature/bundle
- all other atrifacts: Apps using protobuf/grpc inherit
~-dependencies above to reduce copy & paste configurations and
dependency versions.
Change-Id: Ied90aff78ffddac6228d46e85e01d035eec37bee
diff --git a/incubator/rpc-grpc/pom.xml b/incubator/rpc-grpc/pom.xml
index d6eb5d5..f11580c 100644
--- a/incubator/rpc-grpc/pom.xml
+++ b/incubator/rpc-grpc/pom.xml
@@ -17,9 +17,10 @@
<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>
- <artifactId>onos-incubator</artifactId>
+ <artifactId>onos-incubator-grpc-dependencies</artifactId>
<groupId>org.onosproject</groupId>
<version>1.9.0-SNAPSHOT</version>
+ <relativePath>../grpc-dependencies/pom.xml</relativePath>
</parent>
<artifactId>onos-incubator-rpc-grpc</artifactId>
@@ -36,41 +37,40 @@
org.onosproject.incubator.protobuf,
org.onosproject.incubator.grpc
</onos.app.requires>
- <protobuf.version>3.0.0</protobuf.version>
- <grpc.version>1.0.0</grpc.version>
- <grpc.netty.version>4.1.3.Final</grpc.netty.version>
</properties>
<dependencies>
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onos-api</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onos-incubator-api</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onlab-osgi</artifactId>
+ <version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-core</artifactId>
- <version>${grpc.version}</version>
</dependency>
+
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-protobuf</artifactId>
- <version>${grpc.version}</version>
</dependency>
+
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-stub</artifactId>
- <version>${grpc.version}</version>
</dependency>
<dependency>
@@ -82,12 +82,20 @@
<dependency>
<groupId>org.onosproject</groupId>
<artifactId>onos-api</artifactId>
+ <version>${project.version}</version>
<scope>test</scope>
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>org.onosproject</groupId>
+ <artifactId>onlab-junit</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.onosproject</groupId>
<artifactId>onos-incubator-protobuf</artifactId>
<version>${project.version}</version>
</dependency>
@@ -99,6 +107,16 @@
</dependency>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<scope>provided</scope>
@@ -107,13 +125,6 @@
</dependencies>
<build>
- <extensions>
- <extension>
- <groupId>kr.motd.maven</groupId>
- <artifactId>os-maven-plugin</artifactId>
- <version>1.4.1.Final</version>
- </extension>
- </extensions>
<pluginManagement>
<plugins>
@@ -151,22 +162,6 @@
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
- <executions>
- <execution>
- <id>generate-scr-srcdescriptor</id>
- <goals>
- <goal>scr</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <!-- avoid searching into wrong source path -->
- <scanClasses>true</scanClasses>
- <supportedProjectTypes>
- <supportedProjectType>bundle</supportedProjectType>
- <supportedProjectType>war</supportedProjectType>
- </supportedProjectTypes>
- </configuration>
</plugin>
<plugin>
<groupId>org.onosproject</groupId>
@@ -176,77 +171,14 @@
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
- <version>0.5.0</version>
- <configuration>
- <!-- The version of protoc must match protobuf-java. If you don't
- depend on protobuf-java directly, you will be transitively depending on the
- protobuf-java version that grpc depends on. -->
- <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
- <pluginId>grpc-java</pluginId>
- <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
- </configuration>
- <executions>
- <execution>
- <goals>
- <goal>compile</goal>
- <goal>compile-custom</goal>
- </goals>
- </execution>
- </executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>1.11</version>
- <executions>
- <execution>
- <id>add-source</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>add-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>${project.build.directory}/generated-sources/protobuf/java</source>
- <source>${project.build.directory}/generated-sources/protobuf/grpc-java</source>
- </sources>
- </configuration>
- </execution>
- </executions>
</plugin>
</plugins>
</build>
- <!-- gRPC requires more recent version of netty -->
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-codec</artifactId>
- <version>${grpc.netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-transport</artifactId>
- <version>${grpc.netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-handler</artifactId>
- <version>${grpc.netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-buffer</artifactId>
- <version>${grpc.netty.version}</version>
- </dependency>
- <dependency>
- <groupId>io.netty</groupId>
- <artifactId>netty-common</artifactId>
- <version>${grpc.netty.version}</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
</project>