TCA: pom cleanup
[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     <properties>
49
50         <!-- PROJECT SETTINGS-->
51         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
52         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
53         <main.basedir>${project.basedir}</main.basedir>
54
55         <!--TEST SETTINGS -->
56         <surefire.redirectTestOutputToFile>true</surefire.redirectTestOutputToFile>
57
58         <!-- PROJECT DEPENDENCIES -->
59         <cdap.version>4.1.2</cdap.version>
60         <cask.common.version>0.7.1</cask.common.version>
61         <hadoop.version>2.3.0</hadoop.version>
62         <spark.version>1.6.1</spark.version>
63         <!-- NOTE: Jackson version should match spark version jackson dependency -->
64         <jackson.json.version>2.4.4</jackson.json.version>
65         <netty.http.version>0.16.0</netty.http.version>
66         <gson.version>2.2.4</gson.version>
67         <guava.version>13.0.1</guava.version>
68         <guice.version>3.0</guice.version>
69         <slf4j.version>1.7.5</slf4j.version>
70         <logback.version>1.0.9</logback.version>
71         <findbugs.jsr305.version>2.0.1</findbugs.jsr305.version>
72         <findbugs.annotations.version>3.0.0</findbugs.annotations.version>
73         <lombok.version>1.16.10</lombok.version>
74
75         <json.path.version>2.2.0</json.path.version>
76         <quartz.version>2.2.0</quartz.version>
77         <httpclient.version>4.5.2</httpclient.version>
78         <commons.lang3.version>3.5</commons.lang3.version>
79
80
81         <!--TESTING DEPENDENCIES -->
82         <junit.version>4.12</junit.version>
83         <jayway.jsonpath.version>2.2.0</jayway.jsonpath.version>
84         <jsonassert.version>1.4.0</jsonassert.version>
85         <mockito.version>2.5.7</mockito.version>
86         <cucumber.version>1.2.5</cucumber.version>
87
88
89         <!-- PLUGINS VERSIONS -->
90         <compiler.plugin.version>3.3</compiler.plugin.version>
91         <surefire.plugin.version>2.19.1</surefire.plugin.version>
92         <bundle.plugin.version>2.5.4</bundle.plugin.version>
93         <autorun.plugin.version>1.7</autorun.plugin.version>
94         <eclipe.plugin.version>2.10</eclipe.plugin.version>
95         <findbugs.plugin.version>3.0.2</findbugs.plugin.version>
96         <pmd.plugin.version>3.5</pmd.plugin.version>
97         <surefire.report.plugin.version>2.19.1</surefire.report.plugin.version>
98         <javadoc.plugin.version>2.10.4</javadoc.plugin.version>
99         <source.plugin.version>2.4</source.plugin.version>
100         <jar.plugin.version>2.4</jar.plugin.version>
101         <deploy.plugin.version>2.8</deploy.plugin.version>
102         <lombok.plugin.version>1.16.10.0</lombok.plugin.version>
103         <jgitflow.plugin.version>1.0-m5.1</jgitflow.plugin.version>
104         <maven.site.plugin>3.5.1</maven.site.plugin>
105         <jxr.plugin.version>2.5</jxr.plugin.version>
106         <project.info.reports.plugin.version>2.7</project.info.reports.plugin.version>
107
108         <!--PLUGIN SETTINGS -->
109         <compiler.source.version>1.7</compiler.source.version>
110         <compiler.target.version>1.7</compiler.target.version>
111         <unit.test.pattern>**/*Test.java</unit.test.pattern>
112         <skip.unit.tests>false</skip.unit.tests>
113         <integration.test.pattern>**/*IT.java</integration.test.pattern>
114         <skip.integration.tests>true</skip.integration.tests>
115         <pmd.violation.buildfail>true</pmd.violation.buildfail>
116         <findbugs.failOnError>true</findbugs.failOnError>
117         <dependency.locations.enabled>false</dependency.locations.enabled>
118         <nexusproxy>https://nexus.onap.org</nexusproxy>
119                 <snapshots.path>content/repositories/snapshots/</snapshots.path>
120                 <releases.path>content/repositories/releases/</releases.path>
121                 <site.path>content/sites/site/org/onap/dcaegen2/analytics/tca/${project.artifactId}/${project.version}</site.path>
122     </properties>
123
124     <dependencyManagement>
125
126         <dependencies>
127
128             <!-- CDAP -->
129             <dependency>
130                 <groupId>co.cask.cdap</groupId>
131                 <artifactId>cdap-api</artifactId>
132                 <version>${cdap.version}</version>
133                 <scope>provided</scope>
134             </dependency>
135
136             <dependency>
137                 <groupId>co.cask.cdap</groupId>
138                 <artifactId>cdap-etl-api</artifactId>
139                 <version>${cdap.version}</version>
140                 <scope>provided</scope>
141             </dependency>
142
143             <dependency>
144                 <groupId>co.cask.cdap</groupId>
145                 <artifactId>cdap-etl-api-spark</artifactId>
146                 <version>${cdap.version}</version>
147                 <scope>provided</scope>
148             </dependency>
149
150             <dependency>
151                 <groupId>co.cask.cdap</groupId>
152                 <artifactId>cdap-etl-realtime</artifactId>
153                 <version>${cdap.version}</version>
154                 <scope>provided</scope>
155             </dependency>
156
157             <dependency>
158                 <groupId>co.cask.cdap</groupId>
159                 <artifactId>cdap-data-pipeline</artifactId>
160                 <version>${cdap.version}</version>
161                 <scope>provided</scope>
162             </dependency>
163
164             <dependency>
165                 <groupId>co.cask.cdap</groupId>
166                 <artifactId>cdap-data-streams</artifactId>
167                 <version>${cdap.version}</version>
168                 <scope>provided</scope>
169             </dependency>
170
171             <dependency>
172                 <groupId>org.apache.spark</groupId>
173                 <artifactId>spark-streaming_2.10</artifactId>
174                 <version>${spark.version}</version>
175                 <scope>provided</scope>
176             </dependency>
177
178             <dependency>
179                 <groupId>co.cask.http</groupId>
180                 <artifactId>netty-http</artifactId>
181                 <version>${netty.http.version}</version>
182             </dependency>
183
184
185             <dependency>
186                 <groupId>co.cask.common</groupId>
187                 <artifactId>common-http</artifactId>
188                 <version>${cask.common.version}</version>
189                 <!-- exclude this, otherwise an old version of asm will get pulled in -->
190                 <exclusions>
191                     <exclusion>
192                         <groupId>org.ow2.asm</groupId>
193                         <artifactId>asm-all</artifactId>
194                     </exclusion>
195                 </exclusions>
196             </dependency>
197
198             <!-- HADOOP -->
199             <dependency>
200                 <groupId>org.apache.hadoop</groupId>
201                 <artifactId>hadoop-common</artifactId>
202                 <version>${hadoop.version}</version>
203                 <scope>provided</scope>
204                 <exclusions>
205                     <exclusion>
206                         <groupId>commons-logging</groupId>
207                         <artifactId>commons-logging</artifactId>
208                     </exclusion>
209                     <exclusion>
210                         <groupId>log4j</groupId>
211                         <artifactId>log4j</artifactId>
212                     </exclusion>
213                     <exclusion>
214                         <groupId>org.slf4j</groupId>
215                         <artifactId>slf4j-log4j12</artifactId>
216                     </exclusion>
217                     <exclusion>
218                         <groupId>org.apache.avro</groupId>
219                         <artifactId>avro</artifactId>
220                     </exclusion>
221                     <exclusion>
222                         <groupId>org.apache.zookeeper</groupId>
223                         <artifactId>zookeeper</artifactId>
224                     </exclusion>
225                     <exclusion>
226                         <artifactId>guava</artifactId>
227                         <groupId>com.google.guava</groupId>
228                     </exclusion>
229                     <exclusion>
230                         <artifactId>jersey-core</artifactId>
231                         <groupId>com.sun.jersey</groupId>
232                     </exclusion>
233                     <exclusion>
234                         <artifactId>jersey-json</artifactId>
235                         <groupId>com.sun.jersey</groupId>
236                     </exclusion>
237                     <exclusion>
238                         <artifactId>jersey-server</artifactId>
239                         <groupId>com.sun.jersey</groupId>
240                     </exclusion>
241                     <exclusion>
242                         <artifactId>servlet-api</artifactId>
243                         <groupId>javax.servlet</groupId>
244                     </exclusion>
245                     <exclusion>
246                         <groupId>org.mortbay.jetty</groupId>
247                         <artifactId>jetty</artifactId>
248                     </exclusion>
249                     <exclusion>
250                         <groupId>org.mortbay.jetty</groupId>
251                         <artifactId>jetty-util</artifactId>
252                     </exclusion>
253                     <exclusion>
254                         <artifactId>jasper-compiler</artifactId>
255                         <groupId>tomcat</groupId>
256                     </exclusion>
257                     <exclusion>
258                         <artifactId>jasper-runtime</artifactId>
259                         <groupId>tomcat</groupId>
260                     </exclusion>
261                     <exclusion>
262                         <artifactId>jsp-api</artifactId>
263                         <groupId>javax.servlet.jsp</groupId>
264                     </exclusion>
265                     <exclusion>
266                         <artifactId>slf4j-api</artifactId>
267                         <groupId>org.slf4j</groupId>
268                     </exclusion>
269                     <exclusion>
270                         <artifactId>httpcore</artifactId>
271                         <groupId>org.apache.httpcomponents</groupId>
272                     </exclusion>
273                 </exclusions>
274             </dependency>
275
276             <dependency>
277                 <groupId>org.apache.hadoop</groupId>
278                 <artifactId>hadoop-mapreduce-client-core</artifactId>
279                 <version>${hadoop.version}</version>
280                 <scope>provided</scope>
281                 <exclusions>
282                     <exclusion>
283                         <groupId>asm</groupId>
284                         <artifactId>asm</artifactId>
285                     </exclusion>
286                     <exclusion>
287                         <groupId>io.netty</groupId>
288                         <artifactId>netty</artifactId>
289                     </exclusion>
290                     <exclusion>
291                         <groupId>org.slf4j</groupId>
292                         <artifactId>slf4j-log4j12</artifactId>
293                     </exclusion>
294                 </exclusions>
295             </dependency>
296
297
298             <!-- SPARK -->
299             <dependency>
300                 <groupId>org.apache.spark</groupId>
301                 <artifactId>spark-core_2.10</artifactId>
302                 <version>${spark.version}</version>
303                 <scope>provided</scope>
304                 <exclusions>
305                     <exclusion>
306                         <groupId>asm</groupId>
307                         <artifactId>asm</artifactId>
308                     </exclusion>
309                     <exclusion>
310                         <groupId>org.slf4j</groupId>
311                         <artifactId>slf4j-log4j12</artifactId>
312                     </exclusion>
313                     <exclusion>
314                         <groupId>log4j</groupId>
315                         <artifactId>log4j</artifactId>
316                     </exclusion>
317                     <exclusion>
318                         <groupId>org.apache.hadoop</groupId>
319                         <artifactId>hadoop-client</artifactId>
320                     </exclusion>
321                     <exclusion>
322                         <groupId>com.esotericsoftware.reflectasm</groupId>
323                         <artifactId>reflectasm</artifactId>
324                     </exclusion>
325                     <exclusion>
326                         <groupId>org.apache.curator</groupId>
327                         <artifactId>curator-recipes</artifactId>
328                     </exclusion>
329                     <exclusion>
330                         <groupId>org.tachyonproject</groupId>
331                         <artifactId>tachyon-client</artifactId>
332                     </exclusion>
333                     <exclusion>
334                         <groupId>org.scala-lang</groupId>
335                         <artifactId>scala-compiler</artifactId>
336                     </exclusion>
337                     <exclusion>
338                         <groupId>org.eclipse.jetty.orbit</groupId>
339                         <artifactId>javax.servlet</artifactId>
340                     </exclusion>
341                 </exclusions>
342             </dependency>
343
344             <!-- LOGGING -->
345             <dependency>
346                 <groupId>org.slf4j</groupId>
347                 <artifactId>slf4j-api</artifactId>
348                 <version>${slf4j.version}</version>
349                 <scope>provided</scope>
350             </dependency>
351
352             <dependency>
353                 <groupId>ch.qos.logback</groupId>
354                 <artifactId>logback-core</artifactId>
355                 <version>${logback.version}</version>
356                 <scope>provided</scope>
357             </dependency>
358
359             <dependency>
360                 <groupId>ch.qos.logback</groupId>
361                 <artifactId>logback-classic</artifactId>
362                 <version>${logback.version}</version>
363                 <scope>provided</scope>
364             </dependency>
365
366             <!-- UTILITIES -->
367             <dependency>
368                 <groupId>com.google.guava</groupId>
369                 <artifactId>guava</artifactId>
370                 <version>${guava.version}</version>
371             </dependency>
372
373             <dependency>
374                 <groupId>com.google.code.gson</groupId>
375                 <artifactId>gson</artifactId>
376                 <version>${gson.version}</version>
377                 <scope>provided</scope>
378             </dependency>
379             <dependency>
380                 <groupId>org.apache.commons</groupId>
381                 <artifactId>commons-lang3</artifactId>
382                 <version>${commons.lang3.version}</version>
383             </dependency>
384
385             <!-- FIND BUGS -->
386             <dependency>
387                 <groupId>com.google.code.findbugs</groupId>
388                 <artifactId>jsr305</artifactId>
389                 <version>${findbugs.jsr305.version}</version>
390                 <scope>provided</scope>
391             </dependency>
392             <dependency>
393                 <groupId>com.google.code.findbugs</groupId>
394                 <artifactId>annotations</artifactId>
395                 <version>${findbugs.annotations.version}</version>
396                 <scope>provided</scope>
397             </dependency>
398
399             <!-- JACKSON JSON -->
400             <dependency>
401                 <groupId>com.fasterxml.jackson.core</groupId>
402                 <artifactId>jackson-core</artifactId>
403                 <version>${jackson.json.version}</version>
404             </dependency>
405             <dependency>
406                 <groupId>com.fasterxml.jackson.core</groupId>
407                 <artifactId>jackson-databind</artifactId>
408                 <version>${jackson.json.version}</version>
409             </dependency>
410             <dependency>
411                 <groupId>com.fasterxml.jackson.core</groupId>
412                 <artifactId>jackson-annotations</artifactId>
413                 <version>${jackson.json.version}</version>
414             </dependency>
415
416             <!-- JSON PATH -->
417             <dependency>
418                 <groupId>com.jayway.jsonpath</groupId>
419                 <artifactId>json-path</artifactId>
420                 <version>${json.path.version}</version>
421             </dependency>
422
423             <!-- CODE GENERATION -->
424             <dependency>
425                 <groupId>org.projectlombok</groupId>
426                 <artifactId>lombok</artifactId>
427                 <version>${lombok.version}</version>
428                 <scope>provided</scope>
429             </dependency>
430
431
432             <!-- DEPENDENCY INJECTION -->
433             <dependency>
434                 <groupId>com.google.inject</groupId>
435                 <artifactId>guice</artifactId>
436                 <version>${guice.version}</version>
437             </dependency>
438             <dependency>
439                 <groupId>com.google.inject.extensions</groupId>
440                 <artifactId>guice-assistedinject</artifactId>
441                 <version>${guice.version}</version>
442             </dependency>
443             <dependency>
444                 <groupId>com.google.inject.extensions</groupId>
445                 <artifactId>guice-multibindings</artifactId>
446                 <version>${guice.version}</version>
447             </dependency>
448
449             <!-- SCHEDULER -->
450             <dependency>
451                 <groupId>org.quartz-scheduler</groupId>
452                 <artifactId>quartz</artifactId>
453                 <version>${quartz.version}</version>
454             </dependency>
455
456             <!-- HTTP CLIENT -->
457             <dependency>
458                 <groupId>org.apache.httpcomponents</groupId>
459                 <artifactId>httpclient</artifactId>
460                 <version>${httpclient.version}</version>
461             </dependency>
462
463
464             <!-- TEST DEPENDENCIES -->
465             <dependency>
466                 <groupId>co.cask.cdap</groupId>
467                 <artifactId>cdap-unit-test</artifactId>
468                 <version>${cdap.version}</version>
469                 <scope>test</scope>
470             </dependency>
471
472             <dependency>
473                 <groupId>co.cask.cdap</groupId>
474                 <artifactId>hydrator-test</artifactId>
475                 <version>${cdap.version}</version>
476                 <scope>test</scope>
477             </dependency>
478
479             <dependency>
480                 <groupId>junit</groupId>
481                 <artifactId>junit</artifactId>
482                 <version>${junit.version}</version>
483                 <scope>test</scope>
484             </dependency>
485
486             <dependency>
487                 <groupId>org.mockito</groupId>
488                 <artifactId>mockito-core</artifactId>
489                 <version>${mockito.version}</version>
490             </dependency>
491
492             <dependency>
493                 <groupId>com.jayway.jsonpath</groupId>
494                 <artifactId>json-path-assert</artifactId>
495                 <version>${jayway.jsonpath.version}</version>
496                 <scope>test</scope>
497             </dependency>
498
499             <dependency>
500                 <groupId>org.skyscreamer</groupId>
501                 <artifactId>jsonassert</artifactId>
502                 <version>${jsonassert.version}</version>
503                 <scope>test</scope>
504             </dependency>
505
506             <!-- BDD TEST DEPENDENCIES -->
507             <dependency>
508                 <groupId>info.cukes</groupId>
509                 <artifactId>cucumber-java</artifactId>
510                 <version>${cucumber.version}</version>
511                 <scope>test</scope>
512             </dependency>
513
514             <dependency>
515                 <groupId>info.cukes</groupId>
516                 <artifactId>cucumber-guice</artifactId>
517                 <version>${cucumber.version}</version>
518                 <scope>test</scope>
519             </dependency>
520
521             <dependency>
522                 <groupId>info.cukes</groupId>
523                 <artifactId>cucumber-junit</artifactId>
524                 <version>${cucumber.version}</version>
525                 <scope>test</scope>
526             </dependency>
527
528         </dependencies>
529         
530     </dependencyManagement>
531
532
533     <build>
534
535         <extensions>
536             <extension>
537                 <groupId>org.apache.maven.wagon</groupId>
538                 <artifactId>wagon-webdav-jackrabbit</artifactId>
539                 <version>1.0-beta-7</version>
540             </extension>
541         </extensions>
542
543         <pluginManagement>
544
545             <plugins>
546
547                 <!-- COMPILER PLUGIN -->
548                 <plugin>
549                     <groupId>org.apache.maven.plugins</groupId>
550                     <artifactId>maven-compiler-plugin</artifactId>
551                     <version>${compiler.plugin.version}</version>
552                     <configuration>
553                         <source>${compiler.target.version}</source>
554                         <target>${compiler.source.version}</target>
555                     </configuration>
556                 </plugin>
557
558                 <!-- MAVEN SOURCE PLUGIN -->
559                 <plugin>
560                     <groupId>org.apache.maven.plugins</groupId>
561                     <artifactId>maven-source-plugin</artifactId>
562                     <version>${source.plugin.version}</version>
563                     <configuration>
564                         <excludeResources>true</excludeResources>
565                     </configuration>
566                     <executions>
567                         <execution>
568                             <id>attach-sources</id>
569                             <phase>verify</phase>
570                             <goals>
571                                 <goal>jar-no-fork</goal>
572                             </goals>
573                         </execution>
574                     </executions>
575                 </plugin>
576
577
578                 <!-- MAVEN JAVADOC PLUGIN -->
579                 <plugin>
580                     <groupId>org.apache.maven.plugins</groupId>
581                     <artifactId>maven-javadoc-plugin</artifactId>
582                     <version>${javadoc.plugin.version}</version>
583                     <configuration>
584                         <!-- minimize console output messages -->
585                         <quiet>true</quiet>
586                         <verbose>false</verbose>
587                         <useStandardDocletOptions>false</useStandardDocletOptions>
588                     </configuration>
589                     <executions>
590                         <execution>
591                             <id>aggregate</id>
592                             <phase>site</phase>
593                             <goals>
594                                 <goal>aggregate</goal>
595                             </goals>
596                         </execution>
597                         <execution>
598                             <id>attach-javadoc</id>
599                             <goals>
600                                 <goal>jar</goal>
601                             </goals>
602                         </execution>
603                     </executions>
604                 </plugin>
605
606                 <!-- MAVEN BUNDLE PLUGIN -->
607                 <plugin>
608                     <groupId>org.apache.felix</groupId>
609                     <artifactId>maven-bundle-plugin</artifactId>
610                     <version>${bundle.plugin.version}</version>
611                     <extensions>true</extensions>
612                     <configuration>
613                         <instructions>
614                             <Embed-Dependency>*;inline=false;scope=compile</Embed-Dependency>
615                             <Embed-Transitive>true</Embed-Transitive>
616                             <Embed-Directory>lib</Embed-Directory>
617                         </instructions>
618                     </configuration>
619                     <executions>
620                         <execution>
621                             <id>Bundling CDAP Jar</id>
622                             <phase>package</phase>
623                             <goals>
624                                 <goal>bundle</goal>
625                             </goals>
626                         </execution>
627                     </executions>
628                 </plugin>
629
630                 <!-- MAVEN AUTO RUN PLUGIN -->
631                 <plugin>
632                     <groupId>org.apache.maven.plugins</groupId>
633                     <artifactId>maven-antrun-plugin</artifactId>
634                     <version>${autorun.plugin.version}</version>
635                 </plugin>
636
637                 <!-- SUREFIRE TEST PLUGIN -->
638                 <plugin>
639                     <groupId>org.apache.maven.plugins</groupId>
640                     <artifactId>maven-surefire-plugin</artifactId>
641                     <version>${surefire.plugin.version}</version>
642                     <configuration>
643                         <skipTests>${skip.unit.tests}</skipTests>
644                         <argLine>-Xmx2048m -Djava.awt.headless=true -XX:+UseConcMarkSweepGC
645                             -XX:OnOutOfMemoryError="kill -9 %p" -XX:+HeapDumpOnOutOfMemoryError
646                         </argLine>
647                         <redirectTestOutputToFile>${surefire.redirectTestOutputToFile}</redirectTestOutputToFile>
648                         <parallel>methods</parallel>
649                         <threadCount>8</threadCount>
650                         <forkCount>8</forkCount>
651                         <reuseForks>true</reuseForks>
652                         <reportFormat>xml</reportFormat>
653                         <trimStackTrace>false</trimStackTrace>
654                         <systemPropertyVariables>
655                             <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
656                             <logback.configurationFile>
657                                 ${basedir}/src/test/resources/logback-test.xml
658                             </logback.configurationFile>
659                             <HADOOP_HOME>${project.build.directory}</HADOOP_HOME>
660                         </systemPropertyVariables>
661                         <includes>
662                             <include>${unit.test.pattern}</include>
663                         </includes>
664                         <excludes>
665                             <exclude>${integration.test.pattern}</exclude>
666                         </excludes>
667                         <!-- Sets the VM argument line used when unit tests are run. -->
668                         <argLine>${surefireArgLine}</argLine>
669                     </configuration>
670                     <dependencies>
671                         <dependency>
672                             <groupId>org.apache.maven.surefire</groupId>
673                             <artifactId>surefire-junit47</artifactId>
674                             <version>${surefire.plugin.version}</version>
675                         </dependency>
676                     </dependencies>
677                 </plugin>
678
679                 <!-- FIND BUGS (STATIC CODE ANALYSIS) PLUGIN -->
680                 <plugin>
681                     <groupId>org.codehaus.mojo</groupId>
682                     <artifactId>findbugs-maven-plugin</artifactId>
683                     <version>${findbugs.plugin.version}</version>
684                     <configuration>
685                         <effort>Max</effort>
686                         <threshold>Low</threshold>
687                         <xmlOutput>true</xmlOutput>
688                         <!-- BUILD FAIL ON FINDBUGS ERRORS -->
689                         <failOnError>${findbugs.failOnError}</failOnError>
690                         <excludeFilterFile>${main.basedir}/findbugs-exclude.xml</excludeFilterFile>
691                         <outputDirectory>${project.reporting.outputDirectory}/findbugs</outputDirectory>
692                         <findbugsXmlOutputDirectory>${project.reporting.outputDirectory}/findbugs
693                         </findbugsXmlOutputDirectory>
694                     </configuration>
695                     <executions>
696                         <execution>
697                             <id>analyze-compile</id>
698                             <phase>compile</phase>
699                             <goals>
700                                 <goal>check</goal>
701                             </goals>
702                         </execution>
703                     </executions>
704                 </plugin>
705
706                 <!-- PMD PLUGIN SETUP -->
707                 <plugin>
708                     <groupId>org.apache.maven.plugins</groupId>
709                     <artifactId>maven-pmd-plugin</artifactId>
710                     <version>${pmd.plugin.version}</version>
711                     <configuration>
712                         <sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
713                         <targetJdk>${compiler.target.version}</targetJdk>
714                         <linkXRef>false</linkXRef>
715                         <excludes>
716                             <!-- IGNORE PMD & CPD ANALYTICS MODEL FACADE OBJECTS -->
717                             <exclude>**/model/facade/**/*.java</exclude>
718                         </excludes>
719                         <!-- BUILD FAIL ON PMD VIOLATION -->
720                         <failOnViolation>${pmd.violation.buildfail}</failOnViolation>
721                         <targetDirectory>${project.reporting.outputDirectory}/pmd</targetDirectory>
722                     </configuration>
723                     <executions>
724                         <execution>
725                             <id>pmd-check</id>
726                             <goals>
727                                 <goal>check</goal>
728                             </goals>
729                             <configuration>
730                                 <printFailingErrors>true</printFailingErrors>
731                                 <excludeFromFailureFile>${main.basedir}/pmd-exclude.properties</excludeFromFailureFile>
732                             </configuration>
733                         </execution>
734                         <execution>
735                             <id>cpd-check</id>
736                             <goals>
737                                 <goal>cpd-check</goal>
738                             </goals>
739                             <configuration>
740                                 <printFailingErrors>true</printFailingErrors>
741                                 <excludeFromFailureFile>${main.basedir}/cpd-exclude.properties</excludeFromFailureFile>
742                             </configuration>
743                         </execution>
744                     </executions>
745                 </plugin>
746
747                 <!-- ECLIPSE PLUGIN -->
748                 <plugin>
749                     <groupId>org.apache.maven.plugins</groupId>
750                     <artifactId>maven-eclipse-plugin</artifactId>
751                     <version>${eclipe.plugin.version}</version>
752                 </plugin>
753
754
755                 <!-- LOMBOK PLUGIN -->
756                 <plugin>
757                     <groupId>org.projectlombok</groupId>
758                     <artifactId>lombok-maven-plugin</artifactId>
759                     <version>${lombok.plugin.version}</version>
760                     <executions>
761                         <execution>
762                             <id>delombok</id>
763                             <phase>generate-sources</phase>
764                             <goals>
765                                 <goal>delombok</goal>
766                             </goals>
767                             <configuration>
768                                 <addOutputDirectory>false</addOutputDirectory>
769                                 <sourceDirectory>src/main/java</sourceDirectory>
770                             </configuration>
771                         </execution>
772                     </executions>
773                 </plugin>
774
775
776                 <!-- JGIT FLOW PLUGIN -->
777
778                 <plugin>
779                     <groupId>external.atlassian.jgitflow</groupId>
780                     <artifactId>jgitflow-maven-plugin</artifactId>
781                     <version>${jgitflow.plugin.version}</version>
782                     <configuration>
783                         <!-- Enable this to push to origin using SSH keys -->
784                         <enableSshAgent>true</enableSshAgent>
785                         <!-- Keep your maven sub modules at the same version as the parent POM -->
786                         <autoVersionSubmodules>true</autoVersionSubmodules>
787                         <!--
788                           Pushing in-development features to origin allows all devs to see what each other
789                           are working on
790                         -->
791                         <pushFeatures>true</pushFeatures>
792                         <!--
793                           This allows the CI server (e.g. Jenkins) to automatically push new releases to
794                           origin; you can then either manually deploy them or, if you are doing Continuous
795                           Deployments, auto-deploy them to prod
796                         -->
797                         <pushReleases>true</pushReleases>
798                         <!--
799                           Hot Fixes should be pushed to origin as well so that any dev can pick them up
800                         -->
801                         <pushHotfixes>true</pushHotfixes>
802                         <!--
803                           Prevents deployments from dev workstations so that they can be done by a CI
804                           server
805                         -->
806                         <flowInitContext>
807                             <masterBranchName>master</masterBranchName>
808                             <developBranchName>develop</developBranchName>
809                             <featureBranchPrefix>feature</featureBranchPrefix>
810                             <releaseBranchPrefix>release</releaseBranchPrefix>
811                             <hotfixBranchPrefix>hotfix</hotfixBranchPrefix>
812                         </flowInitContext>
813                         <noDeploy>true</noDeploy>
814                     </configuration>
815                 </plugin>
816
817                 <!-- JAR PLUGIN -->
818                 <plugin>
819                     <groupId>org.apache.maven.plugins</groupId>
820                     <artifactId>maven-jar-plugin</artifactId>
821                     <version>${jar.plugin.version}</version>
822                     <configuration>
823                         <archive>
824                             <manifest>
825                                 <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
826                             </manifest>
827                             <manifestEntries>
828                                 <Implementation-Build-Version>${project.version}</Implementation-Build-Version>
829                             </manifestEntries>
830                         </archive>
831                     </configuration>
832                 </plugin>
833
834                 <!-- DEPLOY PLUGIN -->
835                 <plugin>
836                     <groupId>org.apache.maven.plugins</groupId>
837                     <artifactId>maven-deploy-plugin</artifactId>
838                     <version>${deploy.plugin.version}</version>
839                 </plugin>
840
841                 <plugin>
842                     <groupId>org.apache.maven.plugins</groupId>
843                     <artifactId>maven-site-plugin</artifactId>
844                     <version>${maven.site.plugin}</version>
845                 </plugin>
846
847                 <plugin>
848                     <groupId>org.apache.maven.plugins</groupId>
849                     <artifactId>maven-jxr-plugin</artifactId>
850                     <version>${jxr.plugin.version}</version>
851                 </plugin>
852
853                 <plugin>
854                     <groupId>org.apache.maven.plugins</groupId>
855                     <artifactId>maven-project-info-reports-plugin</artifactId>
856                     <version>${project.info.reports.plugin.version}</version>
857                     <configuration>
858                         <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
859                         <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
860                     </configuration>
861                 </plugin>
862
863                 <plugin>
864                     <groupId>org.apache.maven.plugins</groupId>
865                     <artifactId>maven-surefire-report-plugin</artifactId>
866                     <version>${surefire.report.plugin.version}</version>
867                 </plugin>
868
869             </plugins>
870
871         </pluginManagement>
872
873         <plugins>
874
875             <plugin>
876                 <groupId>org.apache.maven.plugins</groupId>
877                 <artifactId>maven-compiler-plugin</artifactId>
878             </plugin>
879
880             <plugin>
881                 <groupId>org.apache.maven.plugins</groupId>
882                 <artifactId>maven-jar-plugin</artifactId>
883             </plugin>
884
885             <plugin>
886                 <groupId>org.apache.maven.plugins</groupId>
887                 <artifactId>maven-surefire-plugin</artifactId>
888                 <configuration>
889                     <skipTests>true</skipTests>
890                 </configuration>
891             </plugin>
892
893             <plugin>
894                 <groupId>org.apache.maven.plugins</groupId>
895                 <artifactId>maven-deploy-plugin</artifactId>
896             </plugin>
897
898
899             <plugin>
900                 <groupId>org.apache.maven.plugins</groupId>
901                 <artifactId>maven-source-plugin</artifactId>
902             </plugin>
903
904             <plugin>
905                 <groupId>org.apache.maven.plugins</groupId>
906                 <artifactId>maven-javadoc-plugin</artifactId>
907             </plugin>
908
909             <plugin>
910                 <groupId>org.apache.maven.plugins</groupId>
911                 <artifactId>maven-pmd-plugin</artifactId>
912             </plugin>
913
914             <plugin>
915                 <groupId>org.codehaus.mojo</groupId>
916                 <artifactId>findbugs-maven-plugin</artifactId>
917             </plugin>
918
919             <plugin>
920                 <groupId>external.atlassian.jgitflow</groupId>
921                 <artifactId>jgitflow-maven-plugin</artifactId>
922             </plugin>
923
924         </plugins>
925     </build>
926
927
928     <reporting>
929         <plugins>
930             <plugin>
931                 <groupId>org.apache.maven.plugins</groupId>
932                 <artifactId>maven-site-plugin</artifactId>
933             </plugin>
934             <plugin>
935                 <groupId>org.apache.maven.plugins</groupId>
936                 <artifactId>maven-jxr-plugin</artifactId>
937             </plugin>
938             <plugin>
939                 <groupId>org.apache.maven.plugins</groupId>
940                 <artifactId>maven-pmd-plugin</artifactId>
941             </plugin>
942             <plugin>
943                 <groupId>org.apache.maven.plugins</groupId>
944                 <artifactId>maven-project-info-reports-plugin</artifactId>
945             </plugin>
946             <plugin>
947                 <groupId>org.apache.maven.plugins</groupId>
948                 <artifactId>maven-surefire-report-plugin</artifactId>
949             </plugin>
950         </plugins>
951     </reporting>
952
953     <modules>
954         <module>dcae-analytics-test</module>
955         <module>dcae-analytics-model</module>
956         <module>dcae-analytics-common</module>
957         <module>dcae-analytics-dmaap</module>
958         <module>dcae-analytics-tca</module>
959         <module>dcae-analytics-cdap-common</module>
960         <module>dcae-analytics-cdap-tca</module>
961         <module>dcae-analytics-cdap-plugins</module>
962         <module>dcae-analytics-it</module>
963     </modules>
964
965 </project>