633350a8d94b8374b65dff09d88279a92f882a5d
[aai/model-loader.git] / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3     ============LICENSE_START=======================================================
4     org.onap.aai
5     ================================================================================
6     Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
7     Copyright © 2017-2018 European Software Marketing Ltd.
8     ================================================================================
9     Licensed under the Apache License, Version 2.0 (the "License");
10     you may not use this file except in compliance with the License.
11     You may obtain a copy of the License at
12
13           http://www.apache.org/licenses/LICENSE-2.0
14
15     Unless required by applicable law or agreed to in writing, software
16     distributed under the License is distributed on an "AS IS" BASIS,
17     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18     See the License for the specific language governing permissions and
19     limitations under the License.
20     ============LICENSE_END=========================================================
21 -->
22 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23                  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
24         <modelVersion>4.0.0</modelVersion>
25
26         <parent>
27                 <groupId>org.onap.oparent</groupId>
28                 <artifactId>oparent</artifactId>
29                 <version>2.1.0</version>
30                 <relativePath />
31         </parent>
32
33         <groupId>org.onap.aai.model-loader</groupId>
34         <artifactId>model-loader</artifactId>
35         <name>aai-model-loader</name>
36         <version>1.14.0-SNAPSHOT</version>
37
38         <dependencyManagement>
39                 <dependencies>
40                         <dependency>
41                                 <groupId>org.springframework.boot</groupId>
42                                 <artifactId>spring-boot-dependencies</artifactId>
43                                 <version>${spring-boot.version}</version>
44                                 <type>pom</type>
45                                 <scope>import</scope>
46                         </dependency>
47                         <dependency>
48                                 <groupId>org.springframework.cloud</groupId>
49                                 <artifactId>spring-cloud-dependencies</artifactId>
50                                 <version>${spring-cloud.version}</version>
51                                 <type>pom</type>
52                                 <scope>import</scope>
53                         </dependency>
54                 </dependencies>
55         </dependencyManagement>
56
57         <properties>
58                 <start-class>org.onap.aai.modelloader.service.ModelLoaderApplication</start-class>
59                 <nexusproxy>https://nexus.onap.org</nexusproxy>
60                 <docker.location>${basedir}/target</docker.location>
61                 <spring-boot.version>2.4.13</spring-boot.version>
62                 <spring-cloud.version>2020.0.2</spring-cloud.version>
63                 <apache.commons-text.version>1.10.0</apache.commons-text.version>
64                 <commons-compress.version>1.22</commons-compress.version>
65                 <gson.version>2.10.1</gson.version>
66                 <hamcrest-all.version>1.3</hamcrest-all.version>
67                 <babel.version>1.13.0</babel.version>
68                 <aai.rest.client.version>1.2.1</aai.rest.client.version>
69                 <sdc-distribution-client.version>2.1.1</sdc-distribution-client.version>
70                 <logback.version>1.2.11</logback.version>
71                 <!-- docker related properties -->
72                 <docker.fabric.version>0.39.0</docker.fabric.version>
73                 <aai.docker.version>1.0.0</aai.docker.version>
74                 <aai.build.directory>${project.build.directory}/${project.artifactId}-${project.version}-build/</aai.build.directory>
75                 <aai.docker.namespace>onap</aai.docker.namespace>
76                 <aai.base.image>alpine</aai.base.image>
77                 <aai.base.image.version>1.13.2</aai.base.image.version>
78                 <!-- This will be used for the docker images as the default format of maven build has issues -->
79                 <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
80
81                 <sonar.jacoco.reportPath />
82                 <sonar.jacoco.itReportPath />
83                 <sonar.jacoco.reportMissing.force.zero />
84
85                 <jacoco.line.coverage.limit>0.75</jacoco.line.coverage.limit>
86                 <jacoco.version>0.8.5</jacoco.version>
87                 <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
88                 <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
89                 <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
90                 <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
91
92                 <sonar.scanner.version>3.7.0.1746</sonar.scanner.version>
93
94                 <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
95                 <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
96                 <maven-compiler-plugin.source>11</maven-compiler-plugin.source>
97                 <maven-compiler-plugin.target>11</maven-compiler-plugin.target>
98                 <maven-compiler-plugin.test.source>11</maven-compiler-plugin.test.source>
99                 <maven-compiler-plugin.test.target>11</maven-compiler-plugin.test.target>
100         </properties>
101
102         <distributionManagement>
103                 <repository>
104                         <id>ecomp-releases</id>
105                         <name>ECOMP Release Repository</name>
106                         <url>${nexusproxy}/content/repositories/releases/</url>
107                 </repository>
108                 <snapshotRepository>
109                         <id>ecomp-snapshots</id>
110                         <name>ECOMP Snapshot Repository</name>
111                         <url>${nexusproxy}/content/repositories/snapshots/</url>
112                 </snapshotRepository>
113         </distributionManagement>
114
115         <profiles>
116                 <!-- Docker profile to be used for building docker image and pushing to nexus -->
117                 <profile>
118                         <id>docker</id>
119                         <build>
120                                 <plugins>
121                                         <plugin>
122                                                 <groupId>org.codehaus.mojo</groupId>
123                                                 <artifactId>build-helper-maven-plugin</artifactId>
124                                                 <version>3.0.0</version>
125                                                 <executions>
126                                                         <execution>
127                                                                 <phase>pre-clean</phase>
128                                                                 <id>parse-version</id>
129                                                                 <goals>
130                                                                         <goal>parse-version</goal>
131                                                                 </goals>
132                                                         </execution>
133                                                 </executions>
134                                         </plugin>
135                                         <plugin>
136                                                 <groupId>org.codehaus.groovy.maven</groupId>
137                                                 <artifactId>gmaven-plugin</artifactId>
138                                                 <version>1.0</version>
139                                                 <executions>
140                                                         <execution>
141                                                                 <phase>pre-clean</phase>
142                                                                 <goals>
143                                                                         <goal>execute</goal>
144                                                                 </goals>
145                                                                 <configuration>
146                                                                         <source>
147                                                                                 def userAaiBaseImage = session.userProperties['aai.base.image'];
148                                                                                 def userAaiCommonVersion = session.userProperties['aai.base.image.version'];
149                                                                                 if (userAaiCommonVersion != null) {
150                                                                                         project.properties['aai.base.image.version'] = userAaiCommonVersion;
151                                                                                 }
152                                                                                 if (userAaiBaseImage != null) {
153                                                                                         project.properties['aai.base.image'] = userAaiBaseImage;
154                                                                                 }
155                                                                                 log.info 'Base image flavour: ' + project.properties['aai.base.image'];
156                                                                                 log.info 'Base image version: ' + project.properties['aai.base.image.version'];
157                                                                         </source>
158                                                                 </configuration>
159                                                         </execution>
160                                                 </executions>
161                                         </plugin>
162                                         <plugin>
163                                                 <groupId>io.fabric8</groupId>
164                                                 <artifactId>docker-maven-plugin</artifactId>
165                                                 <version>${docker.fabric.version}</version>
166                                                 <configuration>
167                                                         <verbose>true</verbose>
168                                                         <apiVersion>1.23</apiVersion>
169                                                         <images>
170                                                                 <image>
171                                                                         <name>${docker.push.registry}/${aai.docker.namespace}/${project.artifactId}:%l</name>
172                                                                         <build>
173                                                                                 <filter>@</filter>
174                                                                                 <tags>
175                                                                                         <tag>latest</tag>
176                                                                                         <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-latest</tag>
177                                                                                         <tag>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}-STAGING-${maven.build.timestamp}</tag>
178                                                                                 </tags>
179                                                                                 <cleanup>try</cleanup>
180                                                                                 <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
181                                                                                 <assembly>
182                                                                                         <inline>
183                                                                                                 <fileSets>
184                                                                                                         <fileSet>
185                                                                                                                 <directory>${aai.build.directory}</directory>
186                                                                                                                 <outputDirectory>/${project.artifactId}</outputDirectory>
187                                                                                                         </fileSet>
188                                                                                                 </fileSets>
189                                                                                         </inline>
190                                                                                 </assembly>
191                                                                         </build>
192                                                                 </image>
193                                                         </images>
194                                                 </configuration>
195                                                 <executions>
196                                                         <execution>
197                                                                 <id>clean-images</id>
198                                                                 <phase>pre-clean</phase>
199                                                                 <goals>
200                                                                         <goal>remove</goal>
201                                                                 </goals>
202                                                                 <configuration>
203                                                                         <removeAll>true</removeAll>
204                                                                 </configuration>
205                                                         </execution>
206                                                         <execution>
207                                                                 <id>generate-images</id>
208                                                                 <phase>package</phase>
209                                                                 <goals>
210                                                                         <goal>build</goal>
211                                                                 </goals>
212                                                         </execution>
213                                                         <execution>
214                                                                 <id>push-images</id>
215                                                                 <phase>deploy</phase>
216                                                                 <goals>
217                                                                         <goal>push</goal>
218                                                                 </goals>
219                                                         </execution>
220                                                 </executions>
221                                         </plugin>
222                                 </plugins>
223                         </build>
224                 </profile>
225         </profiles>
226
227         <dependencies>
228                 <dependency>
229                         <groupId>org.springframework.boot</groupId>
230                         <artifactId>spring-boot-starter-jetty</artifactId>
231                 </dependency>
232                 <dependency>
233                         <groupId>org.springframework.boot</groupId>
234                         <artifactId>spring-boot-starter-web</artifactId>
235                         <exclusions>
236                                 <exclusion>
237                                         <groupId>org.springframework.boot</groupId>
238                                         <artifactId>spring-boot-starter-tomcat</artifactId>
239                                 </exclusion>
240                         </exclusions>
241                 </dependency>
242                 <dependency>
243                         <groupId>org.springframework.boot</groupId>
244                         <artifactId>spring-boot-starter-aop</artifactId>
245                         <scope>test</scope>
246                 </dependency>
247                 <dependency>
248                         <groupId>org.apache.kafka</groupId>
249                         <artifactId>kafka-clients</artifactId>
250                         <!-- <version>3.3.1</version> -->
251                 </dependency>
252                 <dependency>
253                         <groupId>org.springframework.kafka</groupId>
254                         <artifactId>spring-kafka</artifactId>
255                         <!-- <version>3.1.2</version> -->
256                 </dependency>
257                 <dependency>
258                         <groupId>org.springframework.kafka</groupId>
259                         <artifactId>spring-kafka-test</artifactId>
260                         <!-- <version>3.1.1</version> -->
261                         <scope>test</scope>
262                 </dependency>
263                 <dependency>
264                         <groupId>org.onap.aai</groupId>
265                         <artifactId>babel</artifactId>
266                         <version>${babel.version}</version>
267                         <classifier>client</classifier>
268                         <exclusions>
269                                 <exclusion>
270                                         <groupId>*</groupId>
271                                         <artifactId>*</artifactId>
272                                 </exclusion>
273                         </exclusions>
274                 </dependency>
275                 <dependency>
276                         <groupId>org.glassfish.jersey.core</groupId>
277                         <artifactId>jersey-common</artifactId>
278                         <scope>test</scope>
279                 </dependency>
280                 <dependency>
281                         <groupId>org.onap.aai</groupId>
282                         <artifactId>rest-client</artifactId>
283                         <version>${aai.rest.client.version}</version>
284                 </dependency>
285                 <dependency>
286                         <groupId>com.google.code.gson</groupId>
287                         <artifactId>gson</artifactId>
288                         <version>${gson.version}</version>
289                 </dependency>
290
291                 <!-- Test dependencies -->
292                 <!-- https://mvnrepository.com/artifact/com.mikesamuel/json-sanitizer -->
293                 <dependency>
294                         <groupId>com.mikesamuel</groupId>
295                         <artifactId>json-sanitizer</artifactId>
296                         <version>1.2.3</version>
297                 </dependency>
298
299                 <!-- Common logging framework -->
300                 <dependency>
301                         <groupId>org.onap.aai.logging-service</groupId>
302                         <artifactId>common-logging</artifactId>
303                         <version>1.5.0</version>
304                 </dependency>
305                 <dependency>
306                         <groupId>ch.qos.logback</groupId>
307                         <artifactId>logback-classic</artifactId>
308                         <version>${logback.version}</version>
309                         <!--$NO-MVN-MAN-VER$ -->
310                 </dependency>
311                 <dependency>
312                         <groupId>ch.qos.logback</groupId>
313                         <artifactId>logback-core</artifactId>
314                         <version>${logback.version}</version>
315                         <!--$NO-MVN-MAN-VER$ -->
316                 </dependency>
317                 <dependency>
318                         <groupId>org.onap.sdc.sdc-distribution-client</groupId>
319                         <artifactId>sdc-distribution-client</artifactId>
320                         <version>${sdc-distribution-client.version}</version>
321                 </dependency>
322                 <dependency>
323                         <groupId>org.json</groupId>
324                         <artifactId>json</artifactId>
325                         <version>20131018</version>
326                         <!--$NO-MVN-MAN-VER$ -->
327                 </dependency>
328                 <dependency>
329                         <groupId>org.eclipse.jetty</groupId>
330                         <artifactId>jetty-security</artifactId>
331                 </dependency>
332                 <dependency>
333                         <groupId>jline</groupId>
334                         <artifactId>jline</artifactId>
335                         <version>2.12.1</version>
336                 </dependency>
337                 <dependency>
338                         <groupId>org.apache.commons</groupId>
339                         <artifactId>commons-compress</artifactId>
340                         <version>${commons-compress.version}</version>
341                 </dependency>
342                 <dependency>
343                         <groupId>commons-io</groupId>
344                         <artifactId>commons-io</artifactId>
345                         <version>2.11.0</version>
346                 </dependency>
347                 <dependency>
348                         <groupId>org.apache.commons</groupId>
349                         <artifactId>commons-text</artifactId>
350                         <version>${apache.commons-text.version}</version>
351                 </dependency>
352                 <dependency>
353                         <groupId>org.springframework.cloud</groupId>
354                         <artifactId>spring-cloud-starter-sleuth</artifactId>
355                 </dependency>
356                 <dependency>
357                                 <groupId>org.springframework.cloud</groupId>
358                                 <artifactId>spring-cloud-sleuth-zipkin</artifactId>
359                 </dependency>
360                 <dependency>
361                         <groupId>com.fasterxml.jackson.dataformat</groupId>
362                         <artifactId>jackson-dataformat-xml</artifactId>
363                 </dependency>
364
365                 <!-- Test dependencies -->
366                 <dependency>
367                         <groupId>org.hamcrest</groupId>
368                         <artifactId>hamcrest-all</artifactId>
369                         <version>${hamcrest-all.version}</version>
370                         <scope>test</scope>
371                 </dependency>
372                 <dependency>
373                         <groupId>org.junit.jupiter</groupId>
374                         <artifactId>junit-jupiter</artifactId>
375                         <scope>test</scope>
376                 </dependency>
377                 <dependency>
378                         <groupId>org.junit.jupiter</groupId>
379                         <artifactId>junit-jupiter-api</artifactId>
380                         <scope>test</scope>
381                 </dependency>
382                 <dependency>
383                         <groupId>org.mockito</groupId>
384                         <artifactId>mockito-core</artifactId>
385                         <scope>test</scope>
386                 </dependency>
387                 <dependency>
388                         <groupId>org.springframework.boot</groupId>
389                         <artifactId>spring-boot-starter-test</artifactId>
390                         <scope>test</scope>
391                         <exclusions>
392                                 <exclusion>
393                                         <groupId>com.vaadin.external.google</groupId>
394                                         <artifactId>android-json</artifactId>
395                                 </exclusion>
396                         </exclusions>
397                 </dependency>
398                 <dependency>
399                         <groupId>org.springframework.cloud</groupId>
400                         <artifactId>spring-cloud-contract-wiremock</artifactId>
401                         <scope>test</scope>
402                 </dependency>
403         </dependencies>
404
405         <!-- Plugins and repositories -->
406         <pluginRepositories>
407                 <pluginRepository>
408                         <id>central</id>
409                         <url>https://repo1.maven.org/maven2</url>
410                 </pluginRepository>
411                 <pluginRepository>
412                         <id>EvoSuite</id>
413                         <name>EvoSuite Repository</name>
414                         <url>https://www.evosuite.org/m2</url>
415                 </pluginRepository>
416         </pluginRepositories>
417
418         <repositories>
419                 <repository>
420                         <id>central</id>
421                         <name>Maven 2 repository 2</name>
422                         <url>https://repo2.maven.org/maven2/</url>
423                 </repository>
424                 <repository>
425                         <id>ecomp-releases</id>
426                         <name>ECOMP Release Repository</name>
427                         <url>${nexusproxy}/content/repositories/releases/</url>
428                 </repository>
429                 <repository>
430                         <id>ecomp-snapshots</id>
431                         <name>ECOMP Snapshot Repository</name>
432                         <url>${nexusproxy}/content/repositories/snapshots/</url>
433                 </repository>
434                 <repository>
435                         <id>ecomp-staging</id>
436                         <name>ECOMP Staging Repository</name>
437                         <url>${nexusproxy}/content/repositories/staging/</url>
438                 </repository>
439         </repositories>
440
441         <build>
442                 <plugins>
443                         <plugin>
444                                 <groupId>org.apache.maven.plugins</groupId>
445                                 <artifactId>maven-compiler-plugin</artifactId>
446                                 <version>${maven-compiler-plugin.version}</version>
447                                 <inherited>true</inherited>
448                                 <configuration>
449                                         <source>${maven-compiler-plugin.source}</source>
450                                         <target>${maven-compiler-plugin.target}</target>
451                                         <testSource>${maven-compiler-plugin.test.source}</testSource>
452                                         <testTarget>${maven-compiler-plugin.test.target}</testTarget>
453                                 </configuration>
454                         </plugin>
455                         <plugin>
456                                 <groupId>org.springframework.boot</groupId>
457                                 <artifactId>spring-boot-maven-plugin</artifactId>
458                                 <version>${spring-boot.version}</version>
459                                 <configuration>
460                                         <executable>true</executable>
461                                 </configuration>
462                                 <executions>
463                                         <execution>
464                                                 <goals>
465                                                         <goal>repackage</goal>
466                                                 </goals>
467                                         </execution>
468                                 </executions>
469                         </plugin>
470                         <plugin>
471                                 <groupId>com.mycila</groupId>
472                                 <artifactId>license-maven-plugin</artifactId>
473                                 <version>3.0</version>
474                                 <configuration>
475                                         <header>License.txt</header>
476                                         <includes>
477                                                 <include>src/main/java/**</include>
478                                                 <include>src/test/java/**</include>
479                                                 <include>version/properties</include>
480                                                 <include>pom.xml</include>
481                                         </includes>
482                                         <skipExistingHeaders>true</skipExistingHeaders>
483                                 </configuration>
484                                 <executions>
485                                         <execution>
486                                                 <goals>
487                                                         <!-- Set goal to "format" to auto update license headers -->
488                                                         <goal>check</goal>
489                                                 </goals>
490                                                 <phase>process-sources</phase>
491                                         </execution>
492                                 </executions>
493                         </plugin>
494                         <plugin>
495                                 <groupId>org.apache.maven.plugins</groupId>
496                                 <artifactId>maven-deploy-plugin</artifactId>
497                                 <configuration>
498                                         <classifier>client</classifier>
499                                 </configuration>
500                         </plugin>
501                         <plugin>
502                                 <artifactId>maven-assembly-plugin</artifactId>
503                                 <configuration>
504                                         <descriptors>
505                                                 <descriptor>src/main/assembly/descriptor.xml</descriptor>
506                                         </descriptors>
507                                 </configuration>
508                                 <executions>
509                                         <execution>
510                                                 <id>make-assembly</id>
511                                                 <phase>package</phase>
512                                                 <goals>
513                                                         <goal>single</goal>
514                                                 </goals>
515                                         </execution>
516                                 </executions>
517                         </plugin>
518
519                         <!-- once we connect aai-parent or oparent 3.0+ we can take out this
520                              whole section -->
521
522                         <plugin>
523                                 <groupId>org.jacoco</groupId>
524                                 <artifactId>jacoco-maven-plugin</artifactId>
525                                 <version>${jacoco.version}</version>
526                                 <configuration>
527                                         <!-- Note: This exclusion list should match <sonar.exclusions> property
528                      above -->
529                                         <excludes>
530                                                 <exclude>**/gen/**</exclude>
531                                                 <exclude>**/generated-sources/**</exclude>
532                                                 <exclude>**/yang-gen/**</exclude>
533                                                 <exclude>**/pax/**</exclude>
534                                         </excludes>
535                                 </configuration>
536                                 <executions>
537                                         <!-- Prepares the property pointing to the JaCoCo runtime agent which
538                      is passed as VM argument when Maven the Surefire plugin is executed. -->
539                                         <execution>
540                                                 <id>pre-unit-test</id>
541                                                 <goals>
542                                                         <goal>prepare-agent</goal>
543                                                 </goals>
544                                                 <configuration>
545                                                         <!-- Sets the path to the file which contains the execution data
546                                  . -->
547                                                         <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
548                                                         <!-- Sets the name of the property containing the settings for JaCoCo
549                                  runtime agent. -->
550                                                         <propertyName>surefireArgLine</propertyName>
551                                                 </configuration>
552                                         </execution>
553                                         <!-- Ensures that the code coverage report for unit tests is created
554                      after unit tests have been run. -->
555                                         <execution>
556                                                 <id>post-unit-test</id>
557                                                 <phase>test</phase>
558                                                 <goals>
559                                                         <goal>report</goal>
560                                                 </goals>
561                                                 <configuration>
562                                                         <!-- Sets the path to the file which contains the execution data
563                                  . -->
564                                                         <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
565                                                         <!-- Sets the output directory for the code coverage report. -->
566                                                         <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
567                                                 </configuration>
568                                         </execution>
569                                         <execution>
570                                                 <id>pre-integration-test</id>
571                                                 <phase>pre-integration-test</phase>
572                                                 <goals>
573                                                         <goal>prepare-agent</goal>
574                                                 </goals>
575                                                 <configuration>
576                                                         <!-- Sets the path to the file which contains the execution data
577                                  . -->
578                                                         <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
579                                                         <!-- Sets the name of the property containing the settings for JaCoCo
580                                  runtime agent. -->
581                                                         <propertyName>failsafeArgLine</propertyName>
582                                                 </configuration>
583                                         </execution>
584                                         <!-- Ensures that the code coverage report for integration tests after
585                      integration tests have been run. -->
586                                         <execution>
587                                                 <id>post-integration-test</id>
588                                                 <phase>post-integration-test</phase>
589                                                 <goals>
590                                                         <goal>report</goal>
591                                                 </goals>
592                                                 <configuration>
593                                                         <!-- Sets the path to the file which contains the execution data
594                                  . -->
595                                                         <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
596                                                         <!-- Sets the output directory for the code coverage report. -->
597                                                         <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
598                                                 </configuration>
599                                         </execution>
600                                         <execution>
601                                                 <id>default-check</id>
602                                                 <goals>
603                                                         <goal>check</goal>
604                                                 </goals>
605                                                 <configuration>
606                                                         <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
607                                                         <rules>
608                                                                 <rule implementation="org.jacoco.maven.RuleConfiguration">
609                                                                         <element>BUNDLE</element>
610                                                                         <limits>
611                                                                                 <limit implementation="org.jacoco.report.check.Limit">
612                                                                                         <counter>LINE</counter>
613                                                                                         <value>COVEREDRATIO</value>
614                                                                                         <minimum>${jacoco.line.coverage.limit}</minimum>
615                                                                                 </limit>
616                                                                         </limits>
617                                                                 </rule>
618                                                         </rules>
619                                                 </configuration>
620                                         </execution>
621                                 </executions>
622                         </plugin>
623                         <plugin>
624                                 <groupId>org.apache.maven.plugins</groupId>
625                                 <artifactId>maven-surefire-plugin</artifactId>
626                                 <version>3.0.0-M4</version>
627                                 <configuration>
628                                         <!-- Sets the VM argument line used when unit tests are run. -->
629                                         <argLine>${surefireArgLine}</argLine>
630                                         <!-- Excludes integration tests when unit tests are run. -->
631                                         <excludes>
632                                                 <exclude>**/IT*.java</exclude>
633                                         </excludes>
634                                 </configuration>
635                         </plugin>
636                         <plugin>
637                                 <groupId>org.apache.maven.plugins</groupId>
638                                 <artifactId>maven-failsafe-plugin</artifactId>
639                                 <version>3.0.0-M4</version>
640                                 <executions>
641                                         <!-- Ensures that both integration-test and verify goals of the Failsafe
642                      Maven plugin are executed. -->
643                                         <execution>
644                                                 <id>integration-tests</id>
645                                                 <goals>
646                                                         <goal>integration-test</goal>
647                                                         <goal>verify</goal>
648                                                 </goals>
649                                                 <configuration>
650                                                         <!-- Sets the VM argument line used when integration tests are run. -->
651                                                         <argLine>${failsafeArgLine}</argLine>
652                                                 </configuration>
653                                         </execution>
654                                 </executions>
655                         </plugin>
656                         <plugin>
657                                 <groupId>org.sonarsource.scanner.maven</groupId>
658                                 <artifactId>sonar-maven-plugin</artifactId>
659                                 <version>${sonar.scanner.version}</version>
660                         </plugin>
661                         <!-- end removable sonar config -->
662
663
664
665                 </plugins>
666         </build>
667 </project>