Modify sonar settings to include all sub-modules 77/31977/2
authorPamela Dragosh <pdragosh@research.att.com>
Fri, 16 Feb 2018 15:29:09 +0000 (10:29 -0500)
committerPamela Dragosh <pdragosh@research.att.com>
Fri, 16 Feb 2018 15:47:26 +0000 (10:47 -0500)
We are now including all the sub-modules coverage into one file.
This will now reflect correct statistics for any sub-module that
tests code located in another sub-module.

Issue-ID: POLICY-634
Change-Id: I37f1f02fa1763bd02adb425b8a6f5ddbb760a9f0
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
pom.xml

diff --git a/pom.xml b/pom.xml
index f43aa0c..bab777b 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,22 +1,22 @@
-<!--
-  ============LICENSE_START=======================================================
-  ONAP Policy Engine - Drools PDP
+<!-- 
+  ============LICENSE_START======================================================= 
+  ONAP policy 
   ================================================================================
   Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
-  
+
        http://www.apache.org/licenses/LICENSE-2.0
-  
+
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-  ============LICENSE_END=========================================================
-  -->
+  ============LICENSE_END========================================================= 
+-->
 
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
@@ -26,7 +26,7 @@
                <groupId>org.onap.oparent</groupId>
                <artifactId>oparent</artifactId>
                <version>0.1.1</version>
-               <relativePath/>
+               <relativePath />
        </parent>
 
        <groupId>org.onap.policy.common</groupId>
        <description>Common Modules for Policy-Engine in both XACML and Drools flavor</description>
 
        <properties>
+               <!-- Project common build settings -->
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>1.8</maven.compiler.target>
-               <logback.version>1.2.3</logback.version>
-               <javax.persistence.api.version>1.0.2</javax.persistence.api.version>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+               <!-- Project path properties -->
                <nexusproxy>https://nexus.onap.org</nexusproxy>
-                <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
+               <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
                <releases.path>content/repositories/releases/</releases.path>
                <snapshots.path>content/repositories/snapshots/</snapshots.path>
-               <staging.path>content/repositories/staging/</staging.path>                
+               <staging.path>content/repositories/staging/</staging.path>
+
+               <!-- sonar/jacoco overrides -->
+               <!-- Overriding oparent default sonar/jacoco settings Combine all our reports 
+                       into one file shared across sub-modules -->
+               <sonar.jacoco.reportPath>${project.basedir}/../target/code-coverage/jacoco-ut.exec</sonar.jacoco.reportPath>
+               <sonar.jacoco.itReportPath>${project.basedir}/../target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+               <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
+
+               <!-- Project common dependency versions -->
+               <logback.version>1.2.3</logback.version>
+               <javax.persistence.api.version>1.0.2</javax.persistence.api.version>
        </properties>
 
 
                </site>
        </distributionManagement>
 
-        <repositories>
-                <!-- LF repositories -->
-                <repository>
-                        <id>ecomp-releases</id>
-                        <name>Release Repository</name>
-                        <url>${nexusproxy}/content/repositories/releases/</url>
-                </repository>
-                <repository>
-                        <id>ecomp-staging</id>
-                        <name>Staging Repository</name>
-                        <url>${nexusproxy}/content/repositories/staging/</url>
-                </repository>
-                <repository>
-                        <id>ecomp-snapshots</id>
-                        <name>Snapshots Repository</name>
-                        <url>${nexusproxy}/content/repositories/snapshots/</url>
-                </repository>
-                <repository>
-                        <id>ecomp-public</id>
-                        <name>Public Repository</name>
-                        <url>${nexusproxy}/content/repositories/public/</url>
-                </repository>
-                <!-- LF repositories END-->
-        </repositories>
+       <repositories>
+               <!-- LF repositories -->
+               <repository>
+                       <id>ecomp-releases</id>
+                       <name>Release Repository</name>
+                       <url>${nexusproxy}/content/repositories/releases/</url>
+               </repository>
+               <repository>
+                       <id>ecomp-staging</id>
+                       <name>Staging Repository</name>
+                       <url>${nexusproxy}/content/repositories/staging/</url>
+               </repository>
+               <repository>
+                       <id>ecomp-snapshots</id>
+                       <name>Snapshots Repository</name>
+                       <url>${nexusproxy}/content/repositories/snapshots/</url>
+               </repository>
+               <repository>
+                       <id>ecomp-public</id>
+                       <name>Public Repository</name>
+                       <url>${nexusproxy}/content/repositories/public/</url>
+               </repository>
+               <!-- LF repositories END -->
+       </repositories>
 
        <build>
