Merge "Remove app Maven property"
[cps/cps-temporal.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index 7f2318b..5bcb116 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
@@ -15,6 +15,8 @@
   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.
+
+ SPDX-License-Identifier: Apache-2.0
   ============LICENSE_END=========================================================
 -->
 
 
     <groupId>org.onap.cps</groupId>
     <artifactId>cps-temporal</artifactId>
-    <version>0.0.1-SNAPSHOT</version>
+    <version>0.0.2-SNAPSHOT</version>
     <name>cps-temporal</name>
     <description>CPS Temporal Service</description>
 
     <properties>
-        <app>org.onap.cps.temporal.Application</app>
         <docker.repository.pull>nexus3.onap.org:10001/</docker.repository.pull>
         <docker.repository.push>nexus3.onap.org:10003/</docker.repository.push>
         <image.base>${docker.repository.pull}onap/integration-java11:8.0.0</image.base>
         <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
         <minimum-coverage>0.8</minimum-coverage>
         <!-- Application dependencies versions -->
-        <cps.events.version>1.1.0-SNAPSHOT</cps.events.version>
-        <hibernate-types.version>2.10.0</hibernate-types.version>
-        <liquibase-core.version>4.3.2</liquibase-core.version>
-        <lombok.version>1.18.20</lombok.version>
+        <!--cps.version need to be changed to released Istanbul version-->
+        <cps.version>1.1.0</cps.version>
         <mapstruct.version>1.4.2.Final</mapstruct.version>
-        <spring-boot-dependencies.version>2.3.8.RELEASE</spring-boot-dependencies.version>
-        <!-- Tests dependencies versions -->
-        <archunit-junit5.version>0.18.0</archunit-junit5.version>
-        <groovy.version>3.0.7</groovy.version>
-        <junit-jupiter.version>1.15.2</junit-jupiter.version>
-        <spock-bom.version>2.0-M4-groovy-3.0</spock-bom.version>
-        <testcontainers-postgresql.version>1.15.2</testcontainers-postgresql.version>
-        <!-- Plugins and plugins dependencies versions -->
-        <bug-pattern.version>1.5.0</bug-pattern.version>
-        <cps.checkstyle.version>1.0.1</cps.checkstyle.version>
-        <cps.spotbugs.version>1.0.1</cps.spotbugs.version>
-        <gmavenplus-plugin.version>1.12.1</gmavenplus-plugin.version>
-        <jib-maven-plugin.version>3.0.0</jib-maven-plugin.version>
-        <oparent.version>3.2.0</oparent.version>
-        <spotbugs-maven-plugin.version>4.1.3</spotbugs-maven-plugin.version>
-        <spotbugs.slf4j.version>1.8.0-beta4</spotbugs.slf4j.version>
-        <spotbugs.version>4.2.0</spotbugs.version>
-        <spring-boot-maven-plugin.version>2.3.3.RELEASE</spring-boot-maven-plugin.version>
     </properties>
 
     <dependencyManagement>
             <dependency>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot-dependencies.version}</version>
+                <version>2.5.0</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
             <dependency>
                 <groupId>org.spockframework</groupId>
                 <artifactId>spock-bom</artifactId>
-                <version>${spock-bom.version}</version>
+                <version>2.0-M4-groovy-3.0</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.testcontainers</groupId>
+                <artifactId>testcontainers-bom</artifactId>
+                <version>1.15.3</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.vladmihalcea</groupId>
             <artifactId>hibernate-types-52</artifactId>
-            <version>${hibernate-types.version}</version>
+            <version>2.10.0</version>
         </dependency>
         <dependency>
             <groupId>org.liquibase</groupId>
             <artifactId>liquibase-core</artifactId>
-            <version>${liquibase-core.version}</version>
+            <version>4.4.2-nordix</version>
         </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-hateoas</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.mapstruct</groupId>
             <artifactId>mapstruct</artifactId>
         <dependency>
             <groupId>org.onap.cps</groupId>
             <artifactId>cps-events</artifactId>
-            <version>${cps.events.version}</version>
+            <version>1.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-ui</artifactId>
+            <version>1.5.9</version>
         </dependency>
         <!-- Runtime dependencies-->
         <dependency>
         <dependency>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy</artifactId>
-            <version>${groovy.version}</version>
+            <version>3.0.7</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-test</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.spockframework</groupId>
             <artifactId>spock-core</artifactId>
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
-            <artifactId>junit-jupiter</artifactId>
-            <version>${junit-jupiter.version}</version>
+            <artifactId>spock</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>postgresql</artifactId>
-            <version>${testcontainers-postgresql.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>org.testcontainers</groupId>
             <artifactId>kafka</artifactId>
-            <version>1.15.3</version>
             <scope>test</scope>
         </dependency>
         <dependency>
         <dependency>
             <groupId>com.tngtech.archunit</groupId>
             <artifactId>archunit-junit5</artifactId>
-            <version>${archunit-junit5.version}</version>
+            <version>0.18.0</version>
             <scope>test</scope>
         </dependency>
     </dependencies>
 
     <build>
+        <resources>
+            <resource>
+                <directory>docs/api</directory>
+                <targetPath>static</targetPath>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+        </resources>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                         <path>
                             <groupId>org.projectlombok</groupId>
                             <artifactId>lombok</artifactId>
-                            <version>${lombok.version}</version>
+                            <version>1.18.20</version>
                         </path>
                         <path>
                             <groupId>org.mapstruct</groupId>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot-maven-plugin.version}</version>
