46f266093f2d92fb9b24d2fc68bd47295eb732d3
[dcaegen2/analytics/tca.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   ~ ===============================LICENSE_START======================================
4   ~  dcae-analytics
5   ~ ================================================================================
6   ~    Copyright © 2017 AT&T Intellectual Property. 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
22 <project xmlns="http://maven.apache.org/POM/4.0.0"
23          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
27         <parent>
28                 <groupId>org.onap.oparent</groupId>
29                 <artifactId>oparent</artifactId>
30                 <version>1.0.0-SNAPSHOT</version>
31         </parent>
32
33     <groupId>org.onap.dcaegen2.analytics.tca</groupId>
34     <artifactId>dcae-analytics</artifactId>
35     <version>2.0.0-SNAPSHOT</version>
36     <packaging>pom</packaging>
37
38     <name>dcaegen2-analytics-tca</name>
39     <description>Application Framework for DCAE Analytics</description>
40
41     <licenses>
42         <license>
43             <name>The Apache Software License, Version 2.0</name>
44             <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
45         </license>
46     </licenses>
47
48     <pluginRepositories>
49         <!-- Black Duck plugin dependencies -->
50                 <pluginRepository>
51                         <id>JCenter</id>
52                         <name>JCenter Repository</name>
53                         <url>http://jcenter.bintray.com</url>
54                 </pluginRepository>
55  
56                 <pluginRepository>
57                         <id>Restlet</id>
58                         <name>Restlet Repository</name>
59                         <url>http://maven.restlet.com</url>
60                 </pluginRepository>
61         </pluginRepositories>
62
63     <distributionManagement>
64         <repository>
65                         <id>ecomp-releases</id>
66                         <name>OpenECOMP Release Repository</name>
67                         <url>${nexusproxy}/content/repositories/releases</url>
68                 </repository>
69                 <snapshotRepository>
70                         <id>ecomp-snapshots</id>
71                         <name>OpenECOMP Snapshot Repository</name>
72                         <url>${nexusproxy}/content/repositories/snapshots</url>
73                 </snapshotRepository>
74                 <site>
75                         <id>ecomp-site</id>
76                         <url>dav:${nexusproxy}/content/sites/site/org/onap/dcae/apod/analytics/${project.artifactId}/${project.version}/</url>
77                 </site>
78     </distributionManagement>
79
80     <properties>
81
82         <!-- PROJECT SETTINGS-->
83         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
84         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
85         <main.basedir>${project.basedir}</main.basedir>
86
87         <!--TEST SETTINGS -->
88         <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
89
90         <!-- PROJECT DEPENDENCIES -->
91         <cdap.version>4.0.0</cdap.version>
92         <cask.common.version>0.7.1</cask.common.version>
93         <hadoop.version>2.3.0</hadoop.version>
94         <spark.version>1.6.1</spark.version>
95         <!-- NOTE: Jackson version should match spark version jackson dependency -->
96         <jackson.json.version>2.4.4</jackson.json.version>
97         <netty.http.version>0.16.0</netty.http.version>
98         <gson.version>2.2.4</gson.version>
99         <guava.version>13.0.1</guava.version>
100         <guice.version>3.0</guice.version>
101         <slf4j.version>1.7.5</slf4j.version>
102         <logback.version>1.0.9</logback.version>
103         <findbugs.jsr305.version>2.0.1</findbugs.jsr305.version>
104         <findbugs.annotations.version>3.0.0</findbugs.annotations.version>
105         <lombok.version>1.16.10</lombok.version>
106
107         <json.path.version>2.2.0</json.path.version>
108         <quartz.version>2.2.0</quartz.version>
109         <httpclient.version>4.5.2</httpclient.version>
110         <commons.lang3.version>3.5</commons.lang3.version>
111
112
113         <!--TESTING DEPENDENCIES -->
114         <junit.version>4.12</junit.version>
115         <jayway.jsonpath.version>2.2.0</jayway.jsonpath.version>
116         <jsonassert.version>1.4.0</jsonassert.version>
117         <mockito.version>2.5.7</mockito.version>
118         <cucumber.version>1.2.5</cucumber.version>
119
120
121         <!-- PLUGINS VERSIONS -->
122         <compiler.plugin.version>3.3</compiler.plugin.version>
123         <surefire.plugin.version>2.19.1</surefire.plugin.version>
124         <failsafe.plugin.version>2.19.1</failsafe.plugin.version>
125         <bundle.plugin.version>2.5.4</bundle.plugin.version>
126         <autorun.plugin.version>1.7</autorun.plugin.version>
127         <eclipe.plugin.version>2.10</eclipe.plugin.version>
128         <findbugs.plugin.version>3.0.2</findbugs.plugin.version>
129         <cobertura.plugin.version>2.7</cobertura.plugin.version>
130         <pmd.plugin.version>3.5</pmd.plugin.version>
131         <surefire.report.plugin.version>2.19.1</surefire.report.plugin.version>
132         <checkstyle.plugin.version>2.16</checkstyle.plugin.version>
133         <javadoc.plugin.version>2.10.4</javadoc.plugin.version>
134         <source.plugin.version>2.4</source.plugin.version>
135         <jar.plugin.version>2.4</jar.plugin.version>
136         <deploy.plugin.version>2.8</deploy.plugin.version>
137         <jacoco.plugin.version>0.7.7.201606060606</jacoco.plugin.version>
138         <lombok.plugin.version>1.16.10.0</lombok.plugin.version>
139         <jgitflow.plugin.version>1.0-m5.1</jgitflow.plugin.version>
140         <maven.site.plugin>3.5.1</maven.site.plugin>
141         <jxr.plugin.version>2.5</jxr.plugin.version>
142         <project.info.reports.plugin.version>2.7</project.info.reports.plugin.version>
143         <blackduck.hub.version>2.0.0</blackduck.hub.version>
144         <sonar.plugin.version>3.2</sonar.plugin.version>
145         <license.plugin.version>1.12</license.plugin.version>
146
147         <!--PLUGIN SETTINGS -->
148         <compiler.source.version>1.7</compiler.source.version>
149         <compiler.target.version>1.7</compiler.target.version>
150         <unit.test.pattern>**/*Test.java</unit.test.pattern>
151         <skip.unit.tests>false</skip.unit.tests>
152         <integration.test.pattern>**/*IT.java</integration.test.pattern>
153         <skip.integration.tests>true</skip.integration.tests>
154         <pmd.violation.buildfail>true</pmd.violation.buildfail>
155         <findbugs.failOnError>true</findbugs.failOnError>
156         <checkstyle.failOnViolation>true</checkstyle.failOnViolation>
157         <checkstyle.file.name>checkstyle.xml</checkstyle.file.name>
158         <checkstyle.suppression.file.name>suppressions.xml</checkstyle.suppression.file.name>
159         <jacoco.it.execution.data.file>${project.build.directory}/coverage-reports/jacoco-it.exec
160         </jacoco.it.execution.data.file>
161         <jacoco.ut.execution.data.file>${project.build.directory}/coverage-reports/jacoco-ut.exec
162         </jacoco.ut.execution.data.file>
163         <dependency.locations.enabled>false</dependency.locations.enabled>
164         <nexusproxy>https://nexus.onap.org</nexusproxy>
165
166     </properties>
167
168     <dependencyManagement>
169
170         <dependencies>
171
172             <!-- CDAP -->
173             <dependency>
174                 <groupId>co.cask.cdap</groupId>
175                 <artifactId>cdap-api</artifactId>
176                 <version>${cdap.version}</version>
177                 <scope>provided</scope>
178             </dependency>
179
180             <dependency>
181                 <groupId>co.cask.cdap</groupId>
182                 <artifactId>cdap-etl-api</artifactId>
183                 <version>${cdap.version}</version>
184                 <scope>provided</scope>
185             </dependency>
186
187             <dependency>
188                 <groupId>co.cask.cdap</groupId>
189                 <artifactId>cdap-etl-api-spark</artifactId>
190                 <version>${cdap.version}</version>
191                 <scope>provided</scope>
192             </dependency>
193
194             <dependency>
195                 <groupId>co.cask.cdap</groupId>
196                 <artifactId>cdap-etl-realtime</artifactId>
197                 <version>${cdap.version}</version>
198                 <scope>provided</scope>
199             </dependency>
200
201             <dependency>
202                 <groupId>co.cask.cdap</groupId>
203                 <artifactId>cdap-data-pipeline</artifactId>
204                 <version>${cdap.version}</version>
205                 <scope>provided</scope>
206             </dependency>
207
208             <dependency>
209                 <groupId>co.cask.cdap</groupId>
210                 <artifactId>cdap-data-streams</artifactId>
211                 <version>${cdap.version}</version>
212                 <scope>provided</scope>
213             </dependency>
214
215             <dependency>
216                 <groupId>org.apache.spark</groupId>
217                 <artifactId>spark-streaming_2.10</artifactId>
218                 <version>${spark.version}</version>
219                 <scope>provided</scope>
220             </dependency>
221
222             <dependency>
223                 <groupId>co.cask.http</groupId>
224                 <artifactId>netty-http</artifactId>
225                 <version>${netty.http.version}</version>
226             </dependency>
227
228
229             <dependency>
230                 <groupId>co.cask.common</groupId>
231                 <artifactId>common-http</artifactId>
232                 <version>${cask.common.version}</version>
233                 <!-- exclude this, otherwise an old version of asm will get pulled in -->
234                 <exclusions>
235                     <exclusion>
236                         <groupId>org.ow2.asm</groupId>
237                         <artifactId>asm-all</artifactId>
238                     </exclusion>
239                 </exclusions>
240             </dependency>
241
242             <!-- HADOOP -->
243             <dependency>
244                 <groupId>org.apache.hadoop</groupId>
245                 <artifactId>hadoop-common</artifactId>
246                 <version>${hadoop.version}</version>
247                 <scope>provided</scope>
248                 <exclusions>
249                     <exclusion>
250                         <groupId>commons-logging</groupId>
251                         <artifactId>commons-logging</artifactId>
252                     </exclusion>
253                     <exclusion>
254                         <groupId>log4j</groupId>
255                         <artifactId>log4j</artifactId>
256                     </exclusion>
257                     <exclusion>
258                         <groupId>org.slf4j</groupId>
259                         <artifactId>slf4j-log4j12</artifactId>
260                     </exclusion>
261                     <exclusion>
262                         <groupId>org.apache.avro</groupId>
263                         <artifactId>avro</artifactId>
264                     </exclusion>
265                     <exclusion>
266                         <groupId>org.apache.zookeeper</groupId>
267                         <artifactId>zookeeper</artifactId>
268                     </exclusion>
269                     <exclusion>
270                         <artifactId>guava</artifactId>
271                         <groupId>com.google.guava</groupId>
272                     </exclusion>
273                     <exclusion>
274                         <artifactId>jersey-core</artifactId>
275                         <groupId>com.sun.jersey</groupId>
276                     </exclusion>
277                     <exclusion>
278                         <artifactId>jersey-json</artifactId>
279                         <groupId>com.sun.jersey</groupId>
280                     </exclusion>
281                     <exclusion>
282                         <artifactId>jersey-server</artifactId>
283                         <groupId>com.sun.jersey</groupId>
284                     </exclusion>
285                     <exclusion>
286                         <artifactId>servlet-api</artifactId>
287                         <groupId>javax.servlet</groupId>
288                     </exclusion>
289                     <exclusion>
290                         <groupId>org.mortbay.jetty</groupId>
291                         <artifactId>jetty</artifactId>
292                     </exclusion>
293                     <exclusion>
294                         <groupId>org.mortbay.jetty</groupId>
295                         <artifactId>jetty-util</artifactId>
296                     </exclusion>
297                     <exclusion>
298                         <artifactId>jasper-compiler</artifactId>
299                         <groupId>tomcat</groupId>
300                     </exclusion>
301                     <exclusion>
302                         <artifactId>jasper-runtime</artifactId>
303                         <groupId>tomcat</groupId>
304                     </exclusion>
305                     <exclusion>
306                         <artifactId>jsp-api</artifactId>
307                         <groupId>javax.servlet.jsp</groupId>
308                     </exclusion>
309                     <exclusion>
310                         <artifactId>slf4j-api</artifactId>
311                         <groupId>org.slf4j</groupId>
312                     </exclusion>
313                     <exclusion>
314                         <artifactId>httpcore</artifactId>
315                         <groupId>org.apache.httpcomponents</groupId>
316                     </exclusion>
317                 </exclusions>
318             </dependency>
319
320             <dependency>
321                 <groupId>org.apache.hadoop</groupId>
322                 <artifactId>hadoop-mapreduce-client-core</artifactId>
323                 <version>${hadoop.version}</version>
324                 <scope>provided</scope>
325                 <exclusions>
326                     <exclusion>
327                         <groupId>asm</groupId>
328                         <artifactId>asm</artifactId>
329                     </exclusion>
330                     <exclusion>
331                         <groupId>io.netty</groupId>
332                         <artifactId>netty</artifactId>
333                     </exclusion>
334                     <exclusion>
335                         <groupId>org.slf4j</groupId>
336                         <artifactId>slf4j-log4j12</artifactId>
337                     </exclusion>
338                 </exclusions>
339             </dependency>
340
341
342             <!-- SPARK -->
343             <dependency>
344                 <groupId>org.apache.spark</groupId>
345                 <artifactId>spark-core_2.10</artifactId>
346                 <version>${spark.version}</version>
347                 <scope>provided</scope>
348                 <exclusions>
349                     <exclusion>
350                         <groupId>asm</groupId>
351                         <artifactId>asm</artifactId>
352                     </exclusion>
353                     <exclusion>
354                         <groupId>org.slf4j</groupId>
355                         <artifactId>slf4j-log4j12</artifactId>
356                     </exclusion>
357                     <exclusion>
358                         <groupId>log4j</groupId>
359                         <artifactId>log4j</artifactId>
360                     </exclusion>
361                     <exclusion>
362                         <groupId>org.apache.hadoop</groupId>
363                         <artifactId>hadoop-client</artifactId>
364                     </exclusion>
365                     <exclusion>
366                         <groupId>com.esotericsoftware.reflectasm</groupId>
367                         <artifactId>reflectasm</artifactId>
368                     </exclusion>
369                     <exclusion>
370                         <groupId>org.apache.curator</groupId>
371                         <artifactId>curator-recipes</artifactId>
372                     </exclusion>
373                     <exclusion>
374                         <groupId>org.tachyonproject</groupId>
375                         <artifactId>tachyon-client</artifactId>
376                     </exclusion>
377                     <exclusion>
378                         <groupId>org.scala-lang</groupId>
379                         <artifactId>scala-compiler</artifactId>
380                     </exclusion>
381                     <exclusion>
382                         <groupId>org.eclipse.jetty.orbit</groupId>
383                         <artifactId>javax.servlet</artifactId>
384                     </exclusion>
385                 </exclusions>
386             </dependency>
387
388             <!-- LOGGING -->
389             <dependency>
390                 <groupId>org.slf4j</groupId>
391                 <artifactId>slf4j-api</artifactId>
392                 <version>${slf4j.version}</version>
393                 <scope>provided</scope>
394             </dependency>
395
396             <dependency>
397                 <groupId>ch.qos.logback</groupId>
398                 <artifactId>logback-core</artifactId>
399                 <version>${logback.version}</version>
400                 <scope>provided</scope>
401             </dependency>
402
403             <dependency>
404                 <groupId>ch.qos.logback</groupId>
405                 <artifactId>logback-classic</artifactId>
406                 <version>${logback.version}</version>
407                 <scope>provided</scope>
408             </dependency>
409
410             <!-- UTILITIES -->
411             <dependency>
412                 <groupId>com.google.guava</groupId>
413                 <artifactId>guava</artifactId>
414                 <version>${guava.version}</version>
415             </dependency>
416
417             <dependency>
418                 <groupId>com.google.code.gson</groupId>
419                 <artifactId>gson</artifactId>
420                 <version>${gson.version}</version>
421                 <scope>provided</scope>
422             </dependency>
423             <dependency>
424                 <groupId>org.apache.commons</groupId>
425                 <artifactId>commons-lang3</artifactId>
426                 <version>${commons.lang3.version}</version>
427             </dependency>
428
429             <!-- FIND BUGS -->
430             <dependency>
431                 <groupId>com.google.code.findbugs</groupId>
432                 <artifactId>jsr305</artifactId>
433                 <version>${findbugs.jsr305.version}</version>
434                 <scope>provided</scope>
435             </dependency>
436             <dependency>
437                 <groupId>com.google.code.findbugs</groupId>
438                 <artifactId>annotations</artifactId>
439                 <version>${findbugs.annotations.version}</version>
440                 <scope>provided</scope>
441             </dependency>
442
443             <!-- JACKSON JSON -->
444             <dependency>
445                 <groupId>com.fasterxml.jackson.core</groupId>
446                 <artifactId>jackson-core</artifactId>
447                 <version>${jackson.json.version}</version>
448             </dependency>
449             <dependency>
450                 <groupId>com.fasterxml.jackson.core</groupId>
451                 <artifactId>jackson-databind</artifactId>
452                 <version>${jackson.json.version}</version>
453             </dependency>
454             <dependency>
455                 <groupId>com.fasterxml.jackson.core</groupId>
456                 <artifactId>jackson-annotations</artifactId>
457                 <version>${jackson.json.version}</version>
458             </dependency>
459
460             <!-- JSON PATH -->
461             <dependency>
462                 <groupId>com.jayway.jsonpath</groupId>
463                 <artifactId>json-path</artifactId>
464                 <version>${json.path.version}</version>
465             </dependency>
466
467             <!-- CODE GENERATION -->
468             <dependency>
469                 <groupId>org.projectlombok</groupId>
470                 <artifactId>lombok</artifactId>
471                 <version>${lombok.version}</version>
472                 <scope>provided</scope>
473             </dependency>
474
475
476             <!-- DEPENDENCY INJECTION -->
477             <dependency>
478                 <groupId>com.google.inject</groupId>
479                 <artifactId>guice</artifactId>
480                 <version>${guice.version}</version>
481             </dependency>
482             <dependency>
483                 <groupId>com.google.inject.extensions</groupId>
484                 <artifactId>guice-assistedinject</artifactId>
485                 <version>${guice.version}</version>
486             </dependency>
487             <dependency>
488                 <groupId>com.google.inject.extensions</groupId>
489                 <artifactId>guice-multibindings</artifactId>
490                 <version>${guice.version}</version>
491             </dependency>
492
493             <!-- SCHEDULER -->
494             <dependency>
495                 <groupId>org.quartz-scheduler</groupId>
496                 <artifactId>quartz</artifactId>
497                 <version>${quartz.version}</version>
498             </dependency>
499
500             <!-- HTTP CLIENT -->
501             <dependency>
502                 <groupId>org.apache.httpcomponents</groupId>
503                 <artifactId>httpclient</artifactId>
504                 <version>${httpclient.version}</version>
505             </dependency>
506
507
508             <!-- TEST DEPENDENCIES -->
509             <dependency>
510                 <groupId>co.cask.cdap</groupId>
511                 <artifactId>cdap-unit-test</artifactId>
512                 <version>${cdap.version}</version>
513                 <scope>test</scope>
514             </dependency>
515
516             <dependency>
517                 <groupId>co.cask.cdap</groupId>
518                 <artifactId>hydrator-test</artifactId>
519                 <version>${cdap.version}</version>
520                 <scope>test</scope>
521             </dependency>
522
523             <dependency>
524                 <groupId>junit</groupId>
525                 <artifactId>junit</artifactId>
526                 <version>${junit.version}</version>
527                 <scope>test</scope>
528             </dependency>
529
530             <dependency>
531                 <groupId>org.mockito</groupId>
532                 <artifactId>mockito-core</artifactId>
533                 <version>${mockito.version}</version>
534             </dependency>
535
536             <dependency>
537                 <groupId>com.jayway.jsonpath</groupId>
538                 <artifactId>json-path-assert</artifactId>
539                 <version>${jayway.jsonpath.version}</version>
540                 <scope>test</scope>
541             </dependency>
542
543             <dependency>
544                 <groupId>org.skyscreamer</groupId>
545                 <artifactId>jsonassert</artifactId>
546                 <version>${jsonassert.version}</version>
547                 <scope>test</scope>
548             </dependency>
549
550             <!-- BDD TEST DEPENDENCIES -->
551             <dependency>
552                 <groupId>info.cukes</groupId>
553                 <artifactId>cucumber-java</artifactId>
554                 <version>${cucumber.version}</version>
555                 <scope>test</scope>
556             </dependency>
557
558             <dependency>
559                 <groupId>info.cukes</groupId>
560                 <artifactId>cucumber-guice</artifactId>
561                 <version>${cucumber.version}</version>
562                 <scope>test</scope>
563             </dependency>
564
565             <dependency>
566                 <groupId>info.cukes</groupId>
567                 <artifactId>cucumber-junit</artifactId>
568                 <version>${cucumber.version}</version>
569                 <scope>test</scope>
570             </dependency>
571
572         </dependencies>
573         
574     </dependencyManagement>
575
576
577     <build>
578
579         <extensions>
580             <extension>
581                 <groupId>org.apache.maven.wagon</groupId>
582                 <artifactId>wagon-webdav-jackrabbit</artifactId>
583                 <version>1.0-beta-7</version>
584             </extension>
585         </extensions>
586
587         <pluginManagement>
588
589             <plugins>
590
591                 <!-- COMPILER PLUGIN -->
592                 <plugin>
593                     <groupId>org.apache.maven.plugins</groupId>
594                     <artifactId>maven-compiler-plugin</artifactId>
595                     <version>${compiler.plugin.version}</version>
596                     <configuration>
597                         <source>${compiler.target.version}</source>
598                         <target>${compiler.source.version}</target>
599                     </configuration>
600                 </plugin>
601
602                 <!-- MAVEN SOURCE PLUGIN -->
603                 <plugin>
604                     <groupId>org.apache.maven.plugins</groupId>
605                     <artifactId>maven-source-plugin</artifactId>
606                     <version>${source.plugin.version}</version>
607                     <configuration>
608                         <excludeResources>true</excludeResources>
609                     </configuration>
610                     <executions>
611                         <execution>
612                             <id>attach-sources</id>
613                             <phase>verify</phase>
614                             <goals>
615                                 <goal>jar-no-fork</goal>
616                             </goals>
617                         </execution>
618                     </executions>
619                 </plugin>
620
621
622                 <!-- MAVEN JAVADOC PLUGIN -->
623                 <plugin>
624                     <groupId>org.apache.maven.plugins</groupId>
625                     <artifactId>maven-javadoc-plugin</artifactId>
626                     <version>${javadoc.plugin.version}</version>
627                     <configuration>
628                         <!-- minimize console output messages -->
629                         <quiet>true</quiet>
630                         <verbose>false</verbose>
631                         <useStandardDocletOptions>false</useStandardDocletOptions>
632                     </configuration>
633                     <executions>
634                         <execution>
635                             <id>aggregate</id>
636                             <phase>site</phase>
637                             <goals>
638                                 <goal>aggregate</goal>
639                             </goals>
640                         </execution>
641                         <execution>
642                             <id>attach-javadoc</id>
643                             <goals>
644                                 <goal>jar</goal>
645                             </goals>
646                         </execution>
647                     </executions>
648                 </plugin>
649
650                 <!-- MAVEN BUNDLE PLUGIN -->
651                 <plugin>
652                     <groupId>org.apache.felix</groupId>
653                     <artifactId>maven-bundle-plugin</artifactId>
654                     <version>${bundle.plugin.version}</version>
655                     <extensions>true</extensions>
656                     <configuration>
657                         <instructions>
658                             <Embed-Dependency>*;inline=false;scope=compile</Embed-Dependency>
659                             <Embed-Transitive>true</Embed-Transitive>
660                             <Embed-Directory>lib</Embed-Directory>
661                         </instructions>
662                     </configuration>
663                     <executions>
664                         <execution>
665                             <id>Bundling CDAP Jar</id>
666                             <phase>package</phase>
667                             <goals>
668                                 <goal>bundle</goal>
669                             </goals>
670                         </execution>
671                     </executions>
672                 </plugin>
673
674                 <!-- MAVEN AUTO RUN PLUGIN -->
675                 <plugin>
676                     <groupId>org.apache.maven.plugins</groupId>
677                     <artifactId>maven-antrun-plugin</artifactId>
678                     <version>${autorun.plugin.version}</version>
679                 </plugin>
680
681                 <!-- JACOCO CODE COVERAGE PLUGIN -->
682                 <plugin>
683                     <groupId>org.jacoco</groupId>
684                     <artifactId>jacoco-maven-plugin</artifactId>
685                     <version>${jacoco.plugin.version}</version>
686                     <configuration>
687                         <excludes>
688                             <!-- Exclude all test classes for code coverage reports -->
689                             <exclude>**/test/**</exclude>
690                             <!-- Exclude all domain classes as they should only contain domain objects, no logic -->
691                             <exclude>**/domain/**</exclude>
692                             <!-- Exclude all facade classes as they should only contain facade objects, no logic -->
693                             <exclude>**/facade/**</exclude>
694                             <!-- Exclude mixin class for code coverage as they are just for json parsing hints -->
695                             <exclude>**/mixin/**</exclude>
696                             <!-- Exclude classes ending with "Constants" as they should only store static constants -->
697                             <exclude>**/*Constants.*</exclude>
698                             <!-- Exclude classes ending with "Module" as they are used for wiring beans by guice -->
699                             <exclude>**/*Module.*</exclude>
700                             <!-- Exclude classes ending with "Exception" as they are mostly wrapper over java
701                             exceptions -->
702                             <exclude>**/*Exception.*</exclude>
703                             <!-- Exclude classes ending with "Entity" as they should not contain any logic -->
704                             <exclude>**/*Entity.*</exclude>
705                         </excludes>
706                     </configuration>
707                     <executions>
708                         <!-- prepare jacoco agent before unit tests -->
709                         <execution>
710                             <id>pre-unit-test</id>
711                             <goals>
712                                 <goal>prepare-agent</goal>
713                             </goals>
714                             <configuration>
715                                 <destFile>${jacoco.ut.execution.data.file}</destFile>
716                                 <propertyName>surefireArgLine</propertyName>
717                             </configuration>
718                         </execution>
719                         <!-- generate unit test coverage report -->
720                         <execution>
721                             <id>post-unit-test</id>
722                             <phase>test</phase>
723                             <goals>
724                                 <goal>report</goal>
725                             </goals>
726                             <configuration>
727                                 <dataFile>${jacoco.ut.execution.data.file}</dataFile>
728                                 <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
729                             </configuration>
730                         </execution>
731                         <!-- prepare jacoco agent before integration tests -->
732                         <execution>
733                             <id>pre-integration-test</id>
734                             <phase>pre-integration-test</phase>
735                             <goals>
736                                 <goal>prepare-agent</goal>
737                             </goals>
738                             <configuration>
739                                 <destFile>${jacoco.it.execution.data.file}</destFile>
740                                 <propertyName>failsafeArgLine</propertyName>
741                             </configuration>
742                         </execution>
743                         <!-- generate integration test coverage report -->
744                         <execution>
745                             <id>post-integration-test</id>
746                             <phase>post-integration-test</phase>
747                             <goals>
748                                 <goal>report</goal>
749                             </goals>
750                             <configuration>
751                                 <dataFile>${jacoco.it.execution.data.file}</dataFile>
752                                 <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
753                             </configuration>
754                         </execution>
755                     </executions>
756                 </plugin>
757
758
759                 <!-- SUREFIRE TEST PLUGIN -->
760                 <plugin>
761                     <groupId>org.apache.maven.plugins</groupId>
762                     <artifactId>maven-surefire-plugin</artifactId>
763                     <version>${surefire.plugin.version}</version>
764                     <configuration>
765                         <skipTests>${skip.unit.tests}</skipTests>
766                         <argLine>-Xmx2048m -Djava.awt.headless=true -XX:+UseConcMarkSweepGC
767                             -XX:OnOutOfMemoryError="kill -9 %p" -XX:+HeapDumpOnOutOfMemoryError
768                         </argLine>
769                         <redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
770                         <parallel>methods</parallel>
771                         <threadCount>8</threadCount>
772                         <forkCount>8</forkCount>
773                         <reuseForks>true</reuseForks>
774                         <reportFormat>xml</reportFormat>
775                         <trimStackTrace>false</trimStackTrace>
776                         <systemPropertyVariables>
777                             <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
778                             <logback.configurationFile>
779                                 ${basedir}/src/test/resources/logback-test.xml
780                             </logback.configurationFile>
781                             <HADOOP_HOME>${project.build.directory}</HADOOP_HOME>
782                         </systemPropertyVariables>
783                         <includes>
784                             <include>${unit.test.pattern}</include>
785                         </includes>
786                         <excludes>
787                             <exclude>${integration.test.pattern}</exclude>
788                         </excludes>
789                         <!-- Sets the VM argument line used when unit tests are run. -->
790                         <argLine>${surefireArgLine}</argLine>
791                     </configuration>
792                     <dependencies>
793                         <dependency>
794                             <groupId>org.apache.maven.surefire</groupId>
795                             <artifactId>surefire-junit47</artifactId>
796                             <version>${surefire.plugin.version}</version>
797                         </dependency>
798                     </dependencies>
799                 </plugin>
800
801                 <!-- FAIL SAFE PLUGIN FOR INTEGRATION TEST -->
802                 <plugin>
803                     <groupId>org.apache.maven.plugins</groupId>
804                     <artifactId>maven-failsafe-plugin</artifactId>
805                     <version>${failsafe.plugin.version}</version>
806                     <executions>
807                         <execution>
808                             <id>integration-tests</id>
809                             <goals>
810                                 <goal>integration-test</goal>
811                                 <goal>verify</goal>
812                             </goals>
813                             <configuration>
814                                 <skipTests>${skip.integration.tests}</skipTests>
815                                 <!-- Sets the VM argument line used when integration tests are run. -->
816                                 <!--suppress MavenModelInspection -->
817                                 <argLine>${failsafeArgLine}</argLine>
818                             </configuration>
819                         </execution>
820                     </executions>
821                 </plugin>
822
823
824                 <!-- FIND BUGS (STATIC CODE ANALYSIS) PLUGIN -->
825                 <plugin>
826                     <groupId>org.codehaus.mojo</groupId>
827                     <artifactId>findbugs-maven-plugin</artifactId>
828                     <version>${findbugs.plugin.version}</version>
829                     <configuration>
830                         <effort>Max</effort>
831                         <threshold>Low</threshold>
832                         <xmlOutput>true</xmlOutput>
833                         <!-- BUILD FAIL ON FINDBUGS ERRORS -->
834                         <failOnError>${findbugs.failOnError}</failOnError>
835                         <excludeFilterFile>${main.basedir}/findbugs-exclude.xml</excludeFilterFile>
836                         <outputDirectory>${project.reporting.outputDirectory}/findbugs</outputDirectory>
837                         <findbugsXmlOutputDirectory>${project.reporting.outputDirectory}/findbugs
838                         </findbugsXmlOutputDirectory>
839                     </configuration>
840                     <executions>
841                         <execution>
842                             <id>analyze-compile</id>
843                             <phase>compile</phase>
844                             <goals>
845                                 <goal>check</goal>
846                             </goals>
847                         </execution>
848                     </executions>
849                 </plugin>
850
851                 <!-- PMD PLUGIN SETUP -->
852                 <plugin>
853                     <groupId>org.apache.maven.plugins</groupId>
854                     <artifactId>maven-pmd-plugin</artifactId>
855                     <version>${pmd.plugin.version}</version>
856                     <configuration>
857                         <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
858                         <targetJdk>${compiler.target.version}</targetJdk>
859                         <linkXRef>false</linkXRef>
860                         <excludes>
861                             <!-- IGNORE PMD & CPD ANALYTICS MODEL FACADE OBJECTS -->
862                             <exclude>**/model/facade/**/*.java</exclude>
863                         </excludes>
864                         <!-- BUILD FAIL ON PMD VIOLATION -->
865                         <failOnViolation>${pmd.violation.buildfail}</failOnViolation>
866                         <targetDirectory>${project.reporting.outputDirectory}/pmd</targetDirectory>
867                     </configuration>
868                     <executions>
869                         <execution>
870                             <id>pmd-check</id>
871                             <goals>
872                                 <goal>check</goal>
873                             </goals>
874                             <configuration>
875                                 <printFailingErrors>true</printFailingErrors>
876                                 <excludeFromFailureFile>${main.basedir}/pmd-exclude.properties</excludeFromFailureFile>
877                             </configuration>
878                         </execution>
879                         <execution>
880                             <id>cpd-check</id>
881                             <goals>
882                                 <goal>cpd-check</goal>
883                             </goals>
884                             <configuration>
885                                 <printFailingErrors>true</printFailingErrors>
886                                 <excludeFromFailureFile>${main.basedir}/cpd-exclude.properties</excludeFromFailureFile>
887                             </configuration>
888                         </execution>
889                     </executions>
890                 </plugin>
891
892
893                 <!-- CHECKSTYLE PLUGIN -->
894                 <plugin>
895                     <groupId>org.apache.maven.plugins</groupId>
896                     <artifactId>maven-checkstyle-plugin</artifactId>
897                     <version>${checkstyle.plugin.version}</version>
898                     <executions>
899                         <execution>
900                             <id>validate</id>
901                             <phase>validate</phase>
902                             <configuration>
903                                 <configLocation>${checkstyle.file.name}</configLocation>
904                                 <suppressionsLocation>${checkstyle.suppression.file.name}</suppressionsLocation>
905                                 <encoding>UTF-8</encoding>
906                                 <consoleOutput>true</consoleOutput>
907                                 <!-- BUILD FAIL ON CHECKSTYLE VIOLATION -->
908                                 <failOnViolation>${checkstyle.failOnViolation}</failOnViolation>
909                                 <includeTestSourceDirectory>true</includeTestSourceDirectory>
910                                 <outputFile>${project.reporting.outputDirectory}/checkstyle</outputFile>
911                             </configuration>
912                             <goals>
913                                 <goal>check</goal>
914                             </goals>
915                         </execution>
916                     </executions>
917                     <dependencies>
918                         <dependency>
919                             <groupId>com.puppycrawl.tools</groupId>
920                             <artifactId>checkstyle</artifactId>
921                             <version>6.19</version>
922                         </dependency>
923                     </dependencies>
924                 </plugin>
925
926                 <!-- ECLIPSE PLUGIN -->
927                 <plugin>
928                     <groupId>org.apache.maven.plugins</groupId>
929                     <artifactId>maven-eclipse-plugin</artifactId>
930                     <version>${eclipe.plugin.version}</version>
931                 </plugin>
932
933
934                 <!-- LOMBOK PLUGIN -->
935                 <plugin>
936                     <groupId>org.projectlombok</groupId>
937                     <artifactId>lombok-maven-plugin</artifactId>
938                     <version>${lombok.plugin.version}</version>
939                     <executions>
940                         <execution>
941                             <id>delombok</id>
942                             <phase>generate-sources</phase>
943                             <goals>
944                                 <goal>delombok</goal>
945                             </goals>
946                             <configuration>
947                                 <addOutputDirectory>false</addOutputDirectory>
948                                 <sourceDirectory>src/main/java</sourceDirectory>
949                             </configuration>
950                         </execution>
951                     </executions>
952                 </plugin>
953
954
955                 <!-- JGIT FLOW PLUGIN -->
956
957                 <plugin>
958                     <groupId>external.atlassian.jgitflow</groupId>
959                     <artifactId>jgitflow-maven-plugin</artifactId>
960                     <version>${jgitflow.plugin.version}</version>
961                     <configuration>
962                         <!-- Enable this to push to origin using SSH keys -->
963                         <enableSshAgent>true</enableSshAgent>
964                         <!-- Keep your maven sub modules at the same version as the parent POM -->
965                         <autoVersionSubmodules>true</autoVersionSubmodules>
966                         <!--
967                           Pushing in-development features to origin allows all devs to see what each other
968                           are working on
969                         -->
970                         <pushFeatures>true</pushFeatures>
971                         <!--
972                           This allows the CI server (e.g. Jenkins) to automatically push new releases to
973                           origin; you can then either manually deploy them or, if you are doing Continuous
974                           Deployments, auto-deploy them to prod
975                         -->
976                         <pushReleases>true</pushReleases>
977                         <!--
978                           Hot Fixes should be pushed to origin as well so that any dev can pick them up
979                         -->
980                         <pushHotfixes>true</pushHotfixes>
981                         <!--
982                           Prevents deployments from dev workstations so that they can be done by a CI
983                           server
984                         -->
985                         <flowInitContext>
986                             <masterBranchName>master</masterBranchName>
987                             <developBranchName>develop</developBranchName>
988                             <featureBranchPrefix>feature</featureBranchPrefix>
989                             <releaseBranchPrefix>release</releaseBranchPrefix>
990                             <hotfixBranchPrefix>hotfix</hotfixBranchPrefix>
991                         </flowInitContext>
992                         <noDeploy>true</noDeploy>
993                     </configuration>
994                 </plugin>
995
996                 <!-- JAR PLUGIN -->
997                 <plugin>
998                     <groupId>org.apache.maven.plugins</groupId>
999                     <artifactId>maven-jar-plugin</artifactId>
1000                     <version>${jar.plugin.version}</version>
1001                     <configuration>
1002                         <archive>
1003                             <manifest>
1004                                 <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
1005                             </manifest>
1006                             <manifestEntries>
1007                                 <Implementation-Build-Version>${project.version}</Implementation-Build-Version>
1008                             </manifestEntries>
1009                         </archive>
1010                     </configuration>
1011                 </plugin>
1012
1013
1014                 <!-- BLACK DUCK LICENSE SCANNER -->
1015                 <!--
1016                 <plugin>
1017                     <groupId>com.blackducksoftware.integration</groupId>
1018                     <artifactId>hub-maven-plugin</artifactId>
1019                     <version>${blackduck.hub.version}</version>
1020                     <inherited>false</inherited>
1021                     <configuration>
1022                         <hubProjectName>${project.name}</hubProjectName>
1023                         <outputDirectory>${project.basedir}</outputDirectory>
1024                         <deployHubBdio>false</deployHubBdio>
1025                     </configuration>
1026                     <executions>
1027                         <execution>
1028                             <id>create-bdio-file</id>
1029                             <phase>package</phase>
1030                             <goals>
1031                                 <goal>build-bom</goal>
1032                             </goals>
1033                         </execution>
1034                     </executions>
1035                 </plugin>
1036                 -->
1037
1038                 <!-- LICENSE PLUGIN -->
1039                 <!--
1040                 <plugin>
1041                     <groupId>org.codehaus.mojo</groupId>
1042                     <artifactId>license-maven-plugin</artifactId>
1043                     <version>${license.plugin.version}</version>
1044                     <configuration>
1045                         <addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
1046                         <processStartTag>============LICENSE_START=======================================================</processStartTag>
1047                         <processEndTag>============LICENSE_END=========================================================</processEndTag>
1048                         <sectionDelimiter>================================================================================</sectionDelimiter>
1049                         <licenseName>apache_v2</licenseName>
1050                         <inceptionYear>2017</inceptionYear>
1051                         <organizationName>AT&amp;T Intellectual Property. All rights reserved.</organizationName>
1052                         <projectName>dcae-analytics</projectName>
1053                         <canUpdateCopyright>true</canUpdateCopyright>
1054                         <canUpdateDescription>true</canUpdateDescription>
1055                         <canUpdateLicense>true</canUpdateLicense>
1056                         <emptyLineAfterHeader>true</emptyLineAfterHeader>
1057                     </configuration>
1058                     <executions>
1059                         <execution>
1060                             <id>first</id>
1061                             <goals>
1062                                 <goal>update-file-header</goal>
1063                             </goals>
1064                             <phase>process-sources</phase>
1065                         </execution>
1066                     </executions>
1067                 </plugin>
1068                 -->
1069
1070                 <!-- SONAR PLUGIN -->
1071                 <plugin>
1072                     <groupId>org.codehaus.mojo</groupId>
1073                     <artifactId>sonar-maven-plugin</artifactId>
1074                     <version>${sonar.plugin.version}</version>
1075                 </plugin>
1076
1077                 <!-- DEPLOY PLUGIN -->
1078                 <plugin>
1079                     <groupId>org.apache.maven.plugins</groupId>
1080                     <artifactId>maven-deploy-plugin</artifactId>
1081                     <version>${deploy.plugin.version}</version>
1082                 </plugin>
1083
1084                 <plugin>
1085                     <groupId>org.apache.maven.plugins</groupId>
1086                     <artifactId>maven-site-plugin</artifactId>
1087                     <version>${maven.site.plugin}</version>
1088                 </plugin>
1089
1090
1091                 <plugin>
1092                     <groupId>org.apache.maven.plugins</groupId>
1093                     <artifactId>maven-jxr-plugin</artifactId>
1094                     <version>${jxr.plugin.version}</version>
1095                 </plugin>
1096
1097                 <plugin>
1098                     <groupId>org.apache.maven.plugins</groupId>
1099                     <artifactId>maven-project-info-reports-plugin</artifactId>
1100                     <version>${project.info.reports.plugin.version}</version>
1101                     <configuration>
1102                         <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
1103                         <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
1104                     </configuration>
1105                 </plugin>
1106
1107                 <plugin>
1108                     <groupId>org.apache.maven.plugins</groupId>
1109                     <artifactId>maven-surefire-report-plugin</artifactId>
1110                     <version>${surefire.report.plugin.version}</version>
1111                 </plugin>
1112
1113             </plugins>
1114
1115         </pluginManagement>
1116
1117         <plugins>
1118
1119             <plugin>
1120                 <groupId>org.apache.maven.plugins</groupId>
1121                 <artifactId>maven-compiler-plugin</artifactId>
1122             </plugin>
1123
1124             <plugin>
1125                 <groupId>org.apache.maven.plugins</groupId>
1126                 <artifactId>maven-jar-plugin</artifactId>
1127             </plugin>
1128
1129             <plugin>
1130                 <groupId>org.apache.maven.plugins</groupId>
1131                 <artifactId>maven-surefire-plugin</artifactId>
1132                 <configuration>
1133                     <skipTests>true</skipTests>
1134                 </configuration>
1135             </plugin>
1136
1137             <plugin>
1138                 <groupId>org.apache.maven.plugins</groupId>
1139                 <artifactId>maven-failsafe-plugin</artifactId>
1140             </plugin>
1141
1142             <plugin>
1143                 <groupId>org.jacoco</groupId>
1144                 <artifactId>jacoco-maven-plugin</artifactId>
1145             </plugin>
1146
1147             <plugin>
1148                 <groupId>org.apache.maven.plugins</groupId>
1149                 <artifactId>maven-deploy-plugin</artifactId>
1150             </plugin>
1151
1152
1153             <plugin>
1154                 <groupId>org.apache.maven.plugins</groupId>
1155                 <artifactId>maven-source-plugin</artifactId>
1156             </plugin>
1157
1158             <plugin>
1159                 <groupId>org.apache.maven.plugins</groupId>
1160                 <artifactId>maven-javadoc-plugin</artifactId>
1161             </plugin>
1162
1163             <plugin>
1164                 <groupId>org.apache.maven.plugins</groupId>
1165                 <artifactId>maven-pmd-plugin</artifactId>
1166             </plugin>
1167
1168             <plugin>
1169                 <groupId>org.codehaus.mojo</groupId>
1170                 <artifactId>findbugs-maven-plugin</artifactId>
1171             </plugin>
1172
1173             <plugin>
1174                 <groupId>org.apache.maven.plugins</groupId>
1175                 <artifactId>maven-checkstyle-plugin</artifactId>
1176             </plugin>
1177
1178             <plugin>
1179                 <groupId>external.atlassian.jgitflow</groupId>
1180                 <artifactId>jgitflow-maven-plugin</artifactId>
1181             </plugin>
1182
1183             <!--
1184             <plugin>
1185                 <groupId>com.blackducksoftware.integration</groupId>
1186                 <artifactId>hub-maven-plugin</artifactId>
1187             </plugin>
1188             -->
1189
1190         </plugins>
1191     </build>
1192
1193
1194     <reporting>
1195         <plugins>
1196             <plugin>
1197                 <groupId>org.apache.maven.plugins</groupId>
1198                 <artifactId>maven-site-plugin</artifactId>
1199             </plugin>
1200             <plugin>
1201                 <groupId>org.apache.maven.plugins</groupId>
1202                 <artifactId>maven-checkstyle-plugin</artifactId>
1203                 <configuration>
1204                     <configLocation>${checkstyle.file.name}</configLocation>
1205                     <suppressionsLocation>${checkstyle.suppression.file.name}</suppressionsLocation>
1206                 </configuration>
1207             </plugin>
1208             <plugin>
1209                 <groupId>org.jacoco</groupId>
1210                 <artifactId>jacoco-maven-plugin</artifactId>
1211                 <version>${jacoco.plugin.version}</version>
1212                 <configuration>
1213                     <dataFile>${jacoco.ut.execution.data.file}</dataFile>
1214                     <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
1215                 </configuration>
1216             </plugin>
1217             <plugin>
1218                 <groupId>org.apache.maven.plugins</groupId>
1219                 <artifactId>maven-jxr-plugin</artifactId>
1220             </plugin>
1221             <plugin>
1222                 <groupId>org.apache.maven.plugins</groupId>
1223                 <artifactId>maven-pmd-plugin</artifactId>
1224             </plugin>
1225             <plugin>
1226                 <groupId>org.apache.maven.plugins</groupId>
1227                 <artifactId>maven-project-info-reports-plugin</artifactId>
1228             </plugin>
1229             <plugin>
1230                 <groupId>org.apache.maven.plugins</groupId>
1231                 <artifactId>maven-surefire-report-plugin</artifactId>
1232             </plugin>
1233         </plugins>
1234     </reporting>
1235
1236     <modules>
1237         <module>dcae-analytics-test</module>
1238         <module>dcae-analytics-model</module>
1239         <module>dcae-analytics-common</module>
1240         <module>dcae-analytics-dmaap</module>
1241         <module>dcae-analytics-tca</module>
1242         <module>dcae-analytics-cdap-common</module>
1243         <module>dcae-analytics-cdap-tca</module>
1244         <module>dcae-analytics-cdap-plugins</module>
1245         <module>dcae-analytics-it</module>
1246     </modules>
1247
1248 </project>