<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.onap.ccsdk.parent</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- <relativePath/>
+ <groupId>org.onap.ccsdk.apps</groupId>
+ <artifactId>ccsdk-apps-ms</artifactId>
+ <version>1.4.0-SNAPSHOT</version>
</parent>
<groupId>org.onap.ccsdk.apps</groupId>
<artifactId>sliboot</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.4.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>ccsdk-apps :: sliboot :: ${project.artifactId}</name>
<properties>
- <start-class>org.onap.ccsdk.apps.ms.sliboot.App</start-class>
- <shiro.version>1.5.0</shiro.version>
- <aaf-shiro-bundle.version>2.1.13</aaf-shiro-bundle.version>
- <base.image.name>onap/ccsdk-alpine-image</base.image.name>
+ <start-class>org.onap.ccsdk.apps.ms.sliboot.SlibootApp</start-class>
+ <aaf.cadi.version>2.1.21</aaf.cadi.version>
+ <base.image.name>onap/ccsdk-alpine-j11-image</base.image.name>
+ <base.image.version>1.2.2</base.image.version>
<image.name>onap/ccsdk-sliboot-alpine-image</image.name>
<ccsdk.project.version>${project.version}</ccsdk.project.version>
+ <ccsdk.distribution.version>1.2.2</ccsdk.distribution.version>
<ccsdk.build.timestamp>${maven.build.timestamp}</ccsdk.build.timestamp>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
- <ccsdk.sliboot.jar>${project.artifactId}-${project.version}.jar</ccsdk.sliboot.jar>
+ <ccsdk.sliboot.jar>${project.artifactId}-${project.version}-exec.jar</ccsdk.sliboot.jar>
<docker.push.phase>deploy</docker.push.phase>
<docker.verbose>true</docker.verbose>
+ <docker.autoCreateCustomNetworks>true</docker.autoCreateCustomNetworks>
+ <java.home>/opt/java/openjdk</java.home>
+ <java.security.dir>${java.home}/lib/security</java.security.dir>
</properties>
<dependencies>
<artifactId>swagger-annotations</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.shiro</groupId>
- <artifactId>shiro-spring-boot-web-starter</artifactId>
- <version>${shiro.version}</version>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
- <dependency>
- <groupId>org.onap.aaf.cadi</groupId>
- <artifactId>aaf-cadi-shiro</artifactId>
- <version>${aaf-shiro-bundle.version}</version>
- </dependency>
-
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
- <artifactId>springfox-swagger2</artifactId>
- <version>2.9.2</version>
+ <artifactId>springfox-boot-starter</artifactId>
+ <version>${springfox.version}</version>
</dependency>
<dependency>
- <groupId>io.springfox</groupId>
- <artifactId>springfox-swagger-ui</artifactId>
- <version>2.9.2</version>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-cadi-client</artifactId>
+ <version>${aaf.cadi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-cadi-core</artifactId>
+ <version>${aaf.cadi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-auth-client</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-misc-env</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-misc-rosetta</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <!-- Needed by logging-analytics payload logging filter -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
+ <version>3.4.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-cadi-client</artifactId>
+ <version>${aaf.cadi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-cadi-core</artifactId>
+ <version>${aaf.cadi.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-auth-client</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-misc-env</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.aaf.authz</groupId>
+ <artifactId>aaf-misc-rosetta</artifactId>
+ <version>${aaf.cadi.version}</version>
+ <scope>runtime</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>sli-provider-base</artifactId>
<version>${ccsdk.sli.core.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sliapi-model-swagger</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ <type>yaml</type>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.core</groupId>
+ <artifactId>sliPluginUtils-provider</artifactId>
+ <version>${ccsdk.sli.core.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.plugins</groupId>
+ <artifactId>restapi-call-node-provider</artifactId>
+ <version>${ccsdk.sli.plugins.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.ccsdk.sli.plugins</groupId>
+ <artifactId>properties-node-provider</artifactId>
+ <version>${ccsdk.sli.plugins.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.logging-analytics</groupId>
+ <artifactId>logging-filter-spring</artifactId>
+ <version>1.6.6</version>
+ </dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.onap.logging-analytics</groupId>
- <artifactId>logging-filter-spring</artifactId>
- <version>1.6.6</version>
- </dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.onap.ccsdk.sli.core</groupId>
- <artifactId>sliPluginUtils-provider</artifactId>
- <version>${ccsdk.sli.core.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.ccsdk.sli.plugins</groupId>
- <artifactId>restapi-call-node-provider</artifactId>
- <version>${ccsdk.sli.plugins.version}</version>
- </dependency>
- <dependency>
- <groupId>org.onap.ccsdk.sli.plugins</groupId>
- <artifactId>properties-node-provider</artifactId>
- <version>${ccsdk.sli.plugins.version}</version>
- </dependency>
<!-- this jersey jar is needed for rest api call node to function properly -->
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
-
<executions>
<execution>
- <id>get-sliapi-yaml</id>
+ <id>copy-sliapi-model-swagger</id>
<phase>initialize</phase>
<goals>
- <goal>copy</goal>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/yaml</outputDirectory>
+ <useRepositoryLayout>false</useRepositoryLayout>
+ <includeTypes>yaml</includeTypes>
+ <stripVersion>true</stripVersion>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-dependencies</id>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <phase>prepare-package</phase>
+ <configuration>
+ <excludeTransitive>true</excludeTransitive>
+ <excludeTypes>yaml</excludeTypes>
+ <outputDirectory>${project.build.directory}/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ <overWriteIfNewer>true</overWriteIfNewer>
+ <useRepositoryLayout>false</useRepositoryLayout>
+ <addParentPoms>false</addParentPoms>
+ <copyPom>false</copyPom>
+ </configuration>
+ </execution>
+ <execution>
+ <id>unpack dgs</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>unpack</goal>
</goals>
<configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
<artifactItems>
<artifactItem>
- <groupId>org.onap.ccsdk.sli.core</groupId>
- <artifactId>sliapi-model-swagger</artifactId>
- <version>${ccsdk.sli.core.version}</version>
- <type>yaml</type>
- <outputDirectory>${project.build.directory}/yaml</outputDirectory>
- <destFileName>sliapi.yaml</destFileName>
+ <groupId>org.onap.ccsdk.distribution</groupId>
+ <artifactId>platform-logic-installer</artifactId>
+ <version>${ccsdk.distribution.version}</version>
+ <type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
<version>2.3.1</version>
<executions>
<execution>
+ <phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<output>target/generated-sources</output>
- <inputSpec>${project.build.directory}/yaml/sliapi.yaml</inputSpec>
+ <inputSpec>${project.build.directory}/yaml/sliapi-model-swagger.yaml</inputSpec>
<language>spring</language>
<apiPackage>org.onap.ccsdk.apps.ms.sliboot.swagger</apiPackage>
<modelPackage>org.onap.ccsdk.apps.ms.sliboot.swagger.model</modelPackage>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
+ <configuration>
+ <classifier>exec</classifier>
+ </configuration>
<executions>
<execution>
<goals>
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.19.1</version>
+ <configuration>
+ <environmentVariables>
+ <SDNC_CONFIG_DIR>${basedir}/src/test/resources</SDNC_CONFIG_DIR>
+ <SVCLOGIC_PROPERTIES>${basedir}/src/test/resources/svclogic.properties</SVCLOGIC_PROPERTIES>
+ </environmentVariables>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <skipITs>true</skipITs>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.6</version>
+ <executions>
+ <execution>
+ <id>copy-dockerfile</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>initialize</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/docker</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-config</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/config</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.properties</include>
+ <include>*.props</include>
+ <include>*.sql</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.keyfile</include>
+ <include>*.jks</include>
+ <include>*.p12</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-script</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>generate-resources</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <includes>
+ <include>*.sh</include>
+ </includes>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-jar</id>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals><!-- here the phase you need -->
+ <phase>package</phase>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${basedir}/target</directory>
+ <includes>
+ <include>${ccsdk.sliboot.jar}</include>
+ </includes>
+ <filtering>false</filtering>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.10</version>
-
+ <artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
- <id>copy-dependencies</id>
<goals>
- <goal>copy-dependencies</goal>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
</goals>
- <phase>prepare-package</phase>
- <configuration>
- <excludeTransitive>true</excludeTransitive>
- <outputDirectory>${project.build.directory}/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
- <overWriteReleases>false</overWriteReleases>
- <overWriteSnapshots>true</overWriteSnapshots>
- <overWriteIfNewer>true</overWriteIfNewer>
- <useRepositoryLayout>false</useRepositoryLayout>
- <addParentPoms>false</addParentPoms>
- <copyPom>false</copyPom>
- </configuration>
- </execution>
- <execution>
- <id>unpack dgs</id>
- <phase>generate-sources</phase>
- <goals>
- <goal>unpack</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
- <artifactItems>
- <artifactItem>
- <groupId>org.onap.ccsdk.distribution</groupId>
- <artifactId>platform-logic-installer</artifactId>
- <version>${project.version}</version>
- <type>zip</type>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>copy-dockerfile</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>initialize</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/docker</directory>
- <includes>
- <include>Dockerfile</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-config</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/config</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.properties</include>
- <include>*.props</include>
- <include>*.sql</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.keyfile</include>
- <include>*.jks</include>
- <include>*.p12</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-script</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>generate-resources</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>*.sh</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- <execution>
- <id>copy-jar</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>package</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/lib</outputDirectory>
- <resources>
- <resource>
- <directory>${basedir}/target</directory>
- <includes>
- <include>${ccsdk.sliboot.jar}</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </configuration>
</execution>
</executions>
+ <configuration>
+ <skipITs>false</skipITs>
+ <environmentVariables>
+ <SLIBOOT_PORT>${sliboot.port}</SLIBOOT_PORT>
+ </environmentVariables>
+ </configuration>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
- <version>0.28.0</version>
+ <version>0.34.0</version>
<inherited>false</inherited>
<configuration>
<images>
<name>${image.name}</name>
<build>
<cleanup>try</cleanup>
- <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
+ <noCache>true</noCache>
+ <contextDir>${basedir}/target/docker-stage</contextDir>
<dockerFile>Dockerfile</dockerFile>
<tags>
<tag>${project.docker.latestminortag.version}</tag>
<goal>build</goal>
</goals>
</execution>
-
+ <execution>
+ <id>start-it-instance</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>start</goal>
+ </goals>
+ <configuration>
+ <images>
+ <image>
+ <name>mariadb:latest</name>
+ <alias>slibootdb</alias>
+ <run>
+ <env>
+ <MYSQL_ROOT_PASSWORD>itsASecret</MYSQL_ROOT_PASSWORD>
+ <MYSQL_USER>sli</MYSQL_USER>
+ <MYSQL_PASSWORD>abc123</MYSQL_PASSWORD>
+ <MYSQL_DATABASE>sdnctl</MYSQL_DATABASE>
+ </env>
+ <network>
+ <mode>custom</mode>
+ <name>onap</name>
+ <alias>dbhost</alias>
+ </network>
+ <ports>
+ <port>slibootdb.port:3306</port>
+ </ports>
+ <log>
+ <enabled>true</enabled>
+ </log>
+ </run>
+ </image>
+ <image>
+ <name>${image.name}:${project.docker.latesttagtimestamp.version}</name>
+ <alias>sliboot-container</alias>
+ <run>
+ <env>
+ <MYSQL_USER>sli</MYSQL_USER>
+ <MYSQL_PASSWORD>abc123</MYSQL_PASSWORD>
+ <MYSQL_DATABASE>sdnctl</MYSQL_DATABASE>
+ <MYSQL_HOST>dbhost</MYSQL_HOST>
+ <SDNC_CONFIG_DIR>/opt/onap/ccsdk/config</SDNC_CONFIG_DIR>
+ </env>
+ <dependsOn>
+ <container>slibootdb</container>
+ </dependsOn>
+ <network>
+ <mode>custom</mode>
+ <name>onap</name>
+ <alias>sliboot</alias>
+ </network>
+ <ports>
+ <port>sliboot.port:8080</port>
+ </ports>
+ <wait>
+ <log>Started SlibootApp</log>
+ <time>120000</time>
+ </wait>
+ <log>
+ <enabled>true</enabled>
+ </log>
+ </run>
+ </image>
+ </images>
+ </configuration>
+ </execution>
+ <execution>
+ <id>stop-it-instance</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>stop</goal>
+ </goals>
+ </execution>
<execution>
<id>push-images</id>
- <phase>${docker.push.phase}</phase>
<goals>
- <goal>build</goal>
<goal>push</goal>
</goals>
</execution>