+                <version>2.3.3.RELEASE</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>build-info</goal>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
             </plugin>
             <plugin>
                 <!-- The gmavenplus plugin is used to compile Groovy code. To learn more about this plugin,
                 visit https://github.com/groovy/GMavenPlus/wiki -->
                 <groupId>org.codehaus.gmavenplus</groupId>
                 <artifactId>gmavenplus-plugin</artifactId>
-                <version>${gmavenplus-plugin.version}</version>
+                <version>1.12.1</version>
                 <executions>
                     <execution>
                         <goals>
                     <dependency>
                         <groupId>org.onap.oparent</groupId>
                         <artifactId>checkstyle</artifactId>
-                        <version>${oparent.version}</version>
+                        <version>3.2.0</version>
                     </dependency>
                     <dependency>
                         <groupId>org.onap.cps</groupId>
                         <artifactId>checkstyle</artifactId>
-                        <version>${cps.checkstyle.version}</version>
+                        <version>${cps.version}</version>
                     </dependency>
                 </dependencies>
             </plugin>
             <plugin>
                 <groupId>com.github.spotbugs</groupId>
                 <artifactId>spotbugs-maven-plugin</artifactId>
-                <version>${spotbugs-maven-plugin.version}</version>
+                <version>4.1.3</version>
                 <dependencies>
                     <dependency>
                         <groupId>com.github.spotbugs</groupId>
                         <artifactId>spotbugs</artifactId>
-                        <version>${spotbugs.version}</version>
+                        <version>4.2.0</version>
                     </dependency>
                     <dependency>
                         <groupId>org.onap.cps</groupId>
                         <artifactId>spotbugs</artifactId>
-                        <version>${cps.spotbugs.version}</version>
+                        <version>${cps.version}</version>
                     </dependency>
                     <dependency>
                         <!-- The SpotBugs Maven plugin uses SLF4J 1.8 beta 2 -->
                         <groupId>org.slf4j</groupId>
                         <artifactId>slf4j-simple</artifactId>
-                        <version>${spotbugs.slf4j.version}</version>
+                        <version>1.8.0-beta4</version>
                     </dependency>
                 </dependencies>
                 <configuration>
                         <plugin>
                             <groupId>jp.skypencil.findbugs.slf4j</groupId>
                             <artifactId>bug-pattern</artifactId>
-                            <version>${bug-pattern.version}</version>
+                            <version>1.5.0</version>
                         </plugin>
                     </plugins>
                     <!--
                       to 'Low'.
                     -->
                     <effort>Max</effort>
+                    <addSourceDirs>true</addSourceDirs>
                     <!-- Reports all bugs (other values are medium and max) -->
                     <threshold>Low</threshold>
                     <!-- Build doesn't fail if problems are found -->
                             <goal>check</goal>
                         </goals>
                         <configuration>
+                            <excludes>
+                                <exclude>org/onap/cps/temporal/controller/rest/model/*</exclude>
+                            </excludes>
                             <dataFile>${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
                             <rules>
                                 <rule>
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <groupId>io.swagger.codegen.v3</groupId>
+                <artifactId>swagger-codegen-maven-plugin</artifactId>
+                <version>3.0.27</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>generate</goal>
+                        </goals>
+                        <configuration>
+                            <inputSpec>${project.basedir}/docs/api/swagger/openapi.yml</inputSpec>
+                            <invokerPackage>org.onap.cps.temporal.controller.rest</invokerPackage>
+                            <modelPackage>org.onap.cps.temporal.controller.rest.model</modelPackage>
+                            <apiPackage>org.onap.cps.temporal.controller.rest</apiPackage>
+                            <language>spring</language>
+                            <generateSupportingFiles>false</generateSupportingFiles>
+                            <configOptions>
+                                <sourceFolder>src/gen/java</sourceFolder>
+                                <dateLibrary>java11</dateLibrary>
+                                <interfaceOnly>true</interfaceOnly>
+                                <useTags>true</useTags>
+                            </configOptions>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
 
        <pluginManagement>
             <plugins>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>3.0.0-M5</version>
+                </plugin>
                 <plugin>
                     <groupId>com.google.cloud.tools</groupId>
                     <artifactId>jib-maven-plugin</artifactId>
-                    <version>${jib-maven-plugin.version}</version>
+                    <version>3.0.0</version>
                     <configuration>
                         <container>
-                            <mainClass>${app}</mainClass>
                             <creationTime>USE_CURRENT_TIMESTAMP</creationTime>
                         </container>
                         <from>
         </pluginManagement>
     </build>
 
+    <repositories>
+        <repository>
+            <id>nordix-liquibase-repo</id>
+            <name>liquibase</name>
+            <url>https://artifactory.nordix.org/artifactory/liquibase</url>
+        </repository>
+    </repositories>
+
     <profiles>
         <profile>
-            <id>cps-temporal-docker</id>
+            <id>docker</id>
             <build>
                 <plugins>
                     <plugin>