diff options
author | avinash.akkera <avinash.akkera@accenture.com> | 2024-09-19 19:55:48 +0530 |
---|---|---|
committer | avinash.akkera <avinash.akkera@accenture.com> | 2024-09-19 20:09:21 +0530 |
commit | f2e52deb999b971a1048f303b8ef89111869f97c (patch) | |
tree | 4dd3141b177f0507218a6d2dce2c45489fdd1dd4 | |
parent | 67493a6cc75140a6df20fca9c593d02f14ed78ea (diff) |
Upgrade for Java 17 with Kotlin 1.7
- Generated a new module for CDS with Java 17, Kotlin 1.7 & Spring Boot 2.7.18.
Issue-ID: CCSDK-4054
Change-Id: Ifd4f9c35953d0c7fd297f56043eec37e8bcba18d
Signed-off-by: avinash.akkera <avinash.akkera@accenture.com>
-rwxr-xr-x | springboot/pom.xml | 1 | ||||
-rw-r--r-- | springboot/spring-boot-setup/pom.xml | 35 | ||||
-rw-r--r-- | springboot/spring-boot-setup/src/main/properties/springboot27-jdk17.properties | 11 | ||||
-rw-r--r-- | springboot/spring-boot-setup/src/main/resources/pom-template-jdk17.xml | 16 | ||||
-rw-r--r-- | springboot/springboot27-jdk17/pom.xml | 1016 |
5 files changed, 1071 insertions, 8 deletions
diff --git a/springboot/pom.xml b/springboot/pom.xml index f55b27cc..d34f9773 100755 --- a/springboot/pom.xml +++ b/springboot/pom.xml @@ -21,6 +21,7 @@ <module>springboot25</module> <module>springboot26</module> <module>springboot27</module> + <module>springboot27-jdk17</module> <module>springboot30</module> <module>springboot31</module> <module>springboot32</module> diff --git a/springboot/spring-boot-setup/pom.xml b/springboot/spring-boot-setup/pom.xml index d3e95f73..f61cf5d8 100644 --- a/springboot/spring-boot-setup/pom.xml +++ b/springboot/spring-boot-setup/pom.xml @@ -120,6 +120,30 @@ </configuration> </execution> <execution> + <id>create-springboot27-jdk17-parent-pom</id> + <goals> + <goal>copy-resources</goal> + </goals><!-- here the phase you need --> + <phase>validate</phase> + <configuration> + <outputDirectory>../springboot27-jdk17</outputDirectory> + <resources> + <resource> + <directory>src/main/resources</directory> + <includes> + <include>pom-template-jdk17.xml</include> + </includes> + <filtering>true</filtering> + </resource> + </resources> + <escapeString>\</escapeString> + <filters> + <filter>${basedir}/src/main/properties/springboot27-jdk17.properties</filter> + </filters> + <encoding>UTF-8</encoding> + </configuration> + </execution> + <execution> <id>create-springboot30-parent-pom</id> <goals> <goal>copy-resources</goal> @@ -267,6 +291,17 @@ </configuration> </execution> <execution> + <id>rename-springboot27-jdk17-parent-pom</id> + <phase>validate</phase> + <goals> + <goal>rename</goal> + </goals> + <configuration> + <sourceFile>../springboot27-jdk17/pom-template-jdk17.xml</sourceFile> + <destinationFile>../springboot27-jdk17/pom.xml</destinationFile> + </configuration> + </execution> + <execution> <id>rename-springboot30-parent-pom</id> <phase>validate</phase> <goals> diff --git a/springboot/spring-boot-setup/src/main/properties/springboot27-jdk17.properties b/springboot/spring-boot-setup/src/main/properties/springboot27-jdk17.properties new file mode 100644 index 00000000..ab2ad432 --- /dev/null +++ b/springboot/spring-boot-setup/src/main/properties/springboot27-jdk17.properties @@ -0,0 +1,11 @@ +springbootparent.artifactId=spring-boot-starter-parent +springbootparent.groupId=org.springframework.boot +springbootparent.version=2.7.18 +springboot.project.artifactId=spring-boot-27-jdk-17-starter-parent +spring.version=6.1.10 +springboot.httpcomponents.core.version=4.5.16 +springboot.httpcomponents.client.version=4.5.14 +springboot.jackson.version=2.15.0 +springboot.logback.version=1.4.14 +springboot.slf4j.version=2.19.0 +springboot.antlr.version=4.12.0 diff --git a/springboot/spring-boot-setup/src/main/resources/pom-template-jdk17.xml b/springboot/spring-boot-setup/src/main/resources/pom-template-jdk17.xml index db3e8837..394ab82d 100644 --- a/springboot/spring-boot-setup/src/main/resources/pom-template-jdk17.xml +++ b/springboot/spring-boot-setup/src/main/resources/pom-template-jdk17.xml @@ -103,15 +103,15 @@ <spring.version>${spring.version}</spring.version> <!-- Kotlin versions --> - <kotlin.compiler.jvmTarget>1.11</kotlin.compiler.jvmTarget> - <kotlin.version>1.5.32</kotlin.version> - <kotlin.maven.version>1.5.32</kotlin.maven.version> - <kotlin.couroutines.version>1.5.2</kotlin.couroutines.version> - <kotlinpoet.version>1.5.0</kotlinpoet.version> - <kroto-plus.version>0.5.0</kroto-plus.version> - <nats.version>2.6.6</nats.version> + <kotlin.compiler.jvmTarget>17</kotlin.compiler.jvmTarget> + <kotlin.version>1.7.0</kotlin.version> + <kotlin.maven.version>1.7.0</kotlin.maven.version> + <kotlin.couroutines.version>1.7.0</kotlin.couroutines.version> + <kotlinpoet.version>1.11.0</kotlinpoet.version> + <kroto-plus.version>0.6.1</kroto-plus.version> + <nats.version>2.15.0</nats.version> <nats.streaming.version>2.2.3</nats.streaming.version> - <mockk.version>1.9.3</mockk.version> + <mockk.version>1.13.12</mockk.version> <antlr.version>${springboot.antlr.version}</antlr.version> diff --git a/springboot/springboot27-jdk17/pom.xml b/springboot/springboot27-jdk17/pom.xml new file mode 100644 index 00000000..94b77225 --- /dev/null +++ b/springboot/springboot27-jdk17/pom.xml @@ -0,0 +1,1016 @@ +<?xml version="1.0" encoding="UTF-8"?> +<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"> + <modelVersion>4.0.0</modelVersion> + + <!-- PLEASE READ !!!!! This file is generated from ccsdk/parent/springboot/spring-boot-setup/src/main/template/pom-template-jdk17.xml + Any updates needed should be made to that template and not to the generated + pom.xml file --> + <parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>2.7.18</version> + <relativePath/> + </parent> + + <groupId>org.onap.ccsdk.parent</groupId> + <artifactId>spring-boot-27-jdk-17-starter-parent</artifactId> + <version>2.8.0-SNAPSHOT</version> + <packaging>pom</packaging> + + <name>ONAP :: ${project.groupId} :: ${project.artifactId}</name> + <description>Root POM to be used in place of spring-boot parent for CCSDK based projects</description> + <url>http://wiki.onap.org</url> + <organization> + <name>ONAP</name> + </organization> + + <issueManagement> + <system>JIRA</system> + <url>https://jira.onap.org/</url> + </issueManagement> + + <distributionManagement> + <repository> + <id>ecomp-releases</id> + <url>${onap.nexus.release-url}</url> + </repository> + <snapshotRepository> + <id>ecomp-snapshots</id> + <url>${onap.nexus.snapshot-url}</url> + </snapshotRepository> + </distributionManagement> + + <properties> + <!-- Sonar properties --> + <sonar.scanner.version>3.7.0.1746</sonar.scanner.version> + <sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version> + <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin> + <!-- Default Sonar configuration --> + <sonar.coverage.jacoco.xmlReportPaths>${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml,${project.reporting.outputDirectory}/jacoco-it/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> + <!-- Note: This list should match jacoco-maven-plugin's exclusion list below --> + <sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions> + + <!-- Jacoco properties --> + <jacoco.version>0.8.8</jacoco.version> + <!-- properties from oparent --> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <!-- sitePath may be overridden in the inheriting POM if desired --> + <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath> + + <!-- If following file exist, auto-generation of swagger.json will be done --> + <swagger-properties>${basedir}/src/main/resources/swagger.properties</swagger-properties> + <!-- If following file exist, auto-generation of sdk will be done --> + <swagger-json>${basedir}/src/main/resources/swagger.json</swagger-json> + <!-- end of properties from oparent --> + + <!-- ONAP repositories --> + <onap.nexus.url>https://nexus.onap.org</onap.nexus.url> + <onap.nexus.host>nexus.onap.org</onap.nexus.host> + <onap.nexus.port>443</onap.nexus.port> + <onap.nexus.protocol>https</onap.nexus.protocol> + <onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url> + <onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url> + <onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url> + <onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url> + <onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id> + <onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id> + + <java.version>17</java.version> + <maven.compile.plugin.version>3.10.0</maven.compile.plugin.version> + <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version> + <features.file>features.xml</features.file> + <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath> + <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath> + <checkstyle.skip>true</checkstyle.skip> + + <!-- logging-analytics versions --> + <logging-analytics.version>1.6.9</logging-analytics.version> + + <!-- CCSDK component versions --> + <ccsdk.cds.version>(1.6.99999,1.7.99999-SNAPSHOT]</ccsdk.cds.version> + <ccsdk.features.version>(1.7.99999, 1.8.99999-SNAPSHOT]</ccsdk.features.version> + <ccsdk.distribution.version>(1.6.99999, 1.7.99999-SNAPSHOT]</ccsdk.distribution.version> + <ccsdk.sli.version>(1.8.99999, 1.9.99999-SNAPSHOT]</ccsdk.sli.version> + <ccsdk.sli.core.version>${ccsdk.sli.version}</ccsdk.sli.core.version> + <ccsdk.sli.adaptors.version>${ccsdk.sli.version}</ccsdk.sli.adaptors.version> + <ccsdk.sli.northbound.version>${ccsdk.sli.version}</ccsdk.sli.northbound.version> + <ccsdk.sli.plugins.version>${ccsdk.sli.version}</ccsdk.sli.plugins.version> + + <!-- Spring versions --> + <spring.boot.version>2.7.18</spring.boot.version> + <spring.version>6.1.10</spring.version> + + <!-- Kotlin versions --> + <kotlin.compiler.jvmTarget>17</kotlin.compiler.jvmTarget> + <kotlin.version>1.7.0</kotlin.version> + <kotlin.maven.version>1.7.0</kotlin.maven.version> + <kotlin.couroutines.version>1.7.0</kotlin.couroutines.version> + <kotlinpoet.version>1.11.0</kotlinpoet.version> + <kroto-plus.version>0.6.1</kroto-plus.version> + <nats.version>2.15.0</nats.version> + <nats.streaming.version>2.2.3</nats.streaming.version> + <mockk.version>1.13.12</mockk.version> + + + <antlr.version>4.12.0</antlr.version> + <antlr4.version>4.12.0</antlr4.version> + + <!-- Managed dependency versions --> + <dependency-list.file>direct-dependencies.txt</dependency-list.file> + </properties> + + <dependencyManagement> + <dependencies> + <!-- Note: If value in BOM conflicts with value inherited from + parent pom, inherited value takes precedence. This seems more like + a bug than a feature, but this is how maven 3.6 works --> + <dependency> + <groupId>org.onap.ccsdk.parent</groupId> + <artifactId>dependencies-bom</artifactId> + <version>2.8.0-SNAPSHOT</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson</groupId> + <artifactId>jackson-bom</artifactId> + <version>2.15.0</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>sli-common</artifactId> + <version>${ccsdk.sli.core.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>sli-provider</artifactId> + <version>${ccsdk.sli.core.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>ccsdk-sli</artifactId> + <version>${ccsdk.sli.core.version}</version> + <type>xml</type> + <classifier>features</classifier> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.core</groupId> + <artifactId>dblib-provider</artifactId> + <version>${ccsdk.sli.core.version}</version> + </dependency> + <dependency> + <groupId>org.onap.ccsdk.sli.adaptors</groupId> + <artifactId>aai-service-provider</artifactId> + <version>${ccsdk.sli.adaptors.version}</version> + </dependency> + <dependency> + <groupId>org.onap.logging-analytics</groupId> + <artifactId>logging-slf4j</artifactId> + <version>${logging-analytics.version}</version> + </dependency> + <dependency> + <groupId>org.onap.logging-analytics</groupId> + <artifactId>logging-filter-base</artifactId> + <version>${logging-analytics.version}</version> + </dependency> + <dependency> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-core</artifactId> + <version>4.4.2-nordix</version> + </dependency> + </dependencies> + </dependencyManagement> + + <repositories> + <repository> + <id>onap-public</id> + <url>${onap.nexus.public-url}</url> + <releases> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>true</enabled> + <updatePolicy>always</updatePolicy> + </snapshots> + </repository> + <repository> + <id>onap-staging</id> + <url>${onap.nexus.staging-url}</url> + <releases> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>true</enabled> + <updatePolicy>always</updatePolicy> + </snapshots> + </repository> + <repository> + <id>ecomp-release</id> + <name>onap-repository-releases</name> + <url>${onap.nexus.release-url}</url> + <releases> + <enabled>true</enabled> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <repository> + <id>ecomp-snapshot</id> + <name>onap-repository-snapshots</name> + <url>${onap.nexus.snapshot-url}</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + + <pluginRepositories> + <pluginRepository> + <id>onap-public</id> + <url>${onap.nexus.public-url}</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + <pluginRepository> + <id>onap-staging</id> + <url>${onap.nexus.staging-url}</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + <pluginRepository> + <id>onap-snapshot</id> + <url>${onap.nexus.snapshot-url}</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + + </pluginRepositories> + + <build> + <pluginManagement> + <plugins> + <!-- Plugins from ONAP oparent --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <!-- This version supports the "deployAtEnd" parameter --> + <version>2.8</version> + <configuration> + <skip/> + <deployAtEnd>true</deployAtEnd> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-site-plugin</artifactId> + <version>3.6</version> + <dependencies> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-webdav-jackrabbit</artifactId> + <version>2.10</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-core</artifactId> + <version>1.7</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-sink-api</artifactId> + <version>1.7</version> + </dependency> + <dependency> + <groupId>org.apache.maven.doxia</groupId> + <artifactId>doxia-logging-api</artifactId> + <version>1.7</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>attach-descriptor</id> + <goals> + <goal>attach-descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>2.17</version> + <dependencies> + <dependency> + <groupId>org.onap.oparent</groupId> + <artifactId>checkstyle</artifactId> + <version>1.1.1</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>check-license</id> + <goals> + <goal>check</goal> + </goals> + <phase>process-sources</phase> + <configuration> + <configLocation>onap-checkstyle/check-license.xml</configLocation> + <headerLocation>onap-checkstyle/apache-license-2.regexp.txt</headerLocation> + <includeResources>false</includeResources> + <includeTestSourceDirectory>true</includeTestSourceDirectory> + <includeTestResources>false</includeTestResources> + <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory> + <excludes> + </excludes> + <failsOnError>false</failsOnError> + <consoleOutput>true</consoleOutput> + </configuration> + </execution> + <execution> + <id>check-style</id> + <goals> + <goal>check</goal> + </goals> + <phase>process-sources</phase> + <configuration> + <!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml + with minor changes --> + <configLocation>onap-checkstyle/onap-java-style.xml</configLocation> + <!-- <sourceDirectory> is needed so that checkstyle ignores the generated sources directory --> + <sourceDirectory>${project.build.sourceDirectory}/src/main/java</sourceDirectory> + <includeResources>true</includeResources> + <includeTestSourceDirectory>true</includeTestSourceDirectory> + <includeTestResources>true</includeTestResources> + <excludes> + </excludes> + <failsOnError>false</failsOnError> + <consoleOutput>true</consoleOutput> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <!-- Sets the VM argument line used when unit tests are run. --> + <argLine>${surefireArgLine}</argLine> + <!-- Excludes integration tests when unit tests are run. --> + <excludes> + <exclude>**/IT*.java</exclude> + </excludes> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <!-- Ensures that both integration-test and verify goals of the Failsafe Maven plugin are executed. --> + <execution> + <id>integration-tests</id> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + <configuration> + <!-- Sets the VM argument line used when integration tests are run. --> + <argLine>${failsafeArgLine}</argLine> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${maven.compile.plugin.version}</version> + <configuration> + <release>${java.version}</release> + <!--explicitly remove source and target--> + <source combine.self="override"/> + <target combine.self="override"/> + </configuration> + </plugin> + <plugin> + <groupId>org.sonarsource.scanner.maven</groupId> + <artifactId>sonar-maven-plugin</artifactId> + <version>3.7.0.1746</version> + </plugin> + + <!-- End of plugins from ONAP oparent --> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <failOnError>false</failOnError> + </configuration> + <executions> + <execution> + <id>aggregate</id> + <goals> + <goal>aggregate</goal> + </goals> + <phase>site</phase> + </execution> + </executions> + </plugin> + <plugin> + <groupId>com.github.ferstl</groupId> + <artifactId>depgraph-maven-plugin</artifactId> + <version>3.3.0</version> + <configuration> + <graphFormat>text</graphFormat> + <outputFileName>${dependency-list.file}</outputFileName> + <outputDirectory>${project.basedir}</outputDirectory> + <transitiveExcludes>*</transitiveExcludes> + <showVersions>true</showVersions> + <showGroupIds>true</showGroupIds> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <!-- Plugins from ONAP oparent --> + <!-- Jacoco / Sonar --> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco.version}</version> + <executions> + <execution> + <id>pre-unit-test</id> + <goals> + <goal>prepare-agent</goal> + </goals> + <configuration> + <!-- Sets the path to the file which contains the execution data. --> + <destFile>${project.build.directory}/code-coverage/jacoco-ut.exec</destFile> + <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. --> + <propertyName>surefireArgLine</propertyName> + </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> + <!-- Sets the path to the file which contains the execution data. --> + <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile> + <!-- Sets the output directory for the code coverage report. --> + <outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory> + </configuration> + </execution> + <execution> + <id>pre-integration-test</id> + <phase>pre-integration-test</phase> + <goals> + <goal>prepare-agent</goal> + </goals> + <configuration> + <!-- Sets the path to the file which contains the execution data. --> + <destFile>${project.build.directory}/code-coverage/jacoco-it.exec</destFile> + <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. --> + <propertyName>failsafeArgLine</propertyName> + </configuration> + </execution> + <!-- Ensures that the code coverage report for integration tests after integration tests have been run. --> + <execution> + <id>post-integration-test</id> + <phase>post-integration-test</phase> + <goals> + <goal>report</goal> + </goals> + <configuration> + <!-- Sets the path to the file which contains the execution data. --> + <dataFile>${project.build.directory}/code-coverage/jacoco-it.exec</dataFile> + <!-- Sets the output directory for the code coverage report. --> + <outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory> + </configuration> + </execution> + <execution> + <id>default-prepare-agent</id> + <goals> + <goal>prepare-agent</goal> + </goals> + </execution> + <execution> + <id>default-report</id> + <phase>prepare-package</phase> + <goals> + <goal>report</goal> + </goals> + </execution> + <execution> + <id>default-check</id> + <goals> + <goal>check</goal> + </goals> + <configuration> + <rules> + <rule> + <element>PACKAGE</element> + <limits> + <limit> + <counter>COMPLEXITY</counter> + <value>COVEREDRATIO</value> + <minimum>0.0</minimum> + </limit> + </limits> + </rule> + </rules> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.12</version> + </plugin> + <!-- Jacoco / Sonar --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + </plugin> + + <!-- End of plugins from ONAP oparent --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0.0</version> + <executions> + <execution> + <goals> + <goal>set-system-properties</goal> + </goals> + <configuration> + <properties> + <property> + <name>maven.wagon.http.ssl.allowall</name> + <value>${ssl.allowall}</value> + </property> + <property> + <name>maven.wagon.http.ssl.insecure</name> + <value>${ssl.insecure}</value> + </property> + </properties> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>versions-maven-plugin</artifactId> + <version>2.5</version> + <configuration> + <processAllModules>true</processAllModules> + </configuration> + </plugin> + <plugin> + <artifactId>maven-scm-plugin</artifactId> + <version>1.8.1</version> + <configuration> + <tag>${project.artifactId}-${project.version}</tag> + </configuration> + </plugin> + <plugin> + <groupId>pl.project13.maven</groupId> + <artifactId>git-commit-id-plugin</artifactId> + <version>4.0.0</version> + <configuration> + <commitIdGenerationMode>full</commitIdGenerationMode> + <includeOnlyProperties> + <includeOnlyProperty>^git.build.(time|version)$</includeOnlyProperty> + <includeOnlyProperty>^git.commit.id.(abbrev|full)$</includeOnlyProperty> + </includeOnlyProperties> + </configuration> + </plugin> + </plugins> + </build> + + <reporting> + <plugins> + <plugin> + <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> + <excludePackageNames>org.opendaylight.*</excludePackageNames> + </configuration> + <reportSets> + <reportSet> + <reports> + <report>javadoc-no-fork</report> + <report>test-javadoc-no-fork</report> + </reports> + </reportSet> + <reportSet> + <id>aggregate</id> + <reports> + <report>aggregate</report> + <report>test-aggregate</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>2.3</version> + <reportSets> + <reportSet> + <id>aggregate</id> + <reports> + <report>aggregate</report> + <report>test-aggregate</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.17</version> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-changelog-plugin</artifactId> + <version>2.3</version> + <reportSets> + <reportSet> + <id>dual-report</id> + <configuration> + <type>range</type> + <range>30</range> + </configuration> + <reports> + <report>changelog</report> + <report>file-activity</report> + </reports> + </reportSet> + </reportSets> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + <version>2.4</version> + </plugin> + </plugins> + </reporting> + + <profiles> + <!-- Profiles from ONAP oparent --> + <profile> + <id>generate-json</id> + <activation> + <file> + <exists>${swagger-properties}</exists> + </file> + <property> + <name>swagger-sdk.generate-json</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>properties-maven-plugin</artifactId> + <version>1.0.0</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>read-project-properties</goal> + </goals> + <configuration> + <files> + <file>${basedir}/src/main/resources/swagger.properties</file> + </files> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>com.github.kongchen</groupId> + <artifactId>swagger-maven-plugin</artifactId> + <version>3.1.4</version> + <configuration> + <apiSources> + <apiSource> + <locations>${api-rest-package}</locations> + <schemes>http,https</schemes> + <host>${api-host-ip}:${api-host-port}</host> + <basePath>${api-base-path}</basePath> + <info> + <title>${api-title}</title> + <version>${api-version}</version> + <description>${api-description}</description> + <license> + <name>${api-license}</name> + </license> + </info> + <swaggerDirectory>${basedir}/src/main/resources</swaggerDirectory> + </apiSource> + </apiSources> + </configuration> + <executions> + <execution> + <phase>compile</phase> + <goals> + <goal>generate</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-install-plugin</artifactId> + <version>2.3.1</version> + <executions> + <execution> + <id>install-file-id</id> + <phase>install</phase> + <goals> + <goal>install-file</goal> + </goals> + <configuration> + <file>${basedir}/src/main/resources/swagger.json</file> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}-swagger-schema</artifactId> + <version>${project.version}</version> + <packaging>json</packaging> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>generate-sdk</id> + <activation> + <file> + <exists>${swagger-json}</exists> + </file> + <property> + <name>swagger-sdk.generate-java-sdk</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <version>${maven-antrun-plugin.version}</version> + <executions> + <execution> + <phase>initialize</phase> + <id>ant-create-script</id> + <configuration> + <exportAntProperties>true</exportAntProperties> + <tasks> + <taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath"/> + <condition property="is_windows" value="true"> + <os family="windows"/> + </condition> + <condition property="isLinux" value="true"> + <os family="unix"/> + </condition> + <if> + <equals arg1="${is_windows}" arg2="true"/> + <then> + <property name="swagger.sdk.script.file" value="generated-source-script.bat"/> + <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true" message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/> + <echo file="${project.build.directory}${file.separator}generated-source-script.bat" append="true" message="mvn clean install -Dmaven.test.skip=true${line.separator}"/> + </then> + <else> + <property name="swagger.sdk.script.file" value="generated-source-script.sh"/> + <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true" message="cd ${project.build.directory}${file.separator}generated-sources${line.separator}"/> + <echo file="${project.build.directory}${file.separator}generated-source-script.sh" append="true" message="mvn clean install -Dmaven.test.skip=true${line.separator}"/> + <chmod file="${project.build.directory}${file.separator}generated-source-script.sh" perm="755"/> + </else> + </if> + </tasks> + </configuration> + <goals> + <goal>run</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>ant-contrib</groupId> + <artifactId>ant-contrib</artifactId> + <version>1.0b3</version> + <exclusions> + <exclusion> + <groupId>ant</groupId> + <artifactId>ant</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + </plugin> + <plugin> + <groupId>io.swagger</groupId> + <artifactId>swagger-codegen-maven-plugin</artifactId> + <version>2.2.1</version> + <executions> + <execution> + <goals> + <goal>generate</goal> + </goals> + <configuration> + <inputSpec>${basedir}/src/main/resources/swagger.json</inputSpec> + <output>${project.build.directory}/generated-sources</output> + <language>java</language> + <configOptions> + <dateLibrary>joda</dateLibrary> + </configOptions> + <library>jersey2</library> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}-java-sdk</artifactId> + <artifactVersion>${project.version}</artifactVersion> + <modelPackage>${project.groupId}.${project.artifactId}.client.model</modelPackage> + <apiPackage>${project.groupId}.${project.artifactId}.client.api</apiPackage> + <invokerPackage>${project.groupId}.${project.artifactId}.client.invoker</invokerPackage> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>3.1.0</version> + <executions> + <execution> + <id>swagger-generate-sources</id> + <phase>generate-sources</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <executable>${project.build.directory}${file.separator}${swagger.sdk.script.file}</executable> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <version>3.0.0</version> + <executions> + <execution> + <id>clean-generated-files</id> + <phase>generate-sources</phase> + <goals> + <goal>clean</goal> + </goals> + <configuration> + <filesets> + <fileset> + <directory>${project.build.directory}/generated-sources</directory> + </fileset> + </filesets> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.onap.msb.swagger-sdk</groupId> + <artifactId>swagger-sdk</artifactId> + <version>1.0.0</version> + </dependency> + </dependencies> + </profile> + <profile> + <!-- http://blog2.vorburger.ch/2016/06/improve-maven-build-speed-with-q.html + q = http://memory-alpha.wikia.com/wiki/Q ;) + + The Quick profile is used during incremental local development, when you want to "just get that JAR built", + which is very handy e.g. for fast hot reloading cycles in Karaf with bundle watch. It (intentionally!) skips + tests, quality checks etc. which are great and useful to run before finally submitting changes to Gerrit, and + which all must run on Gerrit, but which are overhead during ongoing fast iterative local development. + + Note that the idea here is that your IDE will already have run quality checks such as e.g. Checkstyle + while you typed the code anyway. Similarly, if you wrote a test, you'll probably already have compiled and run it + from your IDE, so when you want the OSGi bundle JAR for Karaf, ASAP, you typically don't want all that to run again. + --> + <id>q</id> + <properties> + <skipTests>true</skipTests> + <skipPush>true</skipPush> + <docker.skip.push>true</docker.skip.push> + <!-- But NOT <maven.test.skip>true, as that's for compiling, not running, tests; + and that's usually quick. Skipping test compilation with -Pq with maven.test.skip would be + particularly confusing when used in a project with maven-jar-plugin <goal>test-jar, so don't.) --> + <skipIT>true</skipIT> + <skipITs>true</skipITs> + <skip.karaf.featureTest>true</skip.karaf.featureTest> + <jacoco.skip>true</jacoco.skip> + <maven.javadoc.skip>true</maven.javadoc.skip> + <maven.source.skip>true</maven.source.skip> + <checkstyle.skip>true</checkstyle.skip> + <findbugs.skip>true</findbugs.skip> + <spotbugs.skip>true</spotbugs.skip> + <pmd.skip>true</pmd.skip> + <cpd.skip>true</cpd.skip> + <maven.site.skip>true</maven.site.skip> + <invoker.skip>true</invoker.skip> + <enforcer.skip>true</enforcer.skip> + <duplicate-finder.skip>true</duplicate-finder.skip> + <mdsal.skip.verbose>true</mdsal.skip.verbose> <!-- Bug 6236 --> + <maven.gitcommitid.skip>true</maven.gitcommitid.skip> + <modernizer.skip>true</modernizer.skip> + <format.skipExecute>true</format.skipExecute> + <format.skipValidate>true</format.skipValidate> + </properties> + </profile> + <profile> + <id>sonar-jacoco-aggregate</id> + <activation> + <property> + <name>onap.jacoco.aggregateFile</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <executions> + <execution> + <id>merge</id> + <goals> + <goal>merge</goal> + </goals> + <phase>generate-resources</phase> + <configuration> + <destFile>${onap.jacoco.aggregateFile}</destFile> + <fileSets> + <fileSet> + <directory>${project.basedir}</directory> + <includes> + <include>**/target/code-coverage/*.exec</include> + </includes> + </fileSet> + </fileSets> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <!-- End of profiles from ONAP oparent --> + </profiles> +</project> |