+               <pluginManagement>
+                       <plugins>
+                       <plugin>
+                         <groupId>org.jacoco</groupId>
+                         <artifactId>jacoco-maven-plugin</artifactId>
+                         <version>${jacoco.version}</version>
+                         <configuration>
+                           <!-- Note: This exclusion list should match <sonar.exclusions>
+                        property above -->
+                           <excludes>
+                             <exclude>**/gen/**</exclude>
+                             <exclude>**/generated-sources/**</exclude>
+                             <exclude>**/yang-gen/**</exclude>
+                             <exclude>**/pax/**</exclude>
+                           </excludes>
+                         </configuration>
+                         <executions>
+                           <!--
+                       Prepares the property pointing to the JaCoCo runtime agent which
+                       is passed as VM argument when Maven the Surefire plugin is executed.
+                       -->
+                           <execution>
+                             <id>pre-unit-test</id>
+                             <goals>
+                               <goal>prepare-agent</goal>
+                             </goals>
+                             <configuration>
+                                               <destFile>${sonar.jacoco.reportPath}</destFile>
+                             </configuration>
+                           </execution>
+                           <!--
+                       Ensures that the code coverage report for unit tests is created after
+                       unit tests have been run.
+                       -->
+                           <execution>
+                             <id>post-unit-test</id>
+                             <phase>test</phase>
+                             <goals>
+                               <goal>report</goal>
+                             </goals>
+                             <configuration>
+                                               <dataFile>${sonar.jacoco.reportPath}</dataFile>
+                             </configuration>
+                           </execution>
+                        </executions>
+                       </plugin>
+                               <plugin>
+                                       <groupId>org.eclipse.m2e</groupId>
+                                       <artifactId>lifecycle-mapping</artifactId>
+                                       <version>1.0.0</version>
+                                       <configuration>
+                                               <lifecycleMappingMetadata>
+                                                       <pluginExecutions>
+                                                               <pluginExecution>
+                                                                       <pluginExecutionFilter>
+                                                                               <groupId>org.apache.maven.plugins</groupId>
+                                                                               <artifactId>maven-checkstyle-plugin</artifactId>
+                                                                               <versionRange>2.17,)</versionRange>
+                                                                               <goals>
+                                                                                       <goal>check</goal>
+                                                                               </goals>
+                                                                       </pluginExecutionFilter>
+                                                                       <action>
+                                                                               <ignore />
+                                                                       </action>
+                                                               </pluginExecution>
+                                                       </pluginExecutions>
+                                               </lifecycleMappingMetadata>
+                                       </configuration>
+                               </plugin>
+                       </plugins>
+               </pluginManagement>
                <plugins>
+                       <plugin>
+                           <groupId>org.jacoco</groupId>
+                           <artifactId>jacoco-maven-plugin</artifactId>
+                           <executions>
+                               <execution>
+                                   <id>pre-unit-test</id>
+                                   <goals>
+                                       <goal>prepare-agent</goal>
+                                   </goals>
+                                           <configuration>
+                                                       <destFile>${sonar.jacoco.reportPath}</destFile>
+                                               <append>true</append>
+                                           </configuration>
+                               </execution>
+                                   <execution>
+                                     <id>post-unit-test</id>
+                                     <phase>test</phase>
+                                     <goals>
+                                       <goal>report</goal>
+                                     </goals>
+                                           <configuration>
+                                                       <dataFile>${sonar.jacoco.reportPath}</dataFile>
+                                           </configuration>
+                               </execution>
+                           </executions>
+                       </plugin>
                        <plugin>
                                <groupId>org.sonatype.plugins</groupId>
                                <artifactId>nexus-staging-maven-plugin</artifactId>
                                </configuration>
                        </plugin>
                        <plugin>
-                         <groupId>org.apache.maven.plugins</groupId>
-                         <artifactId>maven-site-plugin</artifactId>
-                         <dependencies>
-                           <dependency>
-                             <groupId>org.apache.maven.wagon</groupId>
-                             <artifactId>wagon-webdav-jackrabbit</artifactId>
-                             <version>2.10</version>
-                           </dependency>
-                         </dependencies>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-site-plugin</artifactId>
+                               <dependencies>
+                                       <dependency>
+                                               <groupId>org.apache.maven.wagon</groupId>
+                                               <artifactId>wagon-webdav-jackrabbit</artifactId>
+                                               <version>2.10</version>
+                                       </dependency>
+                               </dependencies>
                        </plugin>
                </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <groupId>org.eclipse.m2e</groupId>
-                    <artifactId>lifecycle-mapping</artifactId>
-                    <version>1.0.0</version>
-                    <configuration>
-                        <lifecycleMappingMetadata>
-                            <pluginExecutions>
-                                <pluginExecution>
-                                    <pluginExecutionFilter>
-                                        <groupId>org.apache.maven.plugins</groupId>
-                                        <artifactId>maven-checkstyle-plugin</artifactId>
-                                        <versionRange>2.17,)</versionRange>
-                                        <goals>
-                                            <goal>check</goal>
-                                        </goals>
-                                    </pluginExecutionFilter>
-                                    <action>
-                                        <ignore />
-                                    </action>
-                                </pluginExecution>
-                            </pluginExecutions>
-                        </lifecycleMappingMetadata>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
        </build>
        <reporting>
-         <plugins>
-           <plugin>
-             <groupId>org.apache.maven.plugins</groupId>
-             <artifactId>maven-javadoc-plugin</artifactId>
-             <version>2.10.4</version>
-             <configuration>
-               <failOnError>false</failOnError>
-               <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
-               <docletArtifact>
-                 <groupId>org.umlgraph</groupId>
-                 <artifactId>umlgraph</artifactId>
-                 <version>5.6</version>
-               </docletArtifact>
-               <additionalparam>-views</additionalparam>
-               <useStandardDocletOptions>true</useStandardDocletOptions>
-             </configuration>
-           </plugin>
-         </plugins>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.maven.plugins</groupId>
+                               <artifactId>maven-javadoc-plugin</artifactId>
+                               <version>2.10.4</version>
+                               <configuration>
+                                       <failOnError>false</failOnError>
+                                       <doclet>org.umlgraph.doclet.UmlGraphDoc</doclet>
+                                       <docletArtifact>
+                                               <groupId>org.umlgraph</groupId>
+                                               <artifactId>umlgraph</artifactId>
+                                               <version>5.6</version>
+                                       </docletArtifact>
+                                       <additionalparam>-views</additionalparam>
+                                       <useStandardDocletOptions>true</useStandardDocletOptions>
+                               </configuration>
+                       </plugin>
+               </plugins>
        </reporting>
 </project>