blob: f528ca5334a50ac0fbb8d16b01f37914c738e143 [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>
22 <version>1.4.0-SNAPSHOT</version>
23 </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>
125 <plugin>
126 <groupId>org.apache.felix</groupId>
127 <artifactId>maven-bundle-plugin</artifactId>
128 <extensions>true</extensions>
129 </plugin>
130 <plugin>
131 <groupId>org.apache.maven.plugins</groupId>
132 <artifactId>maven-compiler-plugin</artifactId>
133 <configuration>
134 <source>1.8</source>
135 <target>1.8</target>
136 </configuration>
137 </plugin>
138 <plugin>
139 <groupId>org.apache.felix</groupId>
140 <artifactId>maven-scr-plugin</artifactId>
141 <executions>
142 <execution>
143 <id>generate-scr-srcdescriptor</id>
144 <goals>
145 <goal>scr</goal>
146 </goals>
147 </execution>
148 </executions>
149 <configuration>
150 <!-- avoid searching into wrong source path -->
151 <scanClasses>true</scanClasses>
152 <supportedProjectTypes>
153 <supportedProjectType>bundle</supportedProjectType>
154 <supportedProjectType>war</supportedProjectType>
155 </supportedProjectTypes>
156 </configuration>
157 </plugin>
158 <plugin>
159 <groupId>org.onosproject</groupId>
160 <artifactId>onos-maven-plugin</artifactId>
161 <executions>
162 <execution>
163 <id>cfg</id>
164 <phase>generate-resources</phase>
165 <goals>
166 <goal>cfg</goal>
167 </goals>
168 </execution>
169 <execution>
170 <id>swagger</id>
171 <phase>generate-sources</phase>
172 <goals>
173 <goal>swagger</goal>
174 </goals>
175 </execution>
176 <execution>
177 <id>app</id>
178 <phase>package</phase>
179 <goals>
180 <goal>app</goal>
181 </goals>
182 </execution>
183 </executions>
184 </plugin>
185
186 <plugin>
187 <groupId>com.google.protobuf.tools</groupId>
188 <artifactId>maven-protoc-plugin</artifactId>
189 <version>0.4.2</version>
190 <configuration>
191 <!-- The version of protoc must match protobuf-java. If you don't
192 depend on protobuf-java directly, you will be transitively depending on the
193 protobuf-java version that grpc depends on. -->
194 <protocArtifact>com.google.protobuf:protoc:3.0.0-beta-1:exe:${os.detected.classifier}</protocArtifact>
195 <pluginId>grpc-java</pluginId>
196 <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
197 </configuration>
198 <executions>
199 <execution>
200 <goals>
201 <goal>compile</goal>
202 <goal>compile-custom</goal>
203 </goals>
204 </execution>
205 </executions>
206 </plugin>
207
208 <plugin>
209 <groupId>org.codehaus.mojo</groupId>
210 <artifactId>build-helper-maven-plugin</artifactId>
211 <version>1.9.1</version>
212 <executions>
213 <execution>
214 <id>add-source</id>
215 <phase>generate-sources</phase>
216 <goals>
217 <goal>add-source</goal>
218 </goals>
219 <configuration>
220 <sources>
221 <source>${project.build.directory}/generated-sources/protobuf/java</source>
222 <source>${project.build.directory}/generated-sources/protobuf/grpc-java</source>
223 </sources>
224 </configuration>
225 </execution>
226 </executions>
227 </plugin>
228
229 </plugins>
230 </build>
231
232 <!-- gRPC requires more recent version of netty -->
233 <dependencyManagement>
234 <dependencies>
235 <dependency>
236 <groupId>io.netty</groupId>
237 <artifactId>netty-codec</artifactId>
238 <version>${grpc.netty.version}</version>
239 </dependency>
240 <dependency>
241 <groupId>io.netty</groupId>
242 <artifactId>netty-transport</artifactId>
243 <version>${grpc.netty.version}</version>
244 </dependency>
245 <dependency>
246 <groupId>io.netty</groupId>
247 <artifactId>netty-handler</artifactId>
248 <version>${grpc.netty.version}</version>
249 </dependency>
250 <dependency>
251 <groupId>io.netty</groupId>
252 <artifactId>netty-buffer</artifactId>
253 <version>${grpc.netty.version}</version>
254 </dependency>
255 <dependency>
256 <groupId>io.netty</groupId>
257 <artifactId>netty-common</artifactId>
258 <version>${grpc.netty.version}</version>
259 </dependency>
260 <dependency>
261 <groupId>com.twitter</groupId>
262 <artifactId>hpack</artifactId>
263 <!-- 0.11.0 and later are published as a bundle -->
264 <version>0.11.0</version>
265 </dependency>
266 </dependencies>
267 </dependencyManagement>
268
269</project>