f722c79073f96a1d2b2b277fb8ba6afb7ebc3d2c
[dmaap/datarouter.git] / datarouter-node / pom.xml
1 <!--
2   ============LICENSE_START==================================================
3   * org.onap.dmaap
4   * ===========================================================================
5   * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6   * Modifications Copyright (C) 2018 Nokia. All rights reserved.
7   * ===========================================================================
8   * Licensed under the Apache License, Version 2.0 (the "License");
9   * you may not use this file except in compliance with the License.
10   * You may obtain a copy of the License at
11   *
12    *      http://www.apache.org/licenses/LICENSE-2.0
13   *
14    * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS,
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   * See the License for the specific language governing permissions and
18   * limitations under the License.
19   * ============LICENSE_END====================================================
20   *
21   * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22   *
23 -->
24 <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/maven-v4_0_0.xsd">
25     <modelVersion>4.0.0</modelVersion>
26     <parent>
27         <groupId>org.onap.dmaap.datarouter</groupId>
28         <artifactId>parent</artifactId>
29         <version>2.0.1-SNAPSHOT</version>
30         <relativePath>../pom.xml</relativePath>
31     </parent>
32     <artifactId>datarouter-node</artifactId>
33     <packaging>jar</packaging>
34     <name>datarouter-node</name>
35     <url>https://github.com/att/DMAAP_DATAROUTER</url>
36     <properties>
37         <sonar.skip>false</sonar.skip>
38         <sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
39         <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
40         <docker.location>${basedir}/target/${artifactId}</docker.location>
41         <datarouter.node.image.name>onap/dmaap/datarouter-node</datarouter.node.image.name>
42     </properties>
43     <dependencies>
44         <dependency>
45             <groupId>com.google.guava</groupId>
46             <artifactId>guava</artifactId>
47             <version>${google.guava.version}</version>
48         </dependency>
49         <dependency>
50             <groupId>commons-codec</groupId>
51             <artifactId>commons-codec</artifactId>
52             <version>${commons-codec.version}</version>
53         </dependency>
54         <dependency>
55             <groupId>junit</groupId>
56             <artifactId>junit</artifactId>
57             <version>4.10</version>
58             <scope>test</scope>
59         </dependency>
60         <dependency>
61             <groupId>org.json</groupId>
62             <artifactId>json</artifactId>
63             <version>20160810</version>
64         </dependency>
65         <dependency>
66             <groupId>javax.mail</groupId>
67             <artifactId>javax.mail-api</artifactId>
68             <version>${javax.mail-api.version}</version>
69         </dependency>
70         <dependency>
71             <groupId>com.att.eelf</groupId>
72             <artifactId>eelf-core</artifactId>
73             <version>0.0.1</version>
74         </dependency>
75         <dependency>
76             <groupId>com.thoughtworks.xstream</groupId>
77             <artifactId>xstream</artifactId>
78             <version>${thoughtworks.version}</version>
79         </dependency>
80         <dependency>
81             <groupId>ch.qos.logback</groupId>
82             <artifactId>logback-classic</artifactId>
83             <version>${qos.logback.version}</version>
84             <scope>compile</scope>
85         </dependency>
86         <dependency>
87             <groupId>ch.qos.logback</groupId>
88             <artifactId>logback-core</artifactId>
89             <version>${qos.logback.version}</version>
90             <scope>compile</scope>
91         </dependency>
92         <dependency>
93             <groupId>org.eclipse.jetty</groupId>
94             <artifactId>jetty-server</artifactId>
95             <version>${jetty.version}</version>
96         </dependency>
97         <dependency>
98             <groupId>org.eclipse.jetty</groupId>
99             <artifactId>jetty-continuation</artifactId>
100             <version>${jetty.version}</version>
101         </dependency>
102         <dependency>
103             <groupId>org.eclipse.jetty</groupId>
104             <artifactId>jetty-util</artifactId>
105             <version>${jetty.version}</version>
106         </dependency>
107         <dependency>
108             <groupId>org.eclipse.jetty</groupId>
109             <artifactId>jetty-deploy</artifactId>
110             <version>${jetty.version}</version>
111         </dependency>
112         <dependency>
113             <groupId>org.eclipse.jetty</groupId>
114             <artifactId>jetty-servlet</artifactId>
115             <version>${jetty.version}</version>
116         </dependency>
117         <dependency>
118             <groupId>org.eclipse.jetty</groupId>
119             <artifactId>jetty-servlets</artifactId>
120             <version>${jetty.version}</version>
121         </dependency>
122         <dependency>
123             <groupId>org.eclipse.jetty</groupId>
124             <artifactId>jetty-http</artifactId>
125             <version>${jetty.version}</version>
126         </dependency>
127         <dependency>
128             <groupId>org.eclipse.jetty</groupId>
129             <artifactId>jetty-security</artifactId>
130             <version>${jetty.version}</version>
131         </dependency>
132         <dependency>
133             <groupId>org.eclipse.jetty</groupId>
134             <artifactId>jetty-websocket</artifactId>
135             <version>${jetty.websocket.version}</version>
136         </dependency>
137         <dependency>
138             <groupId>org.eclipse.jetty</groupId>
139             <artifactId>jetty-io</artifactId>
140             <version>${jetty.version}</version>
141         </dependency>
142         <dependency>
143             <groupId>org.apache.commons</groupId>
144             <artifactId>commons-io</artifactId>
145             <version>1.3.2</version>
146         </dependency>
147         <dependency>
148             <groupId>commons-lang</groupId>
149             <artifactId>commons-lang</artifactId>
150             <version>2.4</version>
151         </dependency>
152         <dependency>
153             <groupId>commons-io</groupId>
154             <artifactId>commons-io</artifactId>
155             <version>2.1</version>
156             <scope>compile</scope>
157         </dependency>
158         <dependency>
159             <groupId>org.apache.httpcomponents</groupId>
160             <artifactId>httpcore</artifactId>
161             <version>4.4</version>
162         </dependency>
163         <dependency>
164             <groupId>org.mozilla</groupId>
165             <artifactId>rhino</artifactId>
166             <version>1.7R3</version>
167         </dependency>
168         <dependency>
169             <groupId>org.apache.james</groupId>
170             <artifactId>apache-mime4j-core</artifactId>
171             <version>0.7</version>
172         </dependency>
173         <dependency>
174             <groupId>org.apache.httpcomponents</groupId>
175             <artifactId>httpclient</artifactId>
176             <version>4.5.3</version>
177         </dependency>
178         <dependency>
179             <groupId>org.sonatype.http-testing-harness</groupId>
180             <artifactId>junit-runner</artifactId>
181             <version>0.11</version>
182             <exclusions>
183                 <exclusion>
184                     <groupId>org.databene</groupId>
185                     <artifactId>contiperf</artifactId>
186                 </exclusion>
187             </exclusions>
188         </dependency>
189         <dependency>
190             <groupId>log4j</groupId>
191             <artifactId>log4j</artifactId>
192             <version>1.2.17</version>
193             <scope>compile</scope>
194         </dependency>
195         <dependency>
196             <groupId>org.mockito</groupId>
197             <artifactId>mockito-core</artifactId>
198             <version>1.10.19</version>
199             <scope>test</scope>
200         </dependency>
201         <dependency>
202             <groupId>org.powermock</groupId>
203             <artifactId>powermock-module-junit4</artifactId>
204             <version>1.6.4</version>
205             <scope>test</scope>
206         </dependency>
207         <dependency>
208             <groupId>org.powermock</groupId>
209             <artifactId>powermock-api-mockito</artifactId>
210             <version>1.6.4</version>
211             <scope>test</scope>
212         </dependency>
213         <dependency>
214             <groupId>org.apache.commons</groupId>
215             <artifactId>commons-lang3</artifactId>
216             <version>3.0</version>
217         </dependency>
218     </dependencies>
219     <profiles>
220         <profile>
221             <id>docker</id>
222             <properties>
223                 <skipDockerBuild>false</skipDockerBuild>
224                 <skipDockerTag>false</skipDockerTag>
225                 <skipTests>true</skipTests>
226             </properties>
227             <build>
228                 <plugins>
229                     <plugin>
230                         <groupId>com.spotify</groupId>
231                         <artifactId>docker-maven-plugin</artifactId>
232                         <version>${docker.maven.plugin.version}</version>
233                         <configuration>
234                             <imageName>${onap.nexus.dockerregistry.daily}/${datarouter.node.image.name}</imageName>
235                             <baseImage>java:8</baseImage>
236                             <serverId>${onap.nexus.dockerregistry.daily}</serverId>
237                             <skipDockerBuild>false</skipDockerBuild>
238                             <imageTags>
239                                 <imageTag>${project.version}</imageTag>
240                                 <imageTag>latest</imageTag>
241                             </imageTags>
242                             <forceTags>true</forceTags>
243                             <entryPoint>["/startup.sh", "start"]</entryPoint>
244                             <resources>
245                                 <resource>
246                                     <targetPath>/opt</targetPath>
247                                     <directory>${project.build.directory}/opt</directory>
248                                 </resource>
249                                 <resource>
250                                     <targetPath>/</targetPath>
251                                     <directory>${docker.location}</directory>
252                                     <include>startup.sh</include>
253                                 </resource>
254                             </resources>
255                             <runs>
256                                 <run>chmod 0700 /startup.sh</run>
257                             </runs>
258                             <exposes>
259                                 <expose>8080</expose>
260                                 <expose>8443</expose>
261                             </exposes>
262                         </configuration>
263                     </plugin>
264                 </plugins>
265             </build>
266         </profile>
267     </profiles>
268
269     <build>
270         <finalName>datarouter-node</finalName>
271         <resources>
272             <resource>
273                 <directory>src/main/resources</directory>
274                 <filtering>true</filtering>
275                 <includes>
276                     <include>**/*.properties</include>
277                 </includes>
278             </resource>
279             <resource>
280                 <directory>src/main/resources</directory>
281                 <filtering>true</filtering>
282                 <includes>
283                     <include>**/EelfMessages.properties</include>
284                 </includes>
285             </resource>
286             <resource>
287                 <directory>src/main/resources</directory>
288                 <filtering>true</filtering>
289                 <includes>
290                     <include>**/log4j.properties</include>
291                 </includes>
292             </resource>
293         </resources>
294         <plugins>
295             <plugin>
296                 <groupId>org.apache.maven.plugins</groupId>
297                 <artifactId>maven-compiler-plugin</artifactId>
298                 <configuration>
299                     <source>1.8</source>
300                     <target>1.8</target>
301                 </configuration>
302                 <version>3.6.0</version>
303             </plugin>
304             <plugin>
305                 <artifactId>maven-assembly-plugin</artifactId>
306                 <version>2.4</version>
307                 <configuration>
308                     <descriptorRefs>
309                         <descriptorRef>jar-with-dependencies</descriptorRef>
310                     </descriptorRefs>
311                     <outputDirectory>${basedir}/target/opt/app/datartr/lib</outputDirectory>
312                     <archive>
313                         <manifest>
314                             <addClasspath>true</addClasspath>
315                             <mainClass>org.onap.dmaap.datarouter.node.NodeMain</mainClass>
316                         </manifest>
317                     </archive>
318                 </configuration>
319                 <executions>
320                     <execution>
321                         <id>make-assembly</id>
322                         <!-- this is used for inheritance merges -->
323                         <phase>package</phase>
324                         <!-- bind to the packaging phase -->
325                         <goals>
326                             <goal>single</goal>
327                         </goals>
328                     </execution>
329                 </executions>
330             </plugin>
331             <plugin>
332                 <groupId>org.apache.maven.plugins</groupId>
333                 <artifactId>maven-resources-plugin</artifactId>
334                 <version>2.7</version>
335                 <executions>
336                     <execution>
337                         <id>copy-docker-file</id>
338                         <phase>package</phase>
339                         <goals>
340                             <goal>copy-resources</goal>
341                         </goals>
342                         <configuration>
343                             <outputDirectory>${docker.location}</outputDirectory>
344                             <overwrite>true</overwrite>
345                             <resources>
346                                 <resource>
347                                     <directory>${basedir}/src/main/resources/docker</directory>
348                                     <filtering>true</filtering>
349                                     <includes>
350                                         <include>**/*</include>
351                                     </includes>
352                                 </resource>
353                             </resources>
354                         </configuration>
355                     </execution>
356                     <execution>
357                         <id>copy-resources</id>
358                         <phase>validate</phase>
359                         <goals>
360                             <goal>copy-resources</goal>
361                         </goals>
362                         <configuration>
363                             <outputDirectory>${basedir}/target/opt/app/datartr/etc</outputDirectory>
364                             <resources>
365                                 <resource>
366                                     <directory>${basedir}/src/main/resources</directory>
367                                     <includes>
368                                         <include>misc/**</include>
369                                         <include>**/**</include>
370                                     </includes>
371                                 </resource>
372                             </resources>
373                         </configuration>
374                     </execution>
375                     <execution>
376                         <id>copy-resources-1</id>
377                         <phase>validate</phase>
378                         <goals>
379                             <goal>copy-resources</goal>
380                         </goals>
381                         <configuration>
382                             <outputDirectory>${basedir}/target/opt/app/datartr/aaf_certs</outputDirectory>
383                             <resources>
384                                 <resource>
385                                     <directory>${basedir}/aaf_certs</directory>
386                                     <includes>
387                                         <include>misc/**</include>
388                                         <include>**/**</include>
389                                     </includes>
390                                 </resource>
391                             </resources>
392                         </configuration>
393                     </execution>
394                 </executions>
395             </plugin>
396             <plugin>
397                 <groupId>org.apache.maven.plugins</groupId>
398                 <artifactId>maven-dependency-plugin</artifactId>
399                 <version>2.10</version>
400                 <executions>
401                     <execution>
402                         <id>copy-dependencies</id>
403                         <phase>package</phase>
404                         <goals>
405                             <goal>copy-dependencies</goal>
406                         </goals>
407                         <configuration>
408                             <outputDirectory>${project.build.directory}/opt/app/datartr/lib</outputDirectory>
409                             <overWriteReleases>false</overWriteReleases>
410                             <overWriteSnapshots>false</overWriteSnapshots>
411                             <overWriteIfNewer>true</overWriteIfNewer>
412                         </configuration>
413                     </execution>
414                 </executions>
415             </plugin>
416             <plugin>
417                 <groupId>org.apache.maven.plugins</groupId>
418                 <artifactId>maven-javadoc-plugin</artifactId>
419                 <configuration>
420                     <failOnError>false</failOnError>
421                 </configuration>
422                 <executions>
423                     <execution>
424                         <id>attach-javadocs</id>
425                         <goals>
426                             <goal>jar</goal>
427                         </goals>
428                     </execution>
429                 </executions>
430             </plugin>
431             <plugin>
432                 <groupId>org.apache.maven.plugins</groupId>
433                 <artifactId>maven-source-plugin</artifactId>
434                 <version>2.2.1</version>
435                 <executions>
436                     <execution>
437                         <id>attach-sources</id>
438                         <goals>
439                             <goal>jar-no-fork</goal>
440                         </goals>
441                     </execution>
442                 </executions>
443             </plugin>
444             <plugin>
445                 <groupId>org.codehaus.mojo</groupId>
446                 <artifactId>cobertura-maven-plugin</artifactId>
447                 <version>2.7</version>
448                 <configuration>
449                     <formats>
450                         <format>html</format>
451                         <format>xml</format>
452                     </formats>
453                     <check/>
454                 </configuration>
455             </plugin>
456             <plugin>
457                 <groupId>org.sonatype.plugins</groupId>
458                 <artifactId>nexus-staging-maven-plugin</artifactId>
459                 <version>1.6.7</version>
460                 <extensions>true</extensions>
461                 <configuration>
462                     <nexusUrl>${onap.nexus.url}</nexusUrl>
463                     <stagingProfileId>176c31dfe190a</stagingProfileId>
464                     <serverId>ecomp-staging</serverId>
465                 </configuration>
466             </plugin>
467             <plugin>
468                 <groupId>org.jacoco</groupId>
469                 <artifactId>jacoco-maven-plugin</artifactId>
470                 <version>${jacoco.version}</version>
471                 <configuration>
472                     <excludes>
473                         <exclude>**/gen/**</exclude>
474                         <exclude>**/generated-sources/**</exclude>
475                         <exclude>**/yang-gen/**</exclude>
476                         <exclude>**/pax/**</exclude>
477                     </excludes>
478                 </configuration>
479                 <executions>
480                     <execution>
481                         <id>pre-unit-test</id>
482                         <goals>
483                             <goal>prepare-agent</goal>
484                         </goals>
485                         <configuration>
486                             <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
487                             <propertyName>surefireArgLine</propertyName>
488                         </configuration>
489                     </execution>
490                     <execution>
491                         <id>post-unit-test</id>
492                         <phase>test</phase>
493                         <goals>
494                             <goal>report</goal>
495                         </goals>
496                         <configuration>
497                             <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
498                             <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
499                         </configuration>
500                     </execution>
501                     <execution>
502                         <id>pre-integration-test</id>
503                         <phase>pre-integration-test</phase>
504                         <goals>
505                             <goal>prepare-agent</goal>
506                         </goals>
507                         <configuration>
508                             <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
509                             <propertyName>failsafeArgLine</propertyName>
510                         </configuration>
511                     </execution>
512                     <execution>
513                         <id>post-integration-test</id>
514                         <phase>post-integration-test</phase>
515                         <goals>
516                             <goal>report</goal>
517                         </goals>
518                         <configuration>
519                             <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
520                             <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
521                         </configuration>
522                     </execution>
523                 </executions>
524             </plugin>
525         </plugins>
526     </build>
527 </project>