Merge "[AAI] Release graphadmin 1.9.3 docker image"
[aai/graphadmin.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3
4     ============LICENSE_START=======================================================
5     org.onap.aai
6     ================================================================================
7     Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
8     ================================================================================
9     Licensed under the Apache License, Version 2.0 (the "License");
10     you may not use this file except in compliance with the License.
11     You may obtain a copy of the License at
12
13        http://www.apache.org/licenses/LICENSE-2.0
14
15     Unless required by applicable law or agreed to in writing, software
16     distributed under the License is distributed on an "AS IS" BASIS,
17     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18     See the License for the specific language governing permissions and
19     limitations under the License.
20     ============LICENSE_END=========================================================
21
22 -->
23 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
24          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
25     <modelVersion>4.0.0</modelVersion>
26     <parent>
27         <groupId>org.onap.aai.aai-common</groupId>
28         <artifactId>aai-parent</artifactId>
29         <version>1.9.2</version>
30     </parent>
31     <groupId>org.onap.aai.graphadmin</groupId>
32     <artifactId>aai-graphadmin</artifactId>
33     <version>1.9.3-SNAPSHOT</version>
34
35     <properties>
36
37         <!-- Start of Compiler Related Properties -->
38               <mockito.core.version>1.10.19</mockito.core.version>
39         <java.version>1.8</java.version>
40         <maven.compiler.source>1.8</maven.compiler.source>
41         <maven.compiler.target>1.8</maven.compiler.target>
42         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
43         <!-- End of Compiler Related Properties -->
44
45         <!-- Start of Test Related Properties -->
46         <skip.unit.tests>false</skip.unit.tests>
47         <skip.integration.tests>true</skip.integration.tests>
48         <!-- End of Test Related Properties -->
49
50         <!-- Start of Docker Related Properties -->
51         <docker.fabric.version>0.28.0</docker.fabric.version>
52         <!-- Default docker registry that maven fabric plugin will try to pull from -->
53         <docker.registry>docker.io</docker.registry>
54         <!-- Specifying the docker push registry where the image should be pushed -->
55         <!-- This value should be overwritten at runtime to wherever need to be pushed to -->
56         <docker.push.registry>localhost:5000</docker.push.registry>
57         <aai.docker.version>1.0.0</aai.docker.version>
58         <aai.schema.service.version>1.9.4</aai.schema.service.version>
59         <aai.common.version>1.9.2</aai.common.version>
60         <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/
61         </aai.build.directory>
62         <aai.docker.namespace>onap</aai.docker.namespace>
63         <!-- base image for aai-common -->
64         <aai.base.image>alpine</aai.base.image>
65         <!-- aai-common image version -->
66         <aai.base.image.version>1.6.0</aai.base.image.version>
67         <!-- End of Docker Related Properties -->
68
69         <license.goal.type>check</license.goal.type>
70
71         <!--
72             Nexus Proxy Properties and Snapshot Locations
73             Ideally this can be overwritten at runtime per internal environment specific values at runtime
74         -->
75         <nexusproxy>https://nexus.onap.org</nexusproxy>
76         <site.path>/content/sites/site/org/onap/aai/graphadmin/${project.artifactId}/${project.version}</site.path>
77         <release.path>/content/repositories/releases/</release.path>
78         <snapshot.path>/content/repositories/snapshots/</snapshot.path>
79         <!-- GMaven plugin uses this property to figure out the name of the docker tag -->
80         <aai.project.version>${project.version}</aai.project.version>
81
82         <!-- Start of Database Related Properties -->
83         <!-- End of Database Related Properties -->
84
85         <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
86         <start-class>org.onap.aai.GraphAdminApp</start-class>
87
88         <snapshot.file>${project.basedir}/snapshots/int1-data.graphson</snapshot.file>
89         <jacoco.line.coverage.limit>0.46</jacoco.line.coverage.limit>
90         
91         <!-- Start of Default ONAP Schema Properties -->
92         <schema.source.name>onap</schema.source.name>
93         <schema.configuration.location>N/A</schema.configuration.location>
94         <schema.nodes.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/oxm</schema.nodes.location>
95         <schema.edges.location>${project.basedir}/src/main/resources/schema/${schema.source.name}/dbedgerules</schema.edges.location>
96         <schema.version.depth.start>v10</schema.version.depth.start>
97         <schema.version.related.link.start>v10</schema.version.related.link.start>
98         <schema.version.app.root.start>v11</schema.version.app.root.start>
99         <schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
100         <schema.version.edge.label.start>v12</schema.version.edge.label.start>
101         <schema.version.api.default>v26</schema.version.api.default>
102         <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26</schema.version.list>
103         <schema.uri.base.path>/aai</schema.uri.base.path>
104         <!-- End of Default ONAP Schema Properties -->
105
106         <!-- Start of graphadmin metric collection Properties -->
107         <micrometer.core.version>1.8.1</micrometer.core.version>
108         <micrometer.registry.prometheus.version>1.8.1</micrometer.registry.prometheus.version>
109         <micrometer.jersey2.version>1.8.1</micrometer.jersey2.version>
110         <spring.boot.starter.actuator.version>2.1.12.RELEASE</spring.boot.starter.actuator.version>
111         <!-- End of graphadmin metric collection Properties -->
112     </properties>
113
114     <profiles>
115         <!-- Used during verify stage in Jenkins -->
116         <profile>
117             <id>all-tests</id>
118             <properties>
119                 <build.profile.id>all-tests</build.profile.id>
120
121                 <!-- All tests are run. -->
122                 <skip.integration.tests>false</skip.integration.tests>
123                 <skip.unit.tests>false</skip.unit.tests>
124             </properties>
125         </profile>
126         <profile>
127             <id>skipTests</id>
128             <activation>
129                 <property>
130                     <name>skipTests</name>
131                 </property>
132             </activation>
133             <properties>
134                 <!-- All tests are skipped. -->
135                 <skip.integration.tests>true</skip.integration.tests>
136                 <skip.unit.tests>true</skip.unit.tests>
137             </properties>
138         </profile>
139         <profile>
140             <id>dev</id>
141         </profile>
142         <profile>
143             <id>integration-test</id>
144             <properties>
145                 <!-- Only integration tests are run. -->
146                 <build.profile.id>integration-test</build.profile.id>
147                 <skip.integration.tests>false</skip.integration.tests>
148                 <skip.unit.tests>true</skip.unit.tests>
149             </properties>
150         </profile>
151         <!-- Start of ONAP Profile -->
152         <profile>
153             <id>onap</id>
154             <properties>
155                 <schema.source.name>onap</schema.source.name>
156                 <schema.version.namespace.change.start>v12</schema.version.namespace.change.start>
157                 <schema.version.list>v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,v20,v21,v22,v23,v24,v25,v26</schema.version.list>
158             </properties>
159         </profile>
160         <!-- End of ONAP Profile -->
161         <profile>
162             <id>runAjsc</id>
163             <properties>
164                 <skipTests>${skip.unit.tests}</skipTests>
165             </properties>
166             <build>
167                 <defaultGoal>pre-integration-test</defaultGoal>
168                 <plugins>
169                     <plugin>
170                         <groupId>org.codehaus.mojo</groupId>
171                         <artifactId>exec-maven-plugin</artifactId>
172                         <version>1.6.0</version>
173                         <executions>
174                             <execution>
175                                 <id>run-spring-boot</id>
176                                 <phase>package</phase>
177                                 <goals>
178                                     <goal>java</goal>
179                                 </goals>
180                             </execution>
181                         </executions>
182                         <configuration>
183                             <mainClass>${start-class}</mainClass>
184                             <systemProperties>
185                                 <property>
186                                     <key>snapshot.location</key>
187                                     <value>${snapshot.file}</value>
188                                 </property>
189                                 <property>
190                                     <key>schema.source.name</key>
191                                     <value>${schema.source.name}</value>
192                                 </property>
193                                 <property>
194                                     <key>schema.configuration.location</key>
195                                     <value>${schema.configuration.location}</value>
196                                 </property>
197                                 <property>
198                                     <key>schema.nodes.location</key>
199                                     <value>${schema.nodes.location}</value>
200                                 </property>
201                                 <property>
202                                     <key>schema.edges.location</key>
203                                     <value>${schema.edges.location}</value>
204                                 </property>
205                                 <property>
206                                     <key>schema.version.depth.start</key>
207                                     <value>${schema.version.depth.start}</value>
208                                 </property>
209                                 <property>
210                                     <key>schema.version.related.link.start</key>
211                                     <value>${schema.version.related.link.start}</value>
212                                 </property>
213                                 <property>
214                                     <key>schema.version.app.root.start</key>
215                                     <value>${schema.version.app.root.start}</value>
216                                 </property>
217                                 <property>
218                                     <key>schema.version.namespace.change.start</key>
219                                     <value>${schema.version.namespace.change.start}</value>
220                                 </property>
221                                 <property>
222                                     <key>schema.version.edge.label.start</key>
223                                     <value>${schema.version.edge.label.start}</value>
224                                 </property>
225                                 <property>
226                                     <key>schema.version.api.default</key>
227                                     <value>${schema.version.api.default}</value>
228                                 </property>
229                                 <property>
230                                     <key>schema.version.list</key>
231                                     <value>${schema.version.list}</value>
232                                 </property>
233                                 <property>
234                                     <key>schema.uri.base.path</key>
235                                     <value>${schema.uri.base.path}</value>
236                                 </property>
237                             </systemProperties>
238                             <executable>java</executable>
239                         </configuration>
240                     </plugin>
241                 </plugins>
242             </build>
243         </profile>
244         <!-- Docker profile to be used for building docker image and pushing to nexus -->
245         <profile>
246             <id>docker</id>
247             <build>
248                 <plugins>
249                     <plugin>
250                         <groupId>org.codehaus.groovy.maven</groupId>
251                         <artifactId>gmaven-plugin</artifactId>
252                         <version>1.0</version>
253                         <executions>
254                             <execution>
255                                 <phase>pre-clean</phase>
256                             </execution>
257                             <execution>
258                                 <id>parse-base</id>
259                                 <phase>prepare-package</phase>
260                                 <goals>
261                                     <goal>execute</goal>
262                                 </goals>
263                                 <configuration>
264                                     <source>
265                                         def userAaiBaseImage = session.userProperties['aai.base.image'];
266                                         def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
267                                         if (userAaiCommonVersion != null) {
268                                             project.properties['aai.base.image.version'] = userAaiCommonVersion;
269                                         }
270                                         if (userAaiBaseImage != null) {
271                                             project.properties['aai.base.image'] = userAaiBaseImage;
272                                         }
273                                         log.info 'Base image flavour: ' + project.properties['aai.base.image'];
274                                         log.info 'Base image version: ' + project.properties['aai.base.image.version'];
275                                     </source>
276                                 </configuration>
277                             </execution>
278                         </executions>
279                     </plugin>
280                     <plugin>
281                         <groupId>io.fabric8</groupId>
282                         <artifactId>docker-maven-plugin</artifactId>
283                         <version>${docker.fabric.version}</version>
284                         <configuration>
285                             <verbose>true</verbose>
286                             <apiVersion>1.23</apiVersion>
287                             <images>
288                                 <image>
289                                     <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l</name>
290                                     <build>
291                                         <filter>@</filter>
292                                         <tags>
293                                             <tag>latest</tag>
294                                             <tag>${project.docker.latesttag.version}</tag>
295                                             <tag>${project.major.version}.${project.minor.version}-STAGING-${maven.build.timestamp}</tag>
296                                         </tags>
297                                         <cleanup>try</cleanup>
298                                         <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
299                                         <assembly>
300                                             <inline>
301                                                 <fileSets>
302                                                     <fileSet>
303                                                         <directory>${aai.build.directory}</directory>
304                                                         <outputDirectory>/${project.artifactId}</outputDirectory>
305                                                     </fileSet>
306                                                 </fileSets>
307                                             </inline>
308                                         </assembly>
309                                     </build>
310                                 </image>
311                             </images>
312                         </configuration>
313                         <executions>
314                             <execution>
315                                 <id>clean-images</id>
316                                 <phase>pre-clean</phase>
317                                 <goals>
318                                     <goal>remove</goal>
319                                 </goals>
320                                 <configuration>
321                                     <removeAll>true</removeAll>
322                                 </configuration>
323                             </execution>
324                             <execution>
325                                 <id>generate-images</id>
326                                 <phase>package</phase>
327                                 <goals>
328                                     <goal>build</goal>
329                                 </goals>
330                             </execution>
331                             <execution>
332                                 <id>push-images</id>
333                                 <phase>deploy</phase>
334                                 <goals>
335                                     <goal>push</goal>
336                                 </goals>
337                             </execution>
338                         </executions>
339                     </plugin>
340                 </plugins>
341             </build>
342         </profile>
343     </profiles>
344
345     <dependencies>
346         <!-- Start of graphadmin metric collection dependencies -->
347         <dependency>
348             <groupId>io.micrometer</groupId>
349             <artifactId>micrometer-core</artifactId>
350             <version>${micrometer.core.version}</version>
351         </dependency>
352         <dependency>
353             <groupId>io.micrometer</groupId>
354             <artifactId>micrometer-registry-prometheus</artifactId>
355             <version>${micrometer.registry.prometheus.version}</version>
356         </dependency>
357         <dependency>
358             <groupId>io.micrometer</groupId>
359             <artifactId>micrometer-jersey2</artifactId>
360             <version>${micrometer.jersey2.version}</version>
361         </dependency>
362         <!-- End of graphadmin metric collection dependencies -->
363
364         <dependency>
365             <groupId>javax.jms</groupId>
366             <artifactId>javax.jms-api</artifactId>
367             <version>2.0.1</version>
368         </dependency>
369         <dependency>
370             <groupId>org.onap.aai.aai-common</groupId>
371             <artifactId>aai-core</artifactId>
372             <exclusions>
373                 <exclusion>
374                     <groupId>org.onap.aai.aai-common</groupId>
375                     <artifactId>aai-aaf-auth</artifactId>
376                 </exclusion>
377                 <exclusion>
378                     <groupId>com.sun.jersey</groupId>
379                     <artifactId>jersey-core</artifactId>
380                 </exclusion>
381                 <exclusion>
382                     <groupId>org.slf4j</groupId>
383                     <artifactId>slf4j-log4j12</artifactId>
384                 </exclusion>
385                 <exclusion>
386                     <groupId>org.apache.cxf</groupId>
387                     <artifactId>cxf-core</artifactId>
388                 </exclusion>
389                 <exclusion>
390                     <groupId>org.eclipse.jetty</groupId>
391                     <artifactId>jetty-http</artifactId>
392                 </exclusion>
393                 <exclusion>
394                     <groupId>org.eclipse.jetty</groupId>
395                     <artifactId>jetty-server</artifactId>
396                 </exclusion>
397                 <exclusion>
398                     <groupId>org.springframework</groupId>
399                     <artifactId>spring-web</artifactId>
400                 </exclusion>
401             </exclusions>
402         </dependency>
403         <dependency>
404             <groupId>javax.ws.rs</groupId>
405             <artifactId>javax.ws.rs-api</artifactId>
406             <version>2.1</version>
407         </dependency>
408         <dependency>
409             <groupId>javax.xml.bind</groupId>
410             <artifactId>jaxb-api</artifactId>
411         </dependency>
412         <dependency>
413             <groupId>com.sun.xml.bind</groupId>
414             <artifactId>jaxb-impl</artifactId>
415         </dependency>
416         <dependency>
417             <groupId>com.sun.xml.bind</groupId>
418             <artifactId>jaxb-core</artifactId>
419         </dependency>
420
421         <!-- Start of Logback Dependencies -->
422         <dependency>
423             <groupId>com.att.eelf</groupId>
424             <artifactId>eelf-core</artifactId>
425         </dependency>
426         <dependency>
427             <groupId>ch.qos.logback</groupId>
428             <artifactId>logback-core</artifactId>
429         </dependency>
430         <dependency>
431             <groupId>ch.qos.logback</groupId>
432             <artifactId>logback-classic</artifactId>
433         </dependency>
434         <dependency>
435             <groupId>ch.qos.logback</groupId>
436             <artifactId>logback-access</artifactId>
437         </dependency>
438         <!-- End of Logback Dependencies -->
439         <dependency>
440             <groupId>com.google.guava</groupId>
441             <artifactId>guava</artifactId>
442         </dependency>
443
444         <dependency>
445             <groupId>org.janusgraph</groupId>
446             <artifactId>janusgraph-cql</artifactId>
447             <exclusions>
448                 <exclusion>
449                     <groupId>org.slf4j</groupId>
450                     <artifactId>slf4j-log4j12</artifactId>
451                 </exclusion>
452             </exclusions>
453         </dependency>
454
455
456         <!-- Start of Tinkerpop Dependencies -->
457         <dependency>
458             <groupId>org.apache.tinkerpop</groupId>
459             <artifactId>tinkergraph-gremlin</artifactId>
460         </dependency>
461         <dependency>
462             <groupId>org.antlr</groupId>
463             <artifactId>antlr4-runtime</artifactId>
464         </dependency>
465         <dependency>
466             <groupId>org.apache.tinkerpop</groupId>
467             <artifactId>gremlin-core</artifactId>
468         </dependency>
469         <dependency>
470             <groupId>org.apache.tinkerpop</groupId>
471             <artifactId>gremlin-driver</artifactId>
472             <exclusions>
473                 <exclusion>
474                     <groupId>org.codehaus.groovy</groupId>
475                     <artifactId>groovy</artifactId>
476                 </exclusion>
477             </exclusions>
478         </dependency>
479         <!-- End of Tinkerpop Dependencies -->
480         <dependency>
481             <groupId>com.fasterxml.jackson.jaxrs</groupId>
482             <artifactId>jackson-jaxrs-json-provider</artifactId>
483         </dependency>
484         <dependency>
485             <groupId>org.json</groupId>
486             <artifactId>json</artifactId>
487         </dependency>
488         <!-- Start of JAXB Dependencies -->
489         <dependency>
490             <groupId>javax.xml.bind</groupId>
491             <artifactId>jaxb-api</artifactId>
492         </dependency>
493         <!-- End of JAXB Dependencies -->
494         <dependency>
495             <groupId>org.eclipse.persistence</groupId>
496             <artifactId>eclipselink</artifactId>
497         </dependency>
498         <dependency>
499             <groupId>org.eclipse.persistence</groupId>
500             <artifactId>org.eclipse.persistence.moxy</artifactId>
501             <scope>compile</scope>
502         </dependency>
503         <dependency>
504             <groupId>com.google.code.gson</groupId>
505             <artifactId>gson</artifactId>
506         </dependency>
507         <!--
508             Do not use activemq-all because they force you to use a specific logging
509             and they shade it so you can't simply exclude it and when you deploy the
510             jar, you will notice failure
511         -->
512         <dependency>
513             <groupId>org.apache.activemq</groupId>
514             <artifactId>activemq-broker</artifactId>
515         </dependency>
516         <dependency>
517             <groupId>org.apache.activemq</groupId>
518             <artifactId>activemq-client</artifactId>
519         </dependency>
520         <dependency>
521             <groupId>com.sun.jersey</groupId>
522             <artifactId>jersey-client</artifactId>
523         </dependency>
524         <dependency>
525             <groupId>com.sun.jersey</groupId>
526             <artifactId>jersey-json</artifactId>
527             <exclusions>
528                 <exclusion>
529                     <groupId>org.codehaus.jackson</groupId>
530                     <artifactId>jackson-mapper-asl</artifactId>
531                 </exclusion>
532             </exclusions>
533         </dependency>
534         <!-- Do not use the jersey-client since jersey client 1.0 version clashes
535             with jersey 2 which we are using -->
536         <!-- Use this to make http requests instead of jersey 1.0 client -->
537         <dependency>
538             <groupId>org.apache.httpcomponents</groupId>
539             <artifactId>httpclient</artifactId>
540         </dependency>
541         <!-- Start of Spring Framework Dependencies -->
542         <!--
543             Explicitly stating the security spring framework and
544             exclude the bouncy castle since that is somehow overwriting
545             our p12 file decryption that's built into java security
546             This will cause the password is incorrect
547             This needs to be added back if org.bouncy castle dependency
548             sneaks backs in and causing issues with the two way ssl
549         -->
550         <dependency>
551             <groupId>org.springframework.security</groupId>
552             <artifactId>spring-security-rsa</artifactId>
553             <exclusions>
554                 <exclusion>
555                     <groupId>org.bouncycastle</groupId>
556                     <artifactId>bcpkix-jdk15on</artifactId>
557                 </exclusion>
558             </exclusions>
559         </dependency>
560         <dependency>
561             <groupId>org.springframework</groupId>
562             <artifactId>spring-jms</artifactId>
563             <exclusions>
564                 <exclusion>
565                     <groupId>com.sun.jersey</groupId>
566                     <artifactId>jersey-core</artifactId>
567                 </exclusion>
568             </exclusions>
569         </dependency>
570         <dependency>
571             <groupId>org.springframework.boot</groupId>
572             <artifactId>spring-boot-starter-web</artifactId>
573             <exclusions>
574                 <exclusion>
575                     <groupId>org.springframework.boot</groupId>
576                     <artifactId>spring-boot-starter-tomcat</artifactId>
577                 </exclusion>
578             </exclusions>
579         </dependency>
580         <dependency>
581             <groupId>org.springframework.boot</groupId>
582             <artifactId>spring-boot-starter-jetty</artifactId>
583         </dependency>
584         <dependency>
585             <groupId>org.springframework.boot</groupId>
586             <artifactId>spring-boot-starter-test</artifactId>
587         </dependency>
588         <dependency>
589             <groupId>org.springframework.boot</groupId>
590             <artifactId>spring-boot-starter-jersey</artifactId>
591             <exclusions>
592                 <exclusion>
593                     <groupId>org.springframework.boot</groupId>
594                     <artifactId>spring-boot-starter-tomcat</artifactId>
595                 </exclusion>
596             </exclusions>
597         </dependency>
598         <dependency>
599             <groupId>org.springframework.boot</groupId>
600             <artifactId>spring-boot-starter-actuator</artifactId>
601             <version>${spring.boot.starter.actuator.version}</version>
602             <exclusions>
603                 <exclusion>
604                     <groupId>org.springframework.boot</groupId>
605                     <artifactId>spring-boot-starter-tomcat</artifactId>
606                 </exclusion>
607             </exclusions>
608         </dependency>
609         <dependency>
610             <groupId>org.springframework</groupId>
611             <artifactId>spring-test</artifactId>
612             <scope>test</scope>
613         </dependency>
614         <!-- End of Spring Framework Dependencies -->
615         <!-- Start of Netty Dependencies -->
616         <dependency>
617             <groupId>io.netty</groupId>
618             <artifactId>netty-all</artifactId>
619         </dependency>
620         <dependency>
621             <groupId>io.netty</groupId>
622             <artifactId>netty-handler</artifactId>
623         </dependency>
624         <!-- End of Netty Dependencies -->
625         <!-- Start of Antlr dependencies for DSL -->
626         <dependency>
627             <groupId>org.antlr</groupId>
628             <artifactId>antlr4-runtime</artifactId>
629         </dependency>
630         <dependency>
631             <groupId>org.antlr</groupId>
632             <artifactId>antlr4-maven-plugin</artifactId>
633             <exclusions>
634                 <exclusion>
635                     <groupId>org.sonatype.sisu</groupId>
636                     <artifactId>sisu-guava</artifactId>
637                 </exclusion>
638             </exclusions>
639         </dependency>
640         <!-- End of Antlr dependencies for DSL -->
641         <!-- Start of Plexus dependencies for DSL -->
642         <dependency>
643             <groupId>org.codehaus.plexus</groupId>
644             <artifactId>plexus-utils</artifactId>
645         </dependency>
646         <!-- End of Plexus dependencies for DSL -->
647         <!-- Start of Junit Test Dependencies -->
648         <dependency>
649             <groupId>org.hamcrest</groupId>
650             <artifactId>hamcrest-junit</artifactId>
651             <scope>test</scope>
652         </dependency>
653         <dependency>
654             <groupId>junit</groupId>
655             <artifactId>junit</artifactId>
656             <scope>test</scope>
657         </dependency>
658         <dependency>
659             <groupId>org.mockito</groupId>
660             <artifactId>mockito-all</artifactId>
661             <scope>test</scope>
662         </dependency>
663         <dependency>
664             <groupId>org.skyscreamer</groupId>
665             <artifactId>jsonassert</artifactId>
666             <scope>test</scope>
667         </dependency>
668         <!-- End of Junit Test Dependencies -->
669     </dependencies>
670
671     <build>
672         <pluginManagement>
673             <plugins>
674                 <!--This plugin's configuration is used to store Eclipse m2e settings
675                     only. It has no influence on the Maven build itself. -->
676                 <plugin>
677                     <groupId>org.eclipse.m2e</groupId>
678                     <artifactId>lifecycle-mapping</artifactId>
679                     <version>1.0.0</version>
680                     <configuration>
681                         <lifecycleMappingMetadata>
682                             <pluginExecutions>
683                                 <pluginExecution>
684                                     <pluginExecutionFilter>
685                                         <groupId>com.github.kongchen</groupId>
686                                         <artifactId>swagger-maven-plugin</artifactId>
687                                         <versionRange>3.1.3</versionRange>
688                                         <goals>
689                                             <goal>generate</goal>
690                                         </goals>
691                                     </pluginExecutionFilter>
692                                     <action>
693                                         <ignore/>
694                                     </action>
695                                 </pluginExecution>
696                             </pluginExecutions>
697                         </lifecycleMappingMetadata>
698                     </configuration>
699                 </plugin>
700                 <plugin>
701                     <groupId>org.apache.maven.plugins</groupId>
702                     <artifactId>maven-dependency-plugin</artifactId>
703                     <version>2.8</version>
704                     <executions>
705                         <execution>
706                             <id>unpack-schema-dependency</id>
707                             <phase>initialize</phase>
708                             <goals>
709                                 <goal>unpack</goal>
710                             </goals>
711                             <configuration>
712                                 <artifactItems>
713                                     <artifactItem>
714                                         <groupId>org.onap.aai.schema-service</groupId>
715                                         <artifactId>aai-schema</artifactId>
716                                         <version>${aai.schema.service.version}</version>
717                                         <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
718                                         <includes>**/oxm/**/*.xml</includes>
719                                     </artifactItem>
720                                 </artifactItems>
721                                 <!-- other configurations here -->
722                             </configuration>
723                         </execution>
724                         <execution>
725                             <id>unpack-edgerules-dependency</id>
726                             <phase>initialize</phase>
727                             <goals>
728                                 <goal>unpack</goal>
729                             </goals>
730                             <configuration>
731                                 <artifactItems>
732                                     <artifactItem>
733                                         <groupId>org.onap.aai.schema-service</groupId>
734                                         <artifactId>aai-schema</artifactId>
735                                         <version>${aai.schema.service.version}</version>
736                                         <outputDirectory>${project.basedir}/src/main/resources/schema/</outputDirectory>
737                                         <includes>**/dbedgerules/**/*.json</includes>
738                                     </artifactItem>
739                                 </artifactItems>
740                                 <!-- other configurations here -->
741                             </configuration>
742                         </execution>
743                     </executions>
744                 </plugin>
745                 <plugin>
746                     <groupId>org.codehaus.groovy.maven</groupId>
747                     <artifactId>gmaven-plugin</artifactId>
748                     <version>1.0</version>
749                     <executions>
750                         <execution>
751                             <phase>validate</phase>
752                             <goals>
753                                 <goal>execute</goal>
754                             </goals>
755                             <configuration>
756                                 <source>
757                                     println project.properties['aai.project.version'];
758                                     def versionArray;
759                                     if (project.properties['aai.project.version'] != null) {
760                                         versionArray = project.properties['aai.project.version'].split('\\.');
761                                     }
762
763                                     project.properties["project.major.version"] = versionArray[0];
764                                     project.properties["project.minor.version"] = versionArray[1];
765                                     project.properties['project.docker.latesttag.version'] = versionArray[0] + '.' + versionArray[1] + '-STAGING-latest';
766                                     println 'New Tag for docker:' + project.properties['project.docker.latesttag.version'];
767                                 </source>
768                             </configuration>
769                         </execution>
770                     </executions>
771                 </plugin>
772                 <plugin>
773                     <groupId>org.apache.maven.plugins</groupId>
774                     <artifactId>maven-deploy-plugin</artifactId>
775                 </plugin>
776                 <plugin>
777                     <groupId>com.mycila</groupId>
778                     <artifactId>license-maven-plugin</artifactId>
779                     <version>3.0</version>
780                     <configuration>
781                         <header>LICENSE.TXT</header>
782                         <includes>
783                             <include>src/main/java/**</include>
784                             <include>src/test/java/**</include>
785                             <include>pom.xml</include>
786                         </includes>
787                         <skipExistingHeaders>true</skipExistingHeaders>
788                         <skip>false</skip>
789                     </configuration>
790                     <executions>
791                         <execution>
792                             <goals>
793                                 <!-- Set goal to "format" to auto update license headers -->
794                                 <goal>${license.goal.type}</goal>
795                             </goals>
796                             <phase>process-sources</phase>
797                         </execution>
798                     </executions>
799                 </plugin>
800             </plugins>
801         </pluginManagement>
802         <plugins>
803             <!--
804             Using https://code.revelc.net/formatter-maven-plugin/ for Eclipse formatter
805             Using https://github.com/diffplug/spotless/tree/master/plugin-maven for import order
806             Use in combination to rewrite code and imports, then checkstyle
807
808             mvn formatter:format spotless:apply process-sources
809             -->
810             <plugin>
811                  <groupId>net.revelc.code.formatter</groupId>
812                  <artifactId>formatter-maven-plugin</artifactId>
813                  <version>2.8.1</version>
814                  <configuration>
815                     <configFile>${project.basedir}/onap-java-formatter.xml</configFile>
816                  </configuration>
817                  <!-- https://code.revelc.net/formatter-maven-plugin/
818                       use mvn formatter:format to rewrite source files
819                       use mvn formatter:validate to validate source files -->
820              </plugin>
821             <plugin>
822               <groupId>com.diffplug.spotless</groupId>
823               <artifactId>spotless-maven-plugin</artifactId>
824               <version>1.18.0</version>
825               <configuration>
826                 <java>
827                  <importOrder>
828                    <order>com,java,javax,org</order>
829                  </importOrder>
830                 </java>
831               </configuration>
832             <!-- https://github.com/diffplug/spotless/tree/master/plugin-maven
833                  use mvn spotless:apply to rewrite source files
834                  use mvn spotless:check to validate source files -->
835             </plugin>
836             <plugin>
837                 <groupId>org.apache.maven.plugins</groupId>
838                 <artifactId>maven-site-plugin</artifactId>
839                 <version>3.6</version>
840                 <configuration>
841                     <reportPlugins>
842                         <plugin>
843                             <groupId>org.apache.maven.plugins</groupId>
844                             <artifactId>maven-project-info-reports-plugin</artifactId>
845                             <version>2.4</version>
846                             <configuration>
847                                 <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
848                                 <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
849                             </configuration>
850                             <reports>
851                                 <report>dependencies</report>
852                             </reports>
853                         </plugin>
854                         <plugin>
855                             <groupId>org.apache.maven.plugins</groupId>
856                             <artifactId>maven-javadoc-plugin</artifactId>
857                             <version>2.8</version>
858                             <configuration>
859                                 <additionalparam>-Xdoclint:none</additionalparam>
860                             </configuration>
861                         </plugin>
862                     </reportPlugins>
863                 </configuration>
864                 <dependencies>
865                     <dependency>
866                         <groupId>org.apache.maven.wagon</groupId>
867                         <artifactId>wagon-webdav-jackrabbit</artifactId>
868                         <version>2.10</version>
869                     </dependency>
870                 </dependencies>
871             </plugin>
872             <plugin>
873                 <groupId>org.codehaus.groovy.maven</groupId>
874                 <artifactId>gmaven-plugin</artifactId>
875             </plugin>
876             <plugin>
877                 <groupId>com.mycila</groupId>
878                 <artifactId>license-maven-plugin</artifactId>
879             </plugin>
880             <plugin>
881                 <groupId>org.apache.maven.plugins</groupId>
882                 <artifactId>maven-clean-plugin</artifactId>
883                 <version>2.4.1</version>
884                 <configuration>
885                     <filesets>
886                         <fileset>
887                             <directory>${project.basedir}/src/main/resources/etc/oxm</directory>
888                             <includes>
889                                 <include>**/*</include>
890                             </includes>
891                             <followSymlinks>false</followSymlinks>
892                         </fileset>
893                         <fileset>
894                             <directory>${project.basedir}/src/main/resources/etc/dbedgerules</directory>
895                             <includes>
896                                 <include>**/*</include>
897                             </includes>
898                             <followSymlinks>false</followSymlinks>
899                         </fileset>
900                         <fileset>
901                             <directory>${project.basedir}/src/main/resources/schema</directory>
902                             <includes>
903                                 <include>**/*</include>
904                             </includes>
905                             <followSymlinks>false</followSymlinks>
906                         </fileset>
907                     </filesets>
908                 </configuration>
909             </plugin>
910             <plugin>
911                 <artifactId>maven-dependency-plugin</artifactId>
912             </plugin>
913             <!-- Used for unit tests -->
914             <plugin>
915               <groupId>org.apache.maven.plugins</groupId>
916               <artifactId>maven-surefire-plugin</artifactId>
917               <configuration>
918                 <!-- <argLine>-noverify ${argLine}</argLine> -->
919                 <runOrder>alphabetical</runOrder>
920               </configuration>
921             </plugin>
922             <plugin>
923                 <groupId>org.springframework.boot</groupId>
924                 <artifactId>spring-boot-maven-plugin</artifactId>
925                 <!--
926                   Issue with the spring 1.5.15.RELEASE plugin is causing build errors
927                   due to the fact that the plugin 1.5.15.RELEASE was built using maven 3.5 while
928                   the current build version being used by our jenkins is 3.3.9
929                 -->
930                 <version>1.5.21.RELEASE</version>
931                 <configuration>
932                     <mainClass>${start-class}</mainClass>
933                     <layout>ZIP</layout>
934                 </configuration>
935                 <executions>
936                     <execution>
937                         <goals>
938                             <goal>repackage</goal>
939                         </goals>
940                     </execution>
941                 </executions>
942             </plugin>
943             <plugin>
944                 <artifactId>maven-assembly-plugin</artifactId>
945                 <configuration>
946                     <descriptors>
947                         <descriptor>src/main/assembly/descriptor.xml</descriptor>
948                     </descriptors>
949                 </configuration>
950                 <executions>
951                     <execution>
952                         <id>make-assembly</id> <!-- this is used for inheritance merges -->
953                         <phase>package</phase> <!-- bind to the packaging phase -->
954                         <goals>
955                             <goal>single</goal>
956                         </goals>
957                     </execution>
958                 </executions>
959             </plugin>
960             <plugin>
961                 <groupId>org.antlr</groupId>
962                 <artifactId>antlr4-maven-plugin</artifactId>
963                 <version>4.7</version>
964                 <executions>
965                     <execution>
966                         <goals>
967                             <goal>antlr4</goal>
968                         </goals>
969                         <configuration>
970                             <sourceDirectory>src/main/resources/antlr4</sourceDirectory>
971                             <!-- <outputDirectory>src/main/java/antlr4</outputDirectory> -->
972                         </configuration>
973                     </execution>
974                 </executions>
975             </plugin>
976         </plugins>
977         <!-- mention the logback.xml location through system property or environment
978             variable to edit logback.xml at run time -->
979         <resources>
980             <resource>
981                 <directory>src/main/resources</directory>
982                 <filtering>true</filtering>
983                 <includes>
984                     <include>**/*</include>
985                 </includes>
986             </resource>
987             <resource>
988                 <directory>${project.basedir}/src/main/swm</directory>
989                 <targetPath>${project.build.directory}/swm</targetPath>
990                 <filtering>false</filtering>
991             </resource>
992             <resource>
993                 <directory>${project.basedir}/src/main/resources/etc/appprops/</directory>
994                 <includes>
995                     <include>janusgraph-realtime.properties</include>
996                     <include>janusgraph-cached.properties</include>
997                     <include>aaiconfig.properties</include>
998                     <include>aaiEventDMaaPPublisher.properties</include>
999                     <include>preferredRoute.txt</include>
1000                     <include>datatoolscrons.properties</include>
1001                 </includes>
1002                 <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig
1003                 </targetPath>
1004                 <filtering>false</filtering>
1005             </resource>
1006             <resource>
1007                 <directory>${project.basedir}/src/main/resources</directory>
1008                 <includes>
1009                     <include>application.properties</include>
1010                     <include>*logback.xml</include>
1011                     <include>hbase-site.xml</include>
1012                 </includes>
1013                 <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig
1014                 </targetPath>
1015                 <filtering>false</filtering>
1016             </resource>
1017             <resource>
1018                 <directory>${project.basedir}/src/main/resources/schema/</directory>
1019                 <includes>
1020                     <include>**/oxm/**/*.xml</include>
1021                     <include>**/dbedgerules/**/*.json</include>
1022                 </includes>
1023                 <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/schema</targetPath>
1024                 <filtering>false</filtering>
1025             </resource>
1026             <resource>
1027                 <directory>${project.basedir}/src/main/docker</directory>
1028                 <includes>
1029                     <include>**/*</include>
1030                 </includes>
1031                 <targetPath>${aai.build.directory}</targetPath>
1032                 <filtering>true</filtering>
1033             </resource>
1034             <resource>
1035                 <directory>${project.basedir}/src/main/resources/etc/auth</directory>
1036                 <includes>
1037                     <include>**/*</include>
1038                 </includes>
1039                 <targetPath>${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig
1040                 </targetPath>
1041                 <filtering>false</filtering>
1042             </resource>
1043             <!--
1044                Place any files related for migration related into migration-input-files
1045                so they can be packaged into this location here so it can be volumed
1046                into the container as one folder rather than do this for each subfolder
1047            -->
1048             <resource>
1049                 <directory>${project.basedir}/src/main/resources/migration-input-files</directory>
1050                 <includes>
1051                     <include>**/*</include>
1052                 </includes>
1053                 <targetPath>
1054                     ${project.build.directory}/swm/package/nix/dist_files/opt/app/${project.artifactId}/appconfig/migration-input-files
1055                 </targetPath>
1056                 <filtering>false</filtering>
1057             </resource>
1058         </resources>
1059     </build>
1060
1061     <distributionManagement>
1062         <snapshotRepository>
1063             <id>ecomp-snapshots</id>
1064             <name>ECOMP Snapshot Repository</name>
1065             <url>${onap.nexus.url}/content/repositories/snapshots/</url>
1066         </snapshotRepository>
1067         <site>
1068             <id>ecomp-site</id>
1069             <url>dav:${onap.nexus.url}${sitePath}</url>
1070         </site>
1071     </distributionManagement>
1072     <reporting>
1073         <plugins>
1074             <plugin>
1075                 <groupId>org.apache.maven.plugins</groupId>
1076                 <artifactId>maven-javadoc-plugin</artifactId>
1077                 <version>2.10.4</version>
1078                 <configuration>
1079                     <failOnError>false</failOnError>
1080                     <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
1081                     <docletArtifact>
1082                         <groupId>org.umlgraph</groupId>
1083                         <artifactId>umlgraph</artifactId>
1084                         <version>5.6</version>
1085                     </docletArtifact>
1086                     <additionalparam>-views -Xdoclint:none</additionalparam>
1087                     <excludePackageNames>org.onap.aai.domain.yang.*:org.onap.aai.util.*</excludePackageNames>
1088                     <useStandardDocletOptions>true</useStandardDocletOptions>
1089                 </configuration>
1090             </plugin>
1091         </plugins>
1092     </reporting>
1093
1094     <!-- Start of ONAP Specific Repositories -->
1095     <repositories>
1096         <repository>
1097             <id>AJSC</id>
1098             <name>AJSC repository</name>
1099             <url>https://mvnrepository.com/artifact/com.att.ajsc</url>
1100         </repository>
1101         <repository>
1102             <id>restlet</id>
1103             <name>maven reslet</name>
1104             <url>https://maven.restlet.com/</url>
1105         </repository>
1106
1107         <repository>
1108             <id>central</id>
1109             <name>Maven 2 repository 2</name>
1110             <url>http://repo2.maven.org/maven2/</url>
1111         </repository>
1112         <repository>
1113             <id>ecomp-releases</id>
1114             <name>ECOMP Release Repository</name>
1115             <url>${onap.nexus.url}/content/repositories/releases/</url>
1116         </repository>
1117         <repository>
1118             <id>ecomp-staging</id>
1119             <name>ECOMP Staging Repository</name>
1120             <url>${onap.nexus.url}/content/repositories/staging/</url>
1121         </repository>
1122         <repository>
1123             <id>ecomp-snapshots</id>
1124             <name>ECOMP Snapshot Repository</name>
1125             <url>${onap.nexus.url}/content/repositories/snapshots/</url>
1126         </repository>
1127     </repositories>
1128     <!-- End of ONAP Specific Repositories -->
1129 </project>