blob: 04b1a2ba1a43924abe52f7a9734998189ecbbc14 [file] [log] [blame]
HIGUCHI Yuta15653fd2015-11-09 11:05:09 -08001<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 ~ Copyright 2015 Open Networking Laboratory
4 ~
5 ~ Licensed under the Apache License, Version 2.0 (the "License");
6 ~ you may not use this file except in compliance with the License.
7 ~ You may obtain a copy of the License at
8 ~
9 ~ http://www.apache.org/licenses/LICENSE-2.0
10 ~
11 ~ Unless required by applicable law or agreed to in writing, software
12 ~ distributed under the License is distributed on an "AS IS" BASIS,
13 ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ~ See the License for the specific language governing permissions and
15 ~ limitations under the License.
16 -->
17<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">
18 <modelVersion>4.0.0</modelVersion>
19 <parent>
20 <artifactId>onos-incubator</artifactId>
21 <groupId>org.onosproject</groupId>
Brian O'Connor880dc20d2015-12-16 22:53:14 -080022 <version>1.5.0-SNAPSHOT</version>
HIGUCHI Yuta15653fd2015-11-09 11:05:09 -080023 </parent>
24
25 <artifactId>onos-incubator-rpc-grpc</artifactId>
26 <packaging>bundle</packaging>
27
28 <description>ONOS inter-cluster RPC based on gRPC</description>
29 <url>http://onosproject.org</url>
30
31 <properties>
32 <onos.app.name>org.onosproject.incubator.rpc.grpc</onos.app.name>
33 <onos.app.requires>org.onosproject.incubator.rpc</onos.app.requires>
34 <!-- Note: update feature.xml when updating -->
35 <grpc.version>0.9.0</grpc.version>
36 <grpc.netty.version>4.1.0.Beta6</grpc.netty.version>
37 </properties>
38
39 <pluginRepositories>
40 <pluginRepository>
41 <id>protoc-plugin</id>
42 <url>https://dl.bintray.com/sergei-ivanov/maven/</url>
43 </pluginRepository>
44 </pluginRepositories>
45
46
47 <dependencies>
48 <dependency>
49 <groupId>org.onosproject</groupId>
50 <artifactId>onos-api</artifactId>
51 </dependency>
52
53 <dependency>
54 <groupId>org.onosproject</groupId>
55 <artifactId>onos-incubator-api</artifactId>
56 </dependency>
57
58 <dependency>
59 <groupId>org.onosproject</groupId>
60 <artifactId>onlab-osgi</artifactId>
61 </dependency>
62<!--
63 <dependency>
64 <groupId>io.grpc</groupId>
65 <artifactId>grpc-all</artifactId>
66 <version>${grpc.version}</version>
67 </dependency>
68-->
69 <dependency>
70 <groupId>io.grpc</groupId>
71 <artifactId>grpc-core</artifactId>
72 <version>${grpc.version}</version>
73 </dependency>
74 <dependency>
75 <groupId>io.grpc</groupId>
76 <artifactId>grpc-protobuf</artifactId>
77 <version>${grpc.version}</version>
78 </dependency>
79 <dependency>
80 <groupId>io.grpc</groupId>
81 <artifactId>grpc-stub</artifactId>
82 <version>${grpc.version}</version>
83 </dependency>
84 <dependency>
85 <groupId>io.grpc</groupId>
86 <artifactId>grpc-netty</artifactId>
87 <version>${grpc.version}</version>
88 </dependency>
89 <dependency>
90 <groupId>io.grpc</groupId>
91 <artifactId>grpc-auth</artifactId>
92 <version>${grpc.version}</version>
93 </dependency>
94
95 <dependency>
96 <groupId>junit</groupId>
97 <artifactId>junit</artifactId>
98 <scope>test</scope>
99 </dependency>
100
101 <dependency>
102 <groupId>org.onosproject</groupId>
103 <artifactId>onos-api</artifactId>
104 <scope>test</scope>
105 <classifier>tests</classifier>
106 </dependency>
107
108 <dependency>
109 <groupId>org.apache.felix</groupId>
110 <artifactId>org.apache.felix.scr.annotations</artifactId>
111 <scope>provided</scope>
112 </dependency>
113 </dependencies>
114
115 <build>
116 <extensions>
117 <extension>
118 <groupId>kr.motd.maven</groupId>
119 <artifactId>os-maven-plugin</artifactId>
120 <version>1.4.0.Final</version>
121 </extension>
122 </extensions>
123
124 <plugins>
Brian O'Connor4380f542015-12-03 15:57:06 -0800125 <!-- TODO This is included to suppress the generation of javadocs for
126 this package. There is a problem when we try to package the
127 auto-generated code's javadoc into a jar. -->
128 <plugin>
129 <groupId>org.apache.maven.plugins</groupId>
130 <artifactId>maven-javadoc-plugin</artifactId>
131 <configuration>
132 <sourcepath>${basedir}/src/main/java/</sourcepath>
133 <excludePackageNames>org.onosproject.incubator.rpc.grpc</excludePackageNames>
134 </configuration>
135 </plugin>
136
HIGUCHI Yuta15653fd2015-11-09 11:05:09 -0800137 <plugin>
138 <groupId>org.apache.felix</groupId>
139 <artifactId>maven-bundle-plugin</artifactId>
140 <extensions>true</extensions>
141 </plugin>
142 <plugin>
143 <groupId>org.apache.maven.plugins</groupId>
144 <artifactId>maven-compiler-plugin</artifactId>
145 <configuration>
146 <source>1.8</source>
147 <target>1.8</target>
148 </configuration>
149 </plugin>
150 <plugin>
151 <groupId>org.apache.felix</groupId>
152 <artifactId>maven-scr-plugin</artifactId>
153 <executions>
154 <execution>
155 <id>generate-scr-srcdescriptor</id>
156 <goals>
157 <goal>scr</goal>
158 </goals>
159 </execution>
160 </executions>
161 <configuration>
162 <!-- avoid searching into wrong source path -->
163 <scanClasses>true</scanClasses>
164 <supportedProjectTypes>
165 <supportedProjectType>bundle</supportedProjectType>
166 <supportedProjectType>war</supportedProjectType>
167 </supportedProjectTypes>
168 </configuration>
169 </plugin>
170 <plugin>
171 <groupId>org.onosproject</groupId>
172 <artifactId>onos-maven-plugin</artifactId>
173 <executions>
174 <execution>
175 <id>cfg</id>
176 <phase>generate-resources</phase>
177 <goals>
178 <goal>cfg</goal>
179 </goals>
180 </execution>
181 <execution>
182 <id>swagger</id>
183 <phase>generate-sources</phase>
184 <goals>
185 <goal>swagger</goal>
186 </goals>
187 </execution>
188 <execution>
189 <id>app</id>
190 <phase>package</phase>
191 <goals>
192 <goal>app</goal>
193 </goals>
194 </execution>
195 </executions>
196 </plugin>
197
198 <plugin>
199 <groupId>com.google.protobuf.tools</groupId>
200 <artifactId>maven-protoc-plugin</artifactId>
201 <version>0.4.2</version>
202 <configuration>
203 <!-- The version of protoc must match protobuf-java. If you don't
204 depend on protobuf-java directly, you will be transitively depending on the
205 protobuf-java version that grpc depends on. -->
206 <protocArtifact>com.google.protobuf:protoc:3.0.0-beta-1:exe:${os.detected.classifier}</protocArtifact>
207 <pluginId>grpc-java</pluginId>
208 <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
209 </configuration>
210 <executions>
211 <execution>
212 <goals>
213 <goal>compile</goal>
214 <goal>compile-custom</goal>
215 </goals>
216 </execution>
217 </executions>
218 </plugin>
219
220 <plugin>
221 <groupId>org.codehaus.mojo</groupId>
222 <artifactId>build-helper-maven-plugin</artifactId>
223 <version>1.9.1</version>
224 <executions>
225 <execution>
226 <id>add-source</id>
227 <phase>generate-sources</phase>
228 <goals>
229 <goal>add-source</goal>
230 </goals>
231 <configuration>
232 <sources>
233 <source>${project.build.directory}/generated-sources/protobuf/java</source>
234 <source>${project.build.directory}/generated-sources/protobuf/grpc-java</source>
235 </sources>
236 </configuration>
237 </execution>
238 </executions>
Brian O'Connor4380f542015-12-03 15:57:06 -0800239 </plugin>
HIGUCHI Yuta15653fd2015-11-09 11:05:09 -0800240 </plugins>
241 </build>
242
243 <!-- gRPC requires more recent version of netty -->
244 <dependencyManagement>
245 <dependencies>
246 <dependency>
247 <groupId>io.netty</groupId>
248 <artifactId>netty-codec</artifactId>
249 <version>${grpc.netty.version}</version>
250 </dependency>
251 <dependency>
252 <groupId>io.netty</groupId>
253 <artifactId>netty-transport</artifactId>
254 <version>${grpc.netty.version}</version>
255 </dependency>
256 <dependency>
257 <groupId>io.netty</groupId>
258 <artifactId>netty-handler</artifactId>
259 <version>${grpc.netty.version}</version>
260 </dependency>
261 <dependency>
262 <groupId>io.netty</groupId>
263 <artifactId>netty-buffer</artifactId>
264 <version>${grpc.netty.version}</version>
265 </dependency>
266 <dependency>
267 <groupId>io.netty</groupId>
268 <artifactId>netty-common</artifactId>
269 <version>${grpc.netty.version}</version>
270 </dependency>
271 <dependency>
272 <groupId>com.twitter</groupId>
273 <artifactId>hpack</artifactId>
274 <!-- 0.11.0 and later are published as a bundle -->
275 <version>0.11.0</version>
276 </dependency>
277 </dependencies>
278 </dependencyManagement>
279
280</project>