Introduce a new docker for be plugins
[sdc.git] / catalog-fe / pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0"
2   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4
5   <modelVersion>4.0.0</modelVersion>
6   <artifactId>catalog-fe</artifactId>
7   <packaging>war</packaging>
8
9   <parent>
10     <groupId>org.openecomp.sdc</groupId>
11     <artifactId>sdc-main</artifactId>
12     <version>1.7.1-SNAPSHOT</version>
13   </parent>
14
15   <dependencies>
16
17     <dependency>
18       <groupId>org.projectlombok</groupId>
19       <artifactId>lombok</artifactId>
20       <version>${lombok.version}</version>
21     </dependency>
22
23     <dependency>
24       <groupId>org.functionaljava</groupId>
25       <artifactId>functionaljava</artifactId>
26       <version>${functionaljava.version}</version>
27       <scope>compile</scope>
28     </dependency>
29
30     <dependency>
31       <groupId>org.openecomp.sdc</groupId>
32       <artifactId>common-app-api</artifactId>
33       <version>${project.version}</version>
34     </dependency>
35
36     <!-- File changes listener -->
37     <dependency>
38       <groupId>ch.qos.logback</groupId>
39       <artifactId>logback-classic</artifactId>
40       <version>${logback.version}</version>
41       <scope>compile</scope>
42     </dependency>
43
44     <dependency>
45       <groupId>org.codehaus.groovy</groupId>
46       <artifactId>groovy</artifactId>
47       <scope>compile</scope>
48     </dependency>
49
50     <dependency>
51       <groupId>org.codehaus.janino</groupId>
52       <artifactId>janino</artifactId>
53       <version>${janino.version}</version>
54       <scope>compile</scope>
55     </dependency>
56
57     <dependency>
58       <groupId>org.yaml</groupId>
59       <artifactId>snakeyaml</artifactId>
60       <version>${snakeyaml.version}</version>
61       <scope>compile</scope>
62     </dependency>
63
64     <dependency>
65       <groupId>org.apache.commons</groupId>
66       <artifactId>commons-jci-core</artifactId>
67       <version>${commons-jci-core.version}</version>
68       <scope>compile</scope>
69     </dependency>
70
71     <dependency>
72       <groupId>com.google.code.gson</groupId>
73       <artifactId>gson</artifactId>
74       <version>${gson.version}</version>
75       <scope>compile</scope>
76     </dependency>
77
78     <dependency>
79       <groupId>org.glassfish.jersey.containers</groupId>
80       <artifactId>jersey-container-servlet</artifactId>
81       <version>${jersey-bom.version}</version>
82       <scope>compile</scope>
83     </dependency>
84
85     <dependency>
86       <groupId>org.glassfish.jersey.media</groupId>
87       <artifactId>jersey-media-multipart</artifactId>
88       <version>${jersey-bom.version}</version>
89       <scope>compile</scope>
90     </dependency>
91
92     <dependency>
93       <groupId>org.glassfish.jersey.media</groupId>
94       <artifactId>jersey-media-moxy</artifactId>
95       <version>${jersey-bom.version}</version>
96       <scope>compile</scope>
97     </dependency>
98
99
100     <dependency>
101       <groupId>org.glassfish.jersey.media</groupId>
102       <artifactId>jersey-media-json-jackson</artifactId>
103       <version>${jersey-bom.version}</version>
104       <scope>compile</scope>
105     </dependency>
106
107     <dependency>
108       <groupId>org.glassfish.jersey.inject</groupId>
109       <artifactId>jersey-hk2</artifactId>
110       <version>${jersey-bom.version}</version>
111     </dependency>
112
113     <dependency>
114       <groupId>com.fasterxml.jackson.core</groupId>
115       <artifactId>jackson-core</artifactId>
116       <version>${jackson.version}</version>
117       <scope>compile</scope>
118     </dependency>
119
120     <dependency>
121       <groupId>com.fasterxml.jackson.core</groupId>
122       <artifactId>jackson-databind</artifactId>
123       <version>${jackson.version}</version>
124       <exclusions>
125         <exclusion>
126           <groupId>com.fasterxml.jackson.core</groupId>
127           <artifactId>jackson-core</artifactId>
128         </exclusion>
129       </exclusions>
130     </dependency>
131
132     <dependency>
133       <groupId>com.fasterxml.jackson.core</groupId>
134       <artifactId>jackson-annotations</artifactId>
135       <version>${jackson-annotations.version}</version>
136       <scope>compile</scope>
137     </dependency>
138
139     <!-- http client -->
140     <dependency>
141       <groupId>org.apache.httpcomponents</groupId>
142       <artifactId>httpclient</artifactId>
143       <version>${httpclient.version}</version>
144       <scope>compile</scope>
145     </dependency>
146
147     <dependency>
148       <groupId>org.apache.httpcomponents</groupId>
149       <artifactId>httpcore</artifactId>
150       <version>${httpcore.version}</version>
151       <scope>compile</scope>
152     </dependency>
153
154     <dependency>
155       <groupId>org.apache.httpcomponents</groupId>
156       <artifactId>httpmime</artifactId>
157       <version>${httpclient.version}</version>
158       <scope>compile</scope>
159     </dependency>
160
161     <dependency>
162       <groupId>commons-logging</groupId>
163       <artifactId>commons-logging</artifactId>
164       <version>${commons-logging}</version>
165       <scope>compile</scope>
166     </dependency>
167
168     <dependency>
169       <groupId>commons-codec</groupId>
170       <artifactId>commons-codec</artifactId>
171       <version>${commons-codec}</version>
172       <scope>compile</scope>
173     </dependency>
174     <!-- http client END -->
175
176     <dependency>
177       <groupId>javax.servlet</groupId>
178       <artifactId>javax.servlet-api</artifactId>
179       <version>${servlet-api.version}</version>
180       <scope>provided</scope>
181     </dependency>
182
183     <!-- JSON and YAML Parsing -->
184     <dependency>
185       <groupId>com.fasterxml.jackson.dataformat</groupId>
186       <artifactId>jackson-dataformat-yaml</artifactId>
187       <version>${jackson.version}</version>
188       <scope>compile</scope>
189     </dependency>
190
191     <!-- Jetty Proxy -->
192     <dependency>
193       <groupId>org.eclipse.jetty</groupId>
194       <artifactId>jetty-proxy</artifactId>
195       <version>${jetty.version}</version>
196       <scope>compile</scope>
197     </dependency>
198
199     <dependency>
200       <groupId>org.eclipse.jetty</groupId>
201       <artifactId>jetty-servlets</artifactId>
202       <version>${jetty.version}</version>
203       <scope>compile</scope>
204     </dependency>
205
206     <!-- Proxy servlet -->
207     <dependency>
208       <groupId>com.google.guava</groupId>
209       <artifactId>guava</artifactId>
210       <version>${guava.version}</version>
211       <scope>compile</scope>
212     </dependency>
213
214     <!-- Aspects -->
215     <dependency>
216       <groupId>com.jcabi</groupId>
217       <artifactId>jcabi-aspects</artifactId>
218       <version>${jcabi.version}</version>
219       <scope>compile</scope>
220     </dependency>
221     <dependency>
222       <groupId>org.aspectj</groupId>
223       <artifactId>aspectjrt</artifactId>
224       <version>${aspectjrt.version}</version>
225       <scope>compile</scope>
226     </dependency>
227
228     <dependency>
229       <groupId>org.apache.commons</groupId>
230       <artifactId>commons-lang3</artifactId>
231       <version>${lang3.version}</version>
232       <scope>compile</scope>
233     </dependency>
234
235         <dependency>
236             <groupId>javax.xml.bind</groupId>
237             <artifactId>jaxb-api</artifactId>
238             <version>${jaxb-api.version}</version>
239             <scope>compile</scope>
240         </dependency>
241
242         <!-- Inserted for ECOMP Portal Integration -->
243         <dependency>
244             <groupId>org.onap.portal.sdk</groupId>
245             <artifactId>epsdk-fw</artifactId>
246             <version>${ecomp.version}</version>
247             <scope>compile</scope>
248             <exclusions>
249                 <exclusion>
250                     <groupId>com.att.nsa</groupId>
251                     <artifactId>cambriaClient</artifactId>
252                 </exclusion>
253                 <exclusion>
254                     <artifactId>slf4j-log4j12</artifactId>
255                     <groupId>org.slf4j</groupId>
256                 </exclusion>
257             </exclusions>
258         </dependency>
259         <!-- System metrics -->
260         <dependency>
261             <groupId>org.fusesource</groupId>
262             <artifactId>sigar</artifactId>
263             <version>${sigar.version}</version>
264             <scope>compile</scope>
265         </dependency>
266
267     <!-- TEST -->
268     <dependency>
269       <groupId>org.glassfish.jersey.test-framework.providers</groupId>
270       <artifactId>jersey-test-framework-provider-bundle</artifactId>
271       <version>${jersey-bom.version}</version>
272       <type>pom</type>
273       <scope>test</scope>
274     </dependency>
275
276     <dependency>
277       <groupId>com.google.code.bean-matchers</groupId>
278       <artifactId>bean-matchers</artifactId>
279       <version>${bean-matchers.version}</version>
280       <scope>test</scope>
281     </dependency>
282
283     <dependency>
284       <groupId>org.eclipse.jetty</groupId>
285       <artifactId>jetty-servlet</artifactId>
286       <version>${jetty.version}</version>
287       <scope>test</scope>
288     </dependency>
289
290     <dependency>
291       <groupId>org.eclipse.jetty</groupId>
292       <artifactId>jetty-webapp</artifactId>
293       <version>${jetty.version}</version>
294       <scope>test</scope>
295     </dependency>
296
297   </dependencies>
298
299   <build>
300
301     <finalName>${project.artifactId}-${project.version}</finalName>
302
303     <plugins>
304       <plugin>
305         <groupId>org.apache.maven.plugins</groupId>
306         <artifactId>maven-war-plugin</artifactId>
307         <configuration>
308           <archive>
309             <manifest>
310               <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
311             </manifest>
312           </archive>
313
314           <webResources>
315             <resource>
316               <directory>src/main/resources</directory>
317             </resource>
318           </webResources>
319         </configuration>
320       </plugin>
321
322       <plugin>
323         <groupId>org.eclipse.jetty</groupId>
324         <artifactId>jetty-maven-plugin</artifactId>
325         <version>${jetty.version}</version>
326         <configuration>
327           <webApp>
328             <contextPath>/</contextPath>
329             <webInfIncludeJarPattern>.*/.*jersey-[^/]\.jar$</webInfIncludeJarPattern>
330           </webApp>
331           <war>${project.build.directory}/${project.build.finalName}.war</war>
332         </configuration>
333       </plugin>
334
335       <plugin>
336         <groupId>org.apache.maven.plugins</groupId>
337         <artifactId>maven-deploy-plugin</artifactId>
338         <configuration>
339           <skip>true</skip>
340         </configuration>
341       </plugin>
342
343       <plugin>
344         <groupId>com.jcabi</groupId>
345         <artifactId>jcabi-maven-plugin</artifactId>
346         <version>${jcabi.maven.plugin.version}</version>
347         <dependencies>
348             <dependency>
349                 <groupId>org.aspectj</groupId>
350                 <artifactId>aspectjtools</artifactId>
351                 <version>1.9.2</version>
352             </dependency>
353             <dependency>
354                 <groupId>org.aspectj</groupId>
355                 <artifactId>aspectjweaver</artifactId>
356                 <version>1.9.2</version>
357             </dependency>
358         </dependencies>
359         <executions>
360           <execution>
361             <goals>
362               <goal>ajc</goal>
363             </goals>
364           </execution>
365         </executions>
366       </plugin>
367       <plugin>
368         <groupId>org.apache.maven.plugins</groupId>
369         <artifactId>maven-clean-plugin</artifactId>
370         <executions>
371           <execution>
372             <id>clean.catalog.fe.folder</id>
373             <phase>clean</phase>
374             <goals>
375               <goal>clean</goal>
376             </goals>
377             <configuration>
378               <filesets>
379                 <!-- FE WAR's -->
380                 <fileset>
381                   <directory>${project.parent.basedir}/catalog-fe/sdc-frontend/</directory>
382                   <followSymlinks>false</followSymlinks>
383                   <includes>
384                     <include>*.war</include>
385                   </includes>
386                 </fileset>
387               </filesets>
388             </configuration>
389           </execution>
390         </executions>
391       </plugin>
392       <plugin>
393         <groupId>com.github.sylvainlaurent.maven</groupId>
394         <artifactId>yaml-json-validator-maven-plugin</artifactId>
395         <executions>
396           <execution>
397             <id>validate</id>
398             <phase>validate</phase>
399             <goals>
400               <goal>validate</goal>
401             </goals>
402             <configuration>
403               <validationSets>
404                 <validationSet>
405                   <includes>
406                     <include>src/main/resources/**/*.y*ml</include>
407                     <include>src/test/resources/**/*.y*ml</include>
408                   </includes>
409                 </validationSet>
410                 <validationSet>
411                   <includes>
412                     <include>src/main/resources/**/*.json</include>
413                     <include>src/test/resources/**/*.json</include>
414                   </includes>
415                 </validationSet>
416               </validationSets>
417               <skip>${skipYamlJsonValidator}</skip>
418             </configuration>
419           </execution>
420         </executions>
421       </plugin>
422
423     </plugins>
424
425     <pluginManagement>
426       <plugins>
427         <!--This plugin's configuration is used to store Eclipse m2e settings
428           only. It has no influence on the Maven build itself. -->
429         <plugin>
430           <groupId>org.eclipse.m2e</groupId>
431           <artifactId>lifecycle-mapping</artifactId>
432           <version>1.0.0</version>
433           <configuration>
434             <lifecycleMappingMetadata>
435               <pluginExecutions>
436
437                 <pluginExecution>
438                   <pluginExecutionFilter>
439                     <groupId>com.jcabi</groupId>
440                     <artifactId>jcabi-maven-plugin</artifactId>
441                     <versionRange>[0.0,)</versionRange>
442                     <goals>
443                       <goal>ajc</goal>
444                     </goals>
445                   </pluginExecutionFilter>
446                   <action>
447                     <execute/>
448                   </action>
449                 </pluginExecution>
450
451               </pluginExecutions>
452             </lifecycleMappingMetadata>
453           </configuration>
454         </plugin>
455
456         <!-- jacbi (log injection) -->
457
458       </plugins>
459     </pluginManagement>
460
461   </build>
462
463   <profiles>
464     <profile>
465       <id>catalog</id>
466       <activation>
467         <activeByDefault>false</activeByDefault>
468       </activation>
469
470       <build>
471         <finalName>${project.artifactId}-${project.version}</finalName>
472       </build>
473     </profile>
474     <profile>
475       <id>docker-staging</id>
476       <properties>
477         <docker.tag>${project.version}-STAGING-${maven.build.timestamp}</docker.tag>
478         <docker.latest.tag>${project.version}-STAGING-latest</docker.latest.tag>
479       </properties>
480     </profile>
481
482     <profile>
483       <id>docker</id>
484       <activation>
485         <activeByDefault>false</activeByDefault>
486       </activation>
487       <properties>
488         <docker.username>docker</docker.username>
489         <docker.password>docker</docker.password>
490       </properties>
491       <build>
492         <plugins>
493           <plugin>
494             <groupId>org.apache.maven.plugins</groupId>
495             <artifactId>maven-resources-plugin</artifactId>
496             <executions>
497               <execution>
498                 <id>copy-resources-fe</id>
499                 <phase>verify</phase>
500                 <goals>
501                   <goal>copy-resources</goal>
502                 </goals>
503                 <configuration>
504                   <outputDirectory>${basedir}/sdc-frontend</outputDirectory>
505                   <resources>
506                     <resource>
507                       <directory>${project.parent.basedir}/catalog-fe/target</directory>
508                       <includes>
509                         <include>catalog-fe-${project.version}.war</include>
510                       </includes>
511                     </resource>
512                     <resource>
513                       <directory>${project.parent.basedir}/openecomp-ui/target</directory>
514                       <includes>
515                         <include>onboarding-fe-${project.version}.war</include>
516                       </includes>
517                     </resource>
518                   </resources>
519                 </configuration>
520               </execution>
521             </executions>
522           </plugin>
523           <plugin>
524             <groupId>io.fabric8</groupId>
525             <artifactId>docker-maven-plugin</artifactId>
526             <configuration>
527               <apiVersion>${docker.api.version}</apiVersion>
528               <registry>nexus3.onap.org:10001</registry>
529               <authConfig>
530                 <pull>
531                   <username>${docker.username}</username>
532                   <password>${docker.password}</password>
533                 </pull>
534               </authConfig>
535               <images>
536
537                 <!-- Build frontend image -->
538                 <image>
539                   <name>onap/sdc-frontend</name>
540                   <alias>sdc-frontend</alias>
541                   <build>
542                     <cleanup>try</cleanup>
543                     <dockerFileDir>${project.basedir}/sdc-frontend</dockerFileDir>
544                     <tags>
545                       <tag>${docker.tag}</tag>
546                       <tag>
547                         ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest
548                       </tag>
549                     </tags>
550                   </build>
551                 </image>
552               </images>
553             </configuration>
554             <executions>
555               <execution>
556                 <id>clean-images</id>
557                 <phase>pre-clean</phase>
558                 <goals>
559                   <goal>remove</goal>
560                 </goals>
561                 <configuration>
562                   <removeAll>true</removeAll>
563                   <image>onap/sdc-frontend</image>
564                 </configuration>
565               </execution>
566
567               <execution>
568                 <id>generate-images</id>
569                 <phase>install</phase>
570                 <goals>
571                   <goal>build</goal>
572                 </goals>
573               </execution>
574
575               <execution>
576                 <id>push-images</id>
577                 <phase>deploy</phase>
578                 <goals>
579                   <goal>push</goal>
580                 </goals>
581                 <configuration>
582                   <image>onap/sdc-frontend</image>
583                 </configuration>
584               </execution>
585             </executions>
586           </plugin>
587         </plugins>
588       </build>
589     </profile>
590   </profiles>
591 </project>