From 924a805b71005f56fed260e1b92e4e27ef0a381f Mon Sep 17 00:00:00 2001 From: dfarrelly Date: Wed, 24 Jul 2019 16:17:13 +0000 Subject: Align PM Mapper to new build guidelines *Switch to Fabric8 docker maven plugin *Add git commit plugin *Remove shaded jar *Remove some unused imports *Add a human readable log file Issue-ID: DCAEGEN2-1683 Change-Id: I1028f3195d3f03a9d919c91073398b01ccd6d7d1 Signed-off-by: dfarrelly --- pom.xml | 168 +++++++++++++-------- .../org/onap/dcaegen2/services/pmmapper/App.java | 6 + .../services/pmmapper/config/ConfigHandler.java | 3 +- .../pmmapper/healthcheck/HealthCheckHandler.java | 2 +- .../services/pmmapper/utils/DMaaPAdapter.java | 1 - .../services/pmmapper/utils/RequestSender.java | 1 - src/main/resources/Dockerfile | 39 +++-- src/main/resources/logback.xml | 111 ++++++++------ version.properties | 2 +- 9 files changed, 213 insertions(+), 120 deletions(-) diff --git a/pom.xml b/pom.xml index 2b2b1e1..41a8d73 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ org.onap.dcaegen2.services pm-mapper - 1.1.2-SNAPSHOT + 1.1.3-SNAPSHOT org.onap.oparent @@ -59,10 +59,13 @@ 2.11.0 3.1.0.RELEASE - 3.2.0 0.8.2 - 1.4.10 2.22.0 + 3.0.0 + 3.0.0 + 0.30.0 + 3.1.2 + 3.1.1 ${docker.push.registry}/onap/${project.groupId}.${project.artifactId} yyyyMMdd'T'HHmmss'Z' @@ -75,9 +78,11 @@ ${project.version} 1.8 1.8 - org.onap.dcaegen2.services.pmmapper.App - org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 1.2.2 + @@ + org.onap.dcaegen2.services.pmmapper.App + libs + ${dep.dir.name}/external @@ -211,59 +216,126 @@ - com.spotify - dockerfile-maven-plugin - ${dockerfile.version} + pl.project13.maven + git-commit-id-plugin + ${git-commit.version} - ${image-name} - ${project.build.outputDirectory}/Dockerfile - - ${project.build.finalName}-jar-with-dependencies.jar - + ${maven.build.timestamp.format} - tag-version - none + get-git-info - tag + revision - - ${project.version}-${timestamp} - - - - latest-snapshot - none - - tag - - - latest-snapshot - + + + + org.apache.maven.plugins + maven-dependency-plugin + ${dependencies.version} + + true + runtime + ${classpath.separator} + + - push-latest - none + copy-external-dependencies + prepare-package - push + copy-dependencies + build-classpath - latest-snapshot + ${project.parent.groupId} + ${project.build.directory}/${ext.dep.dir.path} + ./${ext.dep.dir.path} + classpath.external + + + + org.codehaus.mojo + build-helper-maven-plugin + ${build-helper.version} + - push-version - none + fix-classpath-separator + prepare-package - push + regex-properties - ${project.version}-${timestamp} + + + classpath.external + ${classpath.external} + ${classpath.separator} + + + + + io.fabric8 + docker-maven-plugin + ${docker-maven.version} + + + + ${project.groupId}.${project.artifactId} + ${onap.nexus.dockerregistry.daily} + + ${project.basedir} + ${project.build.outputDirectory}/Dockerfile + + ${project.build.finalName}.jar + + none + + ${project.version} + ${project.version}-${maven.build.timestamp}Z + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + ${maven-jar.version} + + + + ${pmmapper.main.class} + true + true + false + + + ${classpath.external} + ${git.branch} + ${git.build.host} + ${git.build.time} + ${git.build.user.email} + ${git.build.user.name} + ${git.build.version} + ${git.closest.tag.name} + ${git.commit.id} + ${git.commit.message.short} + ${git.commit.time} + ${git.commit.user.email} + ${git.commit.user.name} + + + + org.apache.maven.plugins maven-surefire-plugin @@ -277,28 +349,6 @@ maven-failsafe-plugin ${surefire.version} - - org.apache.maven.plugins - maven-shade-plugin - ${shade.plugin.version} - - - - shade - - - true - jar-with-dependencies - - - ${shade.main} - - - - - - org.apache.maven.plugins maven-compiler-plugin diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/App.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/App.java index a5eb68d..11a91f8 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/App.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/App.java @@ -20,6 +20,7 @@ package org.onap.dcaegen2.services.pmmapper; +import ch.qos.logback.classic.util.ContextInitializer; import io.undertow.Handlers; import io.undertow.Undertow; import io.undertow.util.StatusCodes; @@ -60,6 +61,11 @@ import java.util.ArrayList; import java.util.List; public class App { + + static { + System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, "/opt/app/pm-mapper/etc/logback.xml"); + } + private static final ONAPLogAdapter logger = new ONAPLogAdapter(LoggerFactory.getLogger(App.class)); private static Path mappingTemplate = Paths.get("/opt/app/pm-mapper/etc/mapping.ftl"); private static Path xmlSchema = Paths.get("/opt/app/pm-mapper/etc/measCollec_plusString.xsd"); diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/config/ConfigHandler.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/config/ConfigHandler.java index e98849e..fef1d19 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/config/ConfigHandler.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/config/ConfigHandler.java @@ -77,7 +77,8 @@ public class ConfigHandler { } catch (Exception exception) { throw new CBSServerError("Error connecting to Configbinding Service: ", exception); } finally { - logger.unwrap().info("Received pm-mapper configuration from ConfigBinding Service:\n{}", mapperConfigJson); + logger.unwrap().info("Received pm-mapper configuration from ConfigBinding Service: \n"); + logger.unwrap().debug(mapperConfigJson); } return convertMapperConfigToObject(mapperConfigJson); diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/healthcheck/HealthCheckHandler.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/healthcheck/HealthCheckHandler.java index 756ee7b..70a9596 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/healthcheck/HealthCheckHandler.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/healthcheck/HealthCheckHandler.java @@ -39,7 +39,7 @@ public class HealthCheckHandler implements HttpHandler { exchange.setStatusCode(StatusCodes.OK) .getResponseSender() .send(StatusCodes.OK_STRING); - + logger.unwrap().info("Healthcheck request successful"); } finally { logger.exiting(); } diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/DMaaPAdapter.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/DMaaPAdapter.java index fa01740..cc4413a 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/DMaaPAdapter.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/DMaaPAdapter.java @@ -26,7 +26,6 @@ import com.google.gson.TypeAdapter; import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonWriter; import java.io.IOException; -import java.util.Optional; import org.onap.dcaegen2.services.pmmapper.model.PublisherConfig; import org.onap.dcaegen2.services.pmmapper.model.SubscriberConfig; diff --git a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java index ba57387..411196c 100644 --- a/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java +++ b/src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java @@ -27,7 +27,6 @@ import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; -import java.util.Base64; import java.util.Optional; import java.util.UUID; import java.util.stream.Collectors; diff --git a/src/main/resources/Dockerfile b/src/main/resources/Dockerfile index 95fdfad..bf59524 100644 --- a/src/main/resources/Dockerfile +++ b/src/main/resources/Dockerfile @@ -19,21 +19,40 @@ # FROM openjdk:8u171-jre-alpine -ENTRYPOINT ["/bin/sh", "-c", "nohup sh etc/reconfigure.sh & /usr/bin/java -jar /opt/app/pm-mapper/pm-mapper.jar"] -ARG JAR WORKDIR /opt/app/pm-mapper RUN apk --no-cache add curl RUN mkdir -p /var/log/ONAP -RUN addgroup -S onap \ - && adduser -S pm-mapper -G onap \ - && chown -R pm-mapper:onap /opt/app/pm-mapper \ - && chmod a+rwx /var/log/ONAP -ADD target/${JAR} /opt/app/pm-mapper/pm-mapper.jar -ADD target/classes/mapping.ftl /opt/app/pm-mapper/etc/mapping.ftl -ADD target/classes/measCollec_plusString.xsd /opt/app/pm-mapper/etc/measCollec_plusString.xsd -ADD target/classes/reconfigure.sh /opt/app/pm-mapper/etc/reconfigure.sh +RUN adduser pm-mapper; \ + chmod a+rwx /var/log/ONAP; \ + chown -R pm-mapper /opt/app/pm-mapper USER pm-mapper + +COPY ${project.build.directory}/${ext.dep.dir.path}/ ${ext.dep.dir.path}/ +COPY ${project.build.directory}/${JAR} . + +COPY ${project.build.directory}/classes/mapping.ftl ./etc/mapping.ftl +COPY ${project.build.directory}/classes/measCollec_plusString.xsd ./etc/measCollec_plusString.xsd +COPY ${project.build.directory}/classes/reconfigure.sh ./etc/reconfigure.sh +COPY --chown=pm-mapper ${project.build.directory}/classes/logback.xml ./etc/logback.xml + + +LABEL git.branch="${git.branch}" \ + git.build.host="${git.build.host}" \ + git.build.time="${git.build.time}" \ + git.build.user.email="${git.build.user.email}" \ + git.build.user.name="${git.build.user.name}" \ + git.build.version="${git.build.version}" \ + git.closest.tag.name="${git.closest.tag.name}" \ + git.commit.id="${git.commit.id}" \ + git.commit.message.short="${git.commit.message.short}" \ + git.commit.time="${git.commit.time}" \ + git.commit.user.email="${git.commit.user.email}" \ + git.commit.user.name="${git.commit.user.name}" + + +ENTRYPOINT ["/bin/sh", "-c", "nohup sh etc/reconfigure.sh & /usr/bin/java -jar ${project.artifactId}-${project.version}.jar"] +ARG JAR diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 0701442..94d2151 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -1,46 +1,65 @@ - - - - - - - - - - - - - - - - - - - - - - - - ${pattern} - - - - - ${logPath}/${outputFilename}.log - - ${pattern} - - - ${archivePath}/${outputFilename}.%d{yyyy-MM-dd}.%i.log.zip - ${maxFileSize} - ${maxHistory} - ${totalSizeCap} - - - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + ${pattern} + + + + + ${logPath}/${outputFilename}.log + + ${pattern} + + + ${logPath}/${outputFilename}.%d{yyyy-MM-dd}.%i.log.zip + ${maxFileSize} + ${maxHistory} + ${totalSizeCap} + + + + + ${logPath}/${outputFilenameReadable}.log + + ${patternReadable} + + + + ${logPath}/${outputFilenameReadable}.%d{yyyy-MM-dd}.%i.log + 1 + 1 + + + + ${maxFileSize} + + + + + + + + + + diff --git a/version.properties b/version.properties index b2fcf61..914ccdc 100644 --- a/version.properties +++ b/version.properties @@ -1,6 +1,6 @@ major=1 minor=1 -patch=2 +patch=3 base_version=${major}.${minor}.${patch} release_version=${base_version} snapshot_version=${base_version}-SNAPSHOT \ No newline at end of file -- cgit 1.2.3-korg