diff options
author | Piotr Bochenski <piotr.bochenski@nokia.com> | 2018-08-31 11:49:21 +0200 |
---|---|---|
committer | Piotr Bochenski <piotr.bochenski@nokia.com> | 2018-08-31 12:11:46 +0200 |
commit | 3c2766d8a64d21f402b5234e33419a8aed14d7ea (patch) | |
tree | 66e26cdf9dad86b8787806a1d7914c1d21b06ae0 /prh-app-server | |
parent | 6fd8c7770fbea30ad2ec6e3f7645b8baab5a49a1 (diff) |
Refactor Docker image building process
Align Docker image building process to VES project.
Also refactor all Maven configurations.
Change-Id: I3856bb75f41247f5ce7f17fb813aa2ab692e4def
Issue-ID: DCAEGEN2-737
Signed-off-by: Piotr Bochenski <piotr.bochenski@nokia.com>
Diffstat (limited to 'prh-app-server')
-rw-r--r-- | prh-app-server/pom.xml | 214 | ||||
-rw-r--r-- | prh-app-server/src/test/resources/logback-test.xml | 16 | ||||
-rw-r--r-- | prh-app-server/src/test/resources/scheduled-context.xml | 16 |
3 files changed, 109 insertions, 137 deletions
diff --git a/prh-app-server/pom.xml b/prh-app-server/pom.xml index daaa5acb..9ecf57b5 100644 --- a/prh-app-server/pom.xml +++ b/prh-app-server/pom.xml @@ -18,124 +18,120 @@ ~ limitations under the License. ~ ============LICENSE_END========================================================= --> -<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns="http://maven.apache.org/POM/4.0.0" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<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> + <parent> - <artifactId>prh</artifactId> <groupId>org.onap.dcaegen2.services</groupId> + <artifactId>prh</artifactId> <version>1.0.0-SNAPSHOT</version> </parent> - <modelVersion>4.0.0</modelVersion> - <artifactId>prh-app-server</artifactId> <groupId>org.onap.dcaegen2.services.prh</groupId> + <artifactId>prh-app-server</artifactId> <packaging>jar</packaging> + <properties> + <docker.image.name>onap/${project.groupId}.${project.artifactId}</docker.image.name> <maven.build.timestamp.format>yyyyMMdd'T'HHmmss</maven.build.timestamp.format> - <project.fatJar.finalName>prh-app-server</project.fatJar.finalName> - <nexusproxy>https://nexus.onap.org</nexusproxy> - <snapshots.path>content/repositories/snapshots/</snapshots.path> - <releases.path>content/repositories/releases/</releases.path> - <docker.repo.url>${onap.nexus.dockerregistry.daily}</docker.repo.url> - <nexus.staging>false</nexus.staging> </properties> + <build> + <resources> + <resource> + <directory>config</directory> + <targetPath>${project.build.directory}/config</targetPath> + </resource> + </resources> + <plugins> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <executions> - <execution> - <id>custom-resources</id> - <phase>process-resources</phase> - <goals> - <goal>copy-resources</goal> - </goals> - <configuration> - <outputDirectory>${project.build.directory}/config</outputDirectory> - <resources> - <resource> - <directory>${project.basedir}/config</directory> - <filtering>true</filtering> - </resource> - </resources> - <encoding>UTF-8</encoding> - </configuration> - </execution> - </executions> - </plugin> - <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>repackage</goal> - </goals> - </execution> - </executions> <configuration> - <finalName>${project.fatJar.finalName}</finalName> + <finalName>${project.artifactId}</finalName> <mainClass>org.onap.dcaegen2.services.prh.MainApp</mainClass> </configuration> </plugin> - <!-- This plugin may go away in favor of a custom Dockerfile provided by Carsten and co. --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <configuration> - <skipDockerBuild>false</skipDockerBuild> - <imageName> - ${docker.repo.url}/onap/${project.groupId}.${project.artifactId} - </imageName> + <serverId>${onap.nexus.dockerregistry.daily}</serverId> + <imageName>${docker.image.name}</imageName> + <imageTags> + <tag>latest</tag> + </imageTags> <baseImage>openjdk:8-jre-alpine</baseImage> - <entryPoint>["java", "-jar", "/opt/${project.fatJar.finalName}.jar"]</entryPoint> <resources> <resource> - <targetPath>/opt</targetPath> <directory>${project.build.directory}</directory> - <include>${project.fatJar.finalName}.jar</include> + <include>${project.artifactId}.jar</include> + <targetPath>/opt</targetPath> </resource> <resource> - <targetPath>/config</targetPath> <directory>${project.build.directory}/config</directory> - <include>*</include> + <targetPath>/config</targetPath> </resource> </resources> <exposes> <expose>8100</expose> <expose>8433</expose> </exposes> - <imageTags> - <imageTag>${project.version}-SNAPSHOT-${maven.build.timestamp}Z</imageTag> - <imageTag>${project.version}</imageTag> - <imageTag>latest</imageTag> - </imageTags> - <serverId>${docker.repo.url}</serverId> - </configuration> - </plugin> - <plugin> - <groupId>org.sonatype.plugins</groupId> - <artifactId>nexus-staging-maven-plugin</artifactId> - <version>1.6.7</version> - <extensions>true</extensions> - <configuration> - <serverId>ecomp-staging</serverId> - <nexusUrl>${nexusproxy}</nexusUrl> - <stagingProfileId>176c31dfe190a</stagingProfileId> - <skipNexusStagingDeployMojo>${nexus.staging}</skipNexusStagingDeployMojo> + <entryPoint>["java", "-jar", "/opt/${project.artifactId}.jar"]</entryPoint> </configuration> + <executions> + <execution> + <id>build-image</id> + <phase>package</phase> + <goals> + <goal>build</goal> + </goals> + </execution> + <execution> + <id>tag-and-push-image-latest</id> + <phase>deploy</phase> + <goals> + <goal>tag</goal> + </goals> + <configuration> + <image>${docker.image.name}:latest</image> + <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:latest</newName> + <pushImage>true</pushImage> + </configuration> + </execution> + <execution> + <id>tag-and-push-image-with-version</id> + <phase>deploy</phase> + <goals> + <goal>tag</goal> + </goals> + <configuration> + <image>${docker.image.name}:latest</image> + <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}</newName> + <pushImage>true</pushImage> + </configuration> + </execution> + <execution> + <id>tag-and-push-image-with-version-and-date</id> + <phase>deploy</phase> + <goals> + <goal>tag</goal> + </goals> + <configuration> + <image>${docker.image.name}:latest</image> + <newName>${onap.nexus.dockerregistry.daily}/${docker.image.name}:${project.version}-${maven.build.timestamp}Z</newName> + <pushImage>true</pushImage> + </configuration> + </execution> + </executions> </plugin> </plugins> </build> - <dependencies> - <!--DEVELOPMENT DEPENDENCIES--> + <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> @@ -145,20 +141,18 @@ <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <dependency> - <groupId>com.spotify</groupId> - <artifactId>docker-maven-plugin</artifactId> - <exclusions> - <exclusion> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-core</artifactId> </dependency> <dependency> + <groupId>org.immutables</groupId> + <artifactId>value</artifactId> + </dependency> + <dependency> + <groupId>org.immutables</groupId> + <artifactId>gson</artifactId> + </dependency> + <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> </dependency> @@ -167,10 +161,6 @@ <artifactId>bcpkix-jdk15on</artifactId> </dependency> <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-utils</artifactId> - </dependency> - <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> </dependency> @@ -183,21 +173,21 @@ <artifactId>tomcat-embed-websocket</artifactId> </dependency> <dependency> - <groupId>org.immutables</groupId> - <artifactId>value</artifactId> + <groupId>org.onap.dcaegen2.services.prh</groupId> + <artifactId>prh-commons</artifactId> + <version>${project.version}</version> </dependency> <dependency> - <groupId>org.immutables</groupId> - <artifactId>gson</artifactId> + <groupId>org.onap.dcaegen2.services.prh</groupId> + <artifactId>prh-aai-client</artifactId> + <version>${project.version}</version> </dependency> <dependency> <groupId>org.onap.dcaegen2.services.prh</groupId> - <artifactId>prh-commons</artifactId> - <version>1.0.0-SNAPSHOT</version> + <artifactId>prh-dmaap-client</artifactId> + <version>${project.version}</version> </dependency> - - <!-- LOGGING DEPENDENCIES--> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> @@ -211,7 +201,6 @@ <artifactId>log4j-over-slf4j</artifactId> </dependency> - <!--TESTS DEPENDENCIES --> <dependency> <groupId>io.projectreactor</groupId> <artifactId>reactor-test</artifactId> @@ -235,6 +224,7 @@ <dependency> <groupId>org.junit.platform</groupId> <artifactId>junit-platform-launcher</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -254,19 +244,9 @@ <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> - </dependency> - <dependency> - <groupId>org.onap.dcaegen2.services.prh</groupId> - <artifactId>prh-aai-client</artifactId> - <version>${project.parent.version}</version> - </dependency> - <dependency> - <groupId>org.onap.dcaegen2.services.prh</groupId> - <artifactId>prh-dmaap-client</artifactId> - <version>${project.parent.version}</version> + <scope>test</scope> </dependency> - <!--REQUIRED TO GENERATE DOCUMENTATION --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> @@ -276,16 +256,4 @@ <artifactId>springfox-swagger-ui</artifactId> </dependency> </dependencies> - <dependencyManagement> - <dependencies> - <dependency> - <!-- IMPORT DEPENDENCY MANAGEMENT FROM SPRING BOOT --> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-dependencies</artifactId> - <version>2.0.1.RELEASE</version> - <type>pom</type> - <scope>import</scope> - </dependency> - </dependencies> - </dependencyManagement> </project> diff --git a/prh-app-server/src/test/resources/logback-test.xml b/prh-app-server/src/test/resources/logback-test.xml index 9c161fe3..c1f00665 100644 --- a/prh-app-server/src/test/resources/logback-test.xml +++ b/prh-app-server/src/test/resources/logback-test.xml @@ -16,18 +16,6 @@ ~ limitations under the License. ~ ============================LICENSE_END=========================================== --> -<configuration debug="false"> - <include resource="org/springframework/boot/logging/logback/base.xml"/> - <logger level="DEBUG" name="org.onap.dcaegen2.services.prh"/> - <appender class="ch.qos.logback.core.ConsoleAppender" name="Console"> - <encoder> - <pattern>%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n</pattern> - </encoder> - </appender> - - <root level="ERROR"> - <appender-ref ref="Console"/> - </root> - - +<configuration> + <root level="OFF"/> </configuration> diff --git a/prh-app-server/src/test/resources/scheduled-context.xml b/prh-app-server/src/test/resources/scheduled-context.xml new file mode 100644 index 00000000..91919aa2 --- /dev/null +++ b/prh-app-server/src/test/resources/scheduled-context.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:task="http://www.springframework.org/schema/task" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> + + <context:component-scan + base-package="org.onap.dcaegen2.services.prh"/> + <task:scheduled-tasks> + <task:scheduled ref="scheduleController" method="startTasks" + fixed-rate="1000"/> + </task:scheduled-tasks> +</beans> |