summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pom.xml168
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/App.java6
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/config/ConfigHandler.java3
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/healthcheck/HealthCheckHandler.java2
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/utils/DMaaPAdapter.java1
-rw-r--r--src/main/java/org/onap/dcaegen2/services/pmmapper/utils/RequestSender.java1
-rw-r--r--src/main/resources/Dockerfile39
-rw-r--r--src/main/resources/logback.xml111
-rw-r--r--version.properties2
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 @@
<groupId>org.onap.dcaegen2.services</groupId>
<artifactId>pm-mapper</artifactId>
- <version>1.1.2-SNAPSHOT</version>
+ <version>1.1.3-SNAPSHOT</version>
<parent>
<groupId>org.onap.oparent</groupId>
@@ -59,10 +59,13 @@
<xerces.version>2.11.0</xerces.version>
<reactor.test>3.1.0.RELEASE</reactor.test>
<!-- Plugin Versions -->
- <shade.plugin.version>3.2.0</shade.plugin.version>
<jacoco.version>0.8.2</jacoco.version>
- <dockerfile.version>1.4.10</dockerfile.version>
<surefire.version>2.22.0</surefire.version>
+ <git-commit.version>3.0.0</git-commit.version>
+ <build-helper.version>3.0.0</build-helper.version>
+ <docker-maven.version>0.30.0</docker-maven.version>
+ <maven-jar.version>3.1.2</maven-jar.version>
+ <dependencies.version>3.1.1</dependencies.version>
<!-- Plugin Settings -->
<image-name>${docker.push.registry}/onap/${project.groupId}.${project.artifactId}</image-name>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
@@ -75,9 +78,11 @@
<sonar.projectVersion>${project.version}</sonar.projectVersion>
<compiler.target.version>1.8</compiler.target.version>
<compiler.source.version>1.8</compiler.source.version>
- <shade.main>org.onap.dcaegen2.services.pmmapper.App</shade.main>
- <shade.transformer>org.apache.maven.plugins.shade.resource.ManifestResourceTransformer</shade.transformer>
<onap.logging.version>1.2.2</onap.logging.version>
+ <classpath.separator>@@</classpath.separator>
+ <pmmapper.main.class>org.onap.dcaegen2.services.pmmapper.App</pmmapper.main.class>
+ <dep.dir.name>libs</dep.dir.name>
+ <ext.dep.dir.path>${dep.dir.name}/external</ext.dep.dir.path>
</properties>
<dependencies>
@@ -211,60 +216,127 @@
<build>
<plugins>
<plugin>
- <groupId>com.spotify</groupId>
- <artifactId>dockerfile-maven-plugin</artifactId>
- <version>${dockerfile.version}</version>
+ <groupId>pl.project13.maven</groupId>
+ <artifactId>git-commit-id-plugin</artifactId>
+ <version>${git-commit.version}</version>
<configuration>
- <repository>${image-name}</repository>
- <dockerfile>${project.build.outputDirectory}/Dockerfile</dockerfile>
- <buildArgs>
- <JAR>${project.build.finalName}-jar-with-dependencies.jar</JAR>
- </buildArgs>
+ <dateFormat>${maven.build.timestamp.format}</dateFormat>
</configuration>
<executions>
<execution>
- <id>tag-version</id>
- <phase>none</phase>
+ <id>get-git-info</id>
<goals>
- <goal>tag</goal>
+ <goal>revision</goal>
</goals>
- <configuration>
- <tag>${project.version}-${timestamp}</tag>
- </configuration>
- </execution>
- <execution>
- <id>latest-snapshot</id>
- <phase>none</phase>
- <goals>
- <goal>tag</goal>
- </goals>
- <configuration>
- <tag>latest-snapshot</tag>
- </configuration>
</execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>${dependencies.version}</version>
+ <configuration>
+ <silent>true</silent>
+ <includeScope>runtime</includeScope>
+ <pathSeparator>${classpath.separator}</pathSeparator>
+ </configuration>
+ <executions>
<execution>
- <id>push-latest</id>
- <phase>none</phase>
+ <id>copy-external-dependencies</id>
+ <phase>prepare-package</phase>
<goals>
- <goal>push</goal>
+ <goal>copy-dependencies</goal>
+ <goal>build-classpath</goal>
</goals>
<configuration>
- <tag>latest-snapshot</tag>
+ <excludeGroupIds>${project.parent.groupId}</excludeGroupIds>
+ <outputDirectory>${project.build.directory}/${ext.dep.dir.path}</outputDirectory>
+ <prefix>./${ext.dep.dir.path}</prefix>
+ <outputProperty>classpath.external</outputProperty>
</configuration>
</execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>${build-helper.version}</version>
+ <executions>
<execution>
- <id>push-version</id>
- <phase>none</phase>
+ <id>fix-classpath-separator</id>
+ <phase>prepare-package</phase>
<goals>
- <goal>push</goal>
+ <goal>regex-properties</goal>
</goals>
<configuration>
- <tag>${project.version}-${timestamp}</tag>
+ <regexPropertySettings>
+ <regexPropertySetting>
+ <name>classpath.external</name>
+ <value>${classpath.external}</value>
+ <regex>${classpath.separator}</regex>
+ <replacement xml:space="preserve"> </replacement>
+ </regexPropertySetting>
+ </regexPropertySettings>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>${docker-maven.version}</version>
+ <configuration>
+ <images>
+ <image>
+ <name>${project.groupId}.${project.artifactId}</name>
+ <registry>${onap.nexus.dockerregistry.daily}</registry>
+ <build>
+ <contextDir>${project.basedir}</contextDir>
+ <dockerFile>${project.build.outputDirectory}/Dockerfile</dockerFile>
+ <args>
+ <JAR>${project.build.finalName}.jar</JAR>
+ </args>
+ <cleanup>none</cleanup>
+ <tags>
+ <tag>${project.version}</tag>
+ <tag>${project.version}-${maven.build.timestamp}Z</tag>
+ </tags>
+ </build>
+ </image>
+ </images>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>${maven-jar.version}</version>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>${pmmapper.main.class}</mainClass>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ <addBuildEnvironmentEntries>true</addBuildEnvironmentEntries>
+ <useUniqueVersions>false</useUniqueVersions> <!-- workaround for MJAR-156 -->
+ </manifest>
+ <manifestEntries>
+ <Class-Path>${classpath.external}</Class-Path>
+ <Git-Branch>${git.branch}</Git-Branch>
+ <Git-Build-Host>${git.build.host}</Git-Build-Host>
+ <Git-Build-Time>${git.build.time}</Git-Build-Time>
+ <Git-Build-User-Email>${git.build.user.email}</Git-Build-User-Email>
+ <Git-Build-User-Name>${git.build.user.name}</Git-Build-User-Name>
+ <Git-Build-Version>${git.build.version}</Git-Build-Version>
+ <Git-Closest-Tag-Name>${git.closest.tag.name}</Git-Closest-Tag-Name>
+ <Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
+ <Git-Commit-Message-Short>${git.commit.message.short}</Git-Commit-Message-Short>
+ <Git-Commit-Time>${git.commit.time}</Git-Commit-Time>
+ <Git-Commit-User-Email>${git.commit.user.email}</Git-Commit-User-Email>
+ <Git-Commit-User-Name>${git.commit.user.name}</Git-Commit-User-Name>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
@@ -279,28 +351,6 @@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>${shade.plugin.version}</version>
- <executions>
- <execution>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <shadedArtifactAttached>true</shadedArtifactAttached>
- <shadedClassifierName>jar-with-dependencies</shadedClassifierName>
- <transformers>
- <transformer
- implementation="${shade.transformer}">
- <mainClass>${shade.main}</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${maven.compiler.source}</source>
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 @@
-<configuration>
- <property name="outputFilename" value="pm-mapper_output"/>
- <property name="logPath" value="/var/log/ONAP/dcaegen2/services/pm-mapper"/>
- <property name="archivePath" value="${logPath}/archive"/>
- <property name="maxFileSize" value="50MB"/>
- <property name="maxHistory" value="30"/>
- <property name="totalSizeCap" value="10GB"/>
- <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
- <property name="p_lvl" value="%level"/>
- <property name="p_log" value="%logger"/>
- <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
- <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
- <property name="p_thr" value="%thread"/>
- <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
-
- <variable name="logLevel" value="${LOG_LEVEL:-DEBUG}"/>
-
- <logger name="org.mockserver" level="${mockserver.logLevel:-OFF}"/>
-
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- </appender>
-
- <appender name="ROLLING-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${logPath}/${outputFilename}.log</file>
- <encoder>
- <pattern>${pattern}</pattern>
- </encoder>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <FileNamePattern>${archivePath}/${outputFilename}.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
- <MaxFileSize>${maxFileSize}</MaxFileSize>
- <MaxHistory>${maxHistory}</MaxHistory>
- <TotalSizeCap>${totalSizeCap}</TotalSizeCap>
- </rollingPolicy>
- </appender>
-
- <root level="${logLevel}" additivity="false">
- <appender-ref ref="CONSOLE" />
- <appender-ref ref="ROLLING-FILE" />
- </root>
-
-</configuration> \ No newline at end of file
+<configuration scan="true" scanPeriod="30 seconds" debug="true">
+ <property name="outputFilename" value="pm-mapper_output"/>
+ <property name="outputFilenameReadable" value="pm-mapper_output_readable"/>
+ <property name="logPath" value="/var/log/ONAP/dcaegen2/services/pm-mapper"/>
+ <property name="archivePath" value="${logPath}/archive"/>
+ <property name="maxFileSize" value="50MB"/>
+ <property name="maxHistory" value="30"/>
+ <property name="totalSizeCap" value="10GB"/>
+ <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+ <property name="p_lvl" value="%level"/>
+ <property name="p_log" value="%logger"/>
+ <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+ <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+ <property name="p_thr" value="%thread"/>
+ <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+ <property name="patternReadable" value="%nopexception${p_tim} | ${p_lvl} | ${p_msg}%n"/>
+
+
+ <variable name="logLevel" value="${LOG_LEVEL:-INFO}"/>
+
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <appender name="ROLLING-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logPath}/${outputFilename}.log</file>
+ <encoder>
+ <pattern>${pattern}</pattern>
+ </encoder>
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+ <FileNamePattern>${logPath}/${outputFilename}.%d{yyyy-MM-dd}.%i.log.zip</FileNamePattern>
+ <MaxFileSize>${maxFileSize}</MaxFileSize>
+ <MaxHistory>${maxHistory}</MaxHistory>
+ <TotalSizeCap>${totalSizeCap}</TotalSizeCap>
+ </rollingPolicy>
+ </appender>
+
+ <appender name="READABLE-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${logPath}/${outputFilenameReadable}.log</file>
+ <encoder>
+ <pattern>${patternReadable}</pattern>
+ </encoder>
+
+ <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+ <fileNamePattern>${logPath}/${outputFilenameReadable}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+ <minIndex>1</minIndex>
+ <maxIndex>1</maxIndex>
+ </rollingPolicy>
+
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>${maxFileSize}</maxFileSize>
+ </triggeringPolicy>
+ </appender>
+
+ <root level="${logLevel}" additivity="false">
+ <appender-ref ref="CONSOLE" />
+ <appender-ref ref="ROLLING-FILE" />
+ <appender-ref ref="READABLE-FILE" />
+ </root>
+
+</configuration>
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