diff options
-rw-r--r-- | .github/workflows/gerrit-verify.yaml | 108 | ||||
-rw-r--r-- | dependencies-odl-bom/pom.xml | 9 | ||||
-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/springboot31.properties | 11 | ||||
-rw-r--r-- | springboot/springboot31/pom.xml | 1016 |
6 files changed, 1178 insertions, 2 deletions
diff --git a/.github/workflows/gerrit-verify.yaml b/.github/workflows/gerrit-verify.yaml new file mode 100644 index 00000000..d8bffbea --- /dev/null +++ b/.github/workflows/gerrit-verify.yaml @@ -0,0 +1,108 @@ +--- +name: Gerrit Composed Maven Verify + +# yamllint disable-line rule:truthy +on: + workflow_dispatch: + inputs: + GERRIT_BRANCH: + description: "Branch that change is against" + required: true + type: string + GERRIT_CHANGE_ID: + description: "The ID for the change" + required: true + type: string + GERRIT_CHANGE_NUMBER: + description: "The Gerrit number" + required: true + type: string + GERRIT_CHANGE_URL: + description: "URL to the change" + required: true + type: string + GERRIT_EVENT_TYPE: + description: "Type of Gerrit event" + required: true + type: string + GERRIT_PATCHSET_NUMBER: + description: "The patch number for the change" + required: true + type: string + GERRIT_PATCHSET_REVISION: + description: "The revision sha" + required: true + type: string + GERRIT_PROJECT: + description: "Project in Gerrit" + required: true + type: string + GERRIT_REFSPEC: + description: "Gerrit refspec of change" + required: true + type: string + +concurrency: + # yamllint disable-line rule:line-length + group: compose-maven-verify-${{ github.workflow }}-${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }} + cancel-in-progress: true + +jobs: + prepare: + runs-on: ubuntu-latest + steps: + - name: Clear votes + # yamllint disable-line rule:line-length + uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4 + with: + host: ${{ vars.GERRIT_SERVER }} + username: ${{ vars.GERRIT_SSH_USER }} + key: ${{ secrets.GERRIT_SSH_PRIVKEY }} + known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }} + gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} + gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + vote-type: clear + comment-only: true + - name: Allow replication + run: sleep 10s + + maven-verify: + needs: prepare + # use compose-jjb-verify from the v0.4 series of releng-reusable-workflows + # yamllint disable-line rule:line-length + uses: lfit/releng-reusable-workflows/.github/workflows/compose-maven-verify.yaml@main + with: + GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }} + GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }} + GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }} + GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }} + GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }} + GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }} + GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }} + GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }} + JDK_VERSION: "17" + MVN_VERSION: "3.8.2" + MVN_PROFILES: "docker" + + vote: + if: ${{ always() }} + # yamllint enable rule:line-length + needs: [prepare, maven-verify] + runs-on: ubuntu-latest + steps: + - name: Get conclusion + # yamllint disable-line rule:line-length + uses: technote-space/workflow-conclusion-action@45ce8e0eb155657ab8ccf346ade734257fd196a5 # v3.0.3 + - name: Set vote + # yamllint disable-line rule:line-length + uses: lfit/gerrit-review-action@6ac4c2322b68c0120a9b516eb0421491ee1b3fdf # v0.4 + with: + host: ${{ vars.GERRIT_SERVER }} + username: ${{ vars.GERRIT_SSH_USER }} + key: ${{ secrets.GERRIT_SSH_PRIVKEY }} + known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }} + gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }} + gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }} + vote-type: ${{ env.WORKFLOW_CONCLUSION }} + comment-only: true diff --git a/dependencies-odl-bom/pom.xml b/dependencies-odl-bom/pom.xml index 3bd0460b..44084e79 100644 --- a/dependencies-odl-bom/pom.xml +++ b/dependencies-odl-bom/pom.xml @@ -6,7 +6,7 @@ <groupId>org.opendaylight.odlparent</groupId> <artifactId>odlparent</artifactId> <version>8.1.2</version> - <relativePath/> + <relativePath /> </parent> <groupId>org.onap.ccsdk.parent</groupId> @@ -85,6 +85,11 @@ <artifactId>dmaapClient</artifactId> <version>1.1.14</version> </dependency> + <dependency> + <groupId>org.apache.kafka</groupId> + <artifactId>kafka-clients</artifactId> + <version>3.0.0</version> + </dependency> <!-- Below provides javax.annotations --> <dependency> <groupId>com.google.code.findbugs</groupId> @@ -200,7 +205,7 @@ <!-- This version supports the "deployAtEnd" parameter --> <version>2.8</version> <configuration> - <skip/> + <skip /> <deployAtEnd>true</deployAtEnd> </configuration> </plugin> diff --git a/springboot/pom.xml b/springboot/pom.xml index eaf6add5..2404458d 100755 --- a/springboot/pom.xml +++ b/springboot/pom.xml @@ -22,6 +22,7 @@ <module>springboot26</module> <module>springboot27</module> <module>springboot30</module> + <module>springboot31</module> </modules> <distributionManagement> diff --git a/springboot/spring-boot-setup/pom.xml b/springboot/spring-boot-setup/pom.xml index 5124a7be..c4ae6b47 100644 --- a/springboot/spring-boot-setup/pom.xml +++ b/springboot/spring-boot-setup/pom.xml @@ -143,6 +143,30 @@ <encoding>UTF-8</encoding> </configuration> </execution> + <execution> + <id>create-springboot31-parent-pom</id> + <goals> + <goal>copy-resources</goal> + </goals><!-- here the phase you need --> + <phase>validate</phase> + <configuration> + <outputDirectory>../springboot31</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/springboot31.properties</filter> + </filters> + <encoding>UTF-8</encoding> + </configuration> + </execution> </executions> </plugin> <plugin> @@ -205,6 +229,17 @@ <destinationFile>../springboot30/pom.xml</destinationFile> </configuration> </execution> + <execution> + <id>rename-springboot31-parent-pom</id> + <phase>validate</phase> + <goals> + <goal>rename</goal> + </goals> + <configuration> + <sourceFile>../springboot31/pom-template-jdk17.xml</sourceFile> + <destinationFile>../springboot31/pom.xml</destinationFile> + </configuration> + </execution> </executions> </plugin> </plugins> diff --git a/springboot/spring-boot-setup/src/main/properties/springboot31.properties b/springboot/spring-boot-setup/src/main/properties/springboot31.properties new file mode 100644 index 00000000..ec6957f2 --- /dev/null +++ b/springboot/spring-boot-setup/src/main/properties/springboot31.properties @@ -0,0 +1,11 @@ +springbootparent.artifactId=spring-boot-starter-parent +springbootparent.groupId=org.springframework.boot +springbootparent.version=3.1.0 +springboot.project.artifactId=spring-boot-31-starter-parent +spring.version=6.0.9 +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.7 +springboot.slf4j.version=2.19.0 +springboot.antlr.version=4.12.0 diff --git a/springboot/springboot31/pom.xml b/springboot/springboot31/pom.xml new file mode 100644 index 00000000..fe96d8d0 --- /dev/null +++ b/springboot/springboot31/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>3.1.0</version> + <relativePath/> + </parent> + + <groupId>org.onap.ccsdk.parent</groupId> + <artifactId>spring-boot-31-starter-parent</artifactId> + <version>2.6.1-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.5.99999,1.6.99999-SNAPSHOT]</ccsdk.cds.version> + <ccsdk.features.version>(1.5.99999, 1.6.99999-SNAPSHOT]</ccsdk.features.version> + <ccsdk.distribution.version>(1.5.99999, 1.6.99999-SNAPSHOT]</ccsdk.distribution.version> + <ccsdk.sli.version>(1.6.99999, 1.7.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>3.1.0</spring.boot.version> + <spring.version>6.0.9</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> + <nats.streaming.version>2.2.3</nats.streaming.version> + <mockk.version>1.9.3</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.6.1-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> |