497 lines
36 KiB

<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ WSO2 Inc. licenses this file to you 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.
-->
<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/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>carbon-devicemgt</artifactId>
<groupId>org.wso2.carbon.devicemgt</groupId>
<version>3.1.14-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>test-coverage</artifactId>
<name>WSO2 Carbon - Unit Test Coverage Generation</name>
<properties>
<target>target</target>
<coverge-report>coverage-reports</coverge-report>
<individual.test.report.name>jacoco-unit.exec</individual.test.report.name>
<classes>classes</classes>
<source>src/main/java</source>
<!-- certificate mgt component related properties -->
<certificate.mgt>certificate-mgt</certificate.mgt>
<certificate.mgt.api>${basedir}/../${certificate.mgt}/org.wso2.carbon.certificate.mgt.api</certificate.mgt.api>
<certificate.mgt.cert.admin>
${basedir}/../${certificate.mgt}/org.wso2.carbon.certificate.mgt.cert.admin.api
</certificate.mgt.cert.admin>
<certificate.mgt.core>
${basedir}/../${certificate.mgt}/org.wso2.carbon.certificate.mgt.core
</certificate.mgt.core>
<!-- Device mgt component related properties -->
<device.mgt>device-mgt</device.mgt>
<device.mgt.core>${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.core</device.mgt.core>
<device.mgt.common>${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.common</device.mgt.common>
<device.mgt.api>${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.api</device.mgt.api>
<device.mgt.extensions>${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.extensions</device.mgt.extensions>
<device.mgt.analytics.data>${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.analytics.data.publisher
</device.mgt.analytics.data>
<device.mgt.url.printer>
${basedir}/../${device.mgt}/org.wso2.carbon.device.mgt.url.printer
</device.mgt.url.printer>
<!-- api-mgt extensions component related properties -->
<api.extensions>apimgt-extensions</api.extensions>
<api.extension.application>
${basedir}/../${api.extensions}/org.wso2.carbon.apimgt.application.extension
</api.extension.application>
<api.extension.application.api>
${basedir}/../${api.extensions}/org.wso2.carbon.apimgt.application.extension.api
</api.extension.application.api>
<api.extension.handlers>${basedir}/../${api.extensions}/org.wso2.carbon.apimgt.handlers</api.extension.handlers>
<api.extension.client>
${basedir}/../${api.extensions}/org.wso2.carbon.apimgt.integration.client
</api.extension.client>
<api.extension.webapp>
${basedir}/../${api.extensions}/org.wso2.carbon.apimgt.webapp.publisher
</api.extension.webapp>
<!-- device-mgt extensions component related properties -->
<device.extensions>device-mgt-extensions</device.extensions>
<device.extensions.deployer>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.device.type.deployer
</device.extensions.deployer>
<device.extensions.pull>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.pull.notification
</device.extensions.pull>
<device.extensions.fcm>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm
</device.extensions.fcm>
<device.extensions.http>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.push.notification.provider.http
</device.extensions.http>
<device.extensions.mqtt>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt
</device.extensions.mqtt>
<device.extensions.xmpp>
${basedir}/../${device.extensions}/org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp
</device.extensions.xmpp>
<!-- Email Sender component related properties -->
<email.sender.core>${basedir}/../email-sender/org.wso2.carbon.email.sender.core</email.sender.core>
<!-- identity extensions component related properties -->
<identity.extensions>identity-extensions</identity.extensions>
<identity.oauth.extension>
${basedir}/../${identity.extensions}/org.wso2.carbon.device.mgt.oauth.extensions
</identity.oauth.extension>
<identity.backend.extension>
${basedir}/../${identity.extensions}/org.wso2.carbon.identity.authenticator.backend.oauth
</identity.backend.extension>
<identity.jwt.extension>
${basedir}/../${identity.extensions}/org.wso2.carbon.identity.jwt.client.extension
</identity.jwt.extension>
<!-- Policy Management component related properties -->
<policy.mgt>policy-mgt</policy.mgt>
<policy.mgt.complex.point>
${basedir}/../${policy.mgt}/org.wso2.carbon.complex.policy.decision.point
</policy.mgt.complex.point>
<policy.mgt.decision.point>
${basedir}/../${policy.mgt}/org.wso2.carbon.policy.decision.point
</policy.mgt.decision.point>
<policy.mgt.information.point>
${basedir}/../${policy.mgt}/org.wso2.carbon.policy.information.point
</policy.mgt.information.point>
<policy.mgt.common>${basedir}/../${policy.mgt}/org.wso2.carbon.policy.mgt.common</policy.mgt.common>
<policy.mgt.core>${basedir}/../${policy.mgt}/org.wso2.carbon.policy.mgt.core</policy.mgt.core>
<!-- Webapp authenticator framework component related properties -->
<webapp.authenticatore.frmework>
${basedir}/../webapp-authenticator-framework/org.wso2.carbon.webapp.authenticator.framework
</webapp.authenticatore.frmework>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>post-integration-test</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="mergeReports">
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpathref="maven.plugin.classpath" />
<if>
<and>
<available file="${certificate.mgt.core}/${target}/${coverge-report}/${individual.test.report.name}" />
<available file="${device.mgt.core}/${target}/${coverge-report}/${individual.test.report.name}" />
<available file="${email.sender.core}/${target}/${coverge-report}/${individual.test.report.name}" />
<available file="${policy.mgt.core}/${target}/${coverge-report}/${individual.test.report.name}" />
<available file="${webapp.authenticatore.frmework}/${target}/${coverge-report}/${individual.test.report.name}" />
<available file="${device.mgt.extensions}/${target}/${coverge-report}/${individual.test.report.name}" />
<!-- After adding the test cases need to list the exec files here-->
</and>
<then>
<taskdef name="report" classname="org.jacoco.ant.ReportTask">
<classpath path="${basedir}/target/jacoco-jars/org.jacoco.ant.jar" />
</taskdef>
<mkdir dir="${basedir}/target/coverage-report" />
<report>
<executiondata>
<fileset dir="${certificate.mgt.core}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.mgt.core}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${email.sender.core}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${policy.mgt.core}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${webapp.authenticatore.frmework}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.mgt.extensions}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${api.extension.webapp}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.mgt.analytics.data}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${identity.jwt.extension}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${api.extension.handlers}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.extensions.deployer}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.extensions.mqtt}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<fileset dir="${device.mgt.api}/${target}/${coverge-report}">
<include name="${individual.test.report.name}" />
</fileset>
<!-- Need to list the newly added exec files here -->
</executiondata>
<structure name="Carbon Device Management Component Coverage Report">
<group name="certificate-mgt">
<group name="org.wso2.carbon.certificate.mgt.core">
<classfiles>
<fileset dir="${certificate.mgt.core}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${certificate.mgt.core}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.certificate.mgt.api">
<classfiles>
<fileset dir="${certificate.mgt.api}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${certificate.mgt.api}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.certificate.mgt.cert.admin.api">
<classfiles>
<fileset dir="${certificate.mgt.cert.admin}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${certificate.mgt.cert.admin}/${source}" />
</sourcefiles>
</group>
</group>
<group name="device-mgt">
<group name="org.wso2.carbon.device.mgt.analytics.data.publisher">
<classfiles>
<fileset dir="${device.mgt.analytics.data}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.analytics.data}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.api">
<classfiles>
<fileset dir="${device.mgt.api}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.api}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.common">
<classfiles>
<fileset dir="${device.mgt.common}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.common}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.core">
<classfiles>
<fileset dir="${device.mgt.core}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.core}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions">
<classfiles>
<fileset dir="${device.mgt.extensions}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.extensions}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.url.printer">
<classfiles>
<fileset dir="${device.mgt.url.printer}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.mgt.url.printer}/${source}" />
</sourcefiles>
</group>
</group>
<group name="apimgt-extensions">
<group name="org.wso2.carbon.apimgt.integration.client">
<classfiles>
<fileset dir="${api.extension.client}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${api.extension.client}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.apimgt.application.extension">
<classfiles>
<fileset dir="${api.extension.application}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${api.extension.application}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.apimgt.application.extension.api">
<classfiles>
<fileset dir="${api.extension.application.api}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${api.extension.application.api}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.apimgt.handlers">
<classfiles>
<fileset dir="${api.extension.handlers}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${api.extension.handlers}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.apimgt.webapp.publisher">
<classfiles>
<fileset dir="${api.extension.webapp}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${api.extension.webapp}/${source}" />
</sourcefiles>
</group>
</group>
<group name="device-mgt-extensions">
<group name="org.wso2.carbon.device.mgt.extensions.device.type.deployer">
<classfiles>
<fileset dir="${device.extensions.deployer}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.deployer}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions.push.notification.provider.fcm">
<classfiles>
<fileset dir="${device.extensions.fcm}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.fcm}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions.push.notification.provider.http">
<classfiles>
<fileset dir="${device.extensions.http}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.http}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions.push.notification.provider.mqtt">
<classfiles>
<fileset dir="${device.extensions.mqtt}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.mqtt}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions.push.notification.provider.xmpp">
<classfiles>
<fileset dir="${device.extensions.xmpp}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.xmpp}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.device.mgt.extensions.pull.notification">
<classfiles>
<fileset dir="${device.extensions.pull}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${device.extensions.pull}/${source}" />
</sourcefiles>
</group>
</group>
<group name="email-sender">
<classfiles>
<fileset dir="${email.sender.core}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${email.sender.core}/${source}" />
</sourcefiles>
</group>
<group name="identity-extensions">
<group name="org.wso2.carbon.device.mgt.oauth.extensions">
<classfiles>
<fileset dir="${identity.oauth.extension}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${identity.oauth.extension}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.identity.authenticator.backend.oauth">
<classfiles>
<fileset dir="${identity.backend.extension}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${identity.backend.extension}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.identity.jwt.client.extension">
<classfiles>
<fileset dir="${identity.jwt.extension}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${identity.jwt.extension}/${source}" />
</sourcefiles>
</group>
</group>
<group name="policy-mgt">
<group name="org.wso2.carbon.complex.policy.decision.point">
<classfiles>
<fileset dir="${policy.mgt.complex.point}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${policy.mgt.complex.point}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.policy.decision.point">
<classfiles>
<fileset dir="${policy.mgt.decision.point}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${policy.mgt.decision.point}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.policy.information.point">
<classfiles>
<fileset dir="${policy.mgt.information.point}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${policy.mgt.information.point}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.policy.mgt.common">
<classfiles>
<fileset dir="${policy.mgt.common}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${policy.mgt.common}/${source}" />
</sourcefiles>
</group>
<group name="org.wso2.carbon.policy.mgt.core">
<classfiles>
<fileset dir="${policy.mgt.core}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${policy.mgt.core}/${source}" />
</sourcefiles>
</group>
</group>
<group name="webapp-authentictor-framework">
<classfiles>
<fileset dir="${webapp.authenticatore.frmework}/${target}/${classes}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${webapp.authenticatore.frmework}/${source}" />
</sourcefiles>
</group>
</structure>
<html destdir="${basedir}/target/coverage-report/site" />
</report>
</then>
</if>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.ant</artifactId>
<version>${jacoco.ant.verision}</version>
</dependency>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>${ant.contrib.version}</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>