Package and Create Docker Image for Xacml PDP

- Creates docker image of policy xacml-pdp
- Creates zip package of policy xacml-pdp
- Also committed changes from Healthcheck/Statitics review that were
allowed to be deferred

Change-Id: Ia5fb72be05a30a341692453fe4ff32c7b112e861
Issue-ID: POLICY-1436
Signed-off-by: Michael Mokry <michael.mokry@att.com>
diff --git a/packages/policy-xacmlpdp-tarball/pom.xml b/packages/policy-xacmlpdp-tarball/pom.xml
new file mode 100644
index 0000000..2605d94
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/pom.xml
@@ -0,0 +1,65 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  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=========================================================
+-->
+
+<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>
+        <groupId>org.onap.policy.xacml-pdp</groupId>
+        <artifactId>packages</artifactId>
+        <version>2.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>policy-xacmlpdp-tarball</artifactId>
+    <name>${project.artifactId}</name>
+    <description>Creates the zip pacakge of entire Xacml PDP component</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.onap.policy.xacml-pdp</groupId>
+            <artifactId>main</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>generate-complete-tar</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                        <configuration>
+                            <descriptors>
+                                <descriptor>src/main/package/tarball/assembly.xml</descriptor>
+                            </descriptors>
+                            <finalName>${project.artifactId}-${project.version}</finalName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/packages/policy-xacmlpdp-tarball/src/main/package/tarball/assembly.xml b/packages/policy-xacmlpdp-tarball/src/main/package/tarball/assembly.xml
new file mode 100644
index 0000000..4c76c5a
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/package/tarball/assembly.xml
@@ -0,0 +1,70 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  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=========================================================
+-->
+
+<assembly>
+    <id>tarball</id>
+    <formats>
+        <format>tar.gz</format>
+    </formats>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <dependencySets>
+        <dependencySet>
+            <useProjectArtifact>true</useProjectArtifact>
+            <outputDirectory>/lib</outputDirectory>
+            <unpack>false</unpack>
+            <scope>runtime</scope>
+            <includes>
+                <include>*:jar</include>
+            </includes>
+        </dependencySet>
+    </dependencySets>
+    <fileSets>
+        <fileSet>
+            <directory>${project.basedir}/src/main/resources</directory>
+            <includes>
+                <include>policyLogger.properties</include>
+            </includes>
+            <outputDirectory>/bin/config</outputDirectory>
+            <lineEnding>unix</lineEnding>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/src/main/resources/etc
+            </directory>
+            <includes>
+                <include>*.json</include>
+                <include>*.xml</include>
+            </includes>
+            <outputDirectory>/etc</outputDirectory>
+            <lineEnding>unix</lineEnding>
+            <excludes>
+                <exclude>*.formatted</exclude>
+            </excludes>
+        </fileSet>
+        <fileSet>
+            <directory>${project.basedir}/src/main/resources/etc/ssl
+            </directory>
+            <includes>
+                <include>policy*</include>
+            </includes>
+            <outputDirectory>/etc/ssl</outputDirectory>
+            <lineEnding>keep</lineEnding>
+        </fileSet>
+    </fileSets>
+</assembly>
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/etc/defaultConfig.json b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/defaultConfig.json
new file mode 100644
index 0000000..561574a
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/defaultConfig.json
@@ -0,0 +1,11 @@
+{
+    "name": "XacmlPdpGroup",
+    "restServerParameters": {
+        "host": "0.0.0.0",
+        "port": 6969,
+        "userName": "healthcheck",
+        "password": "zb!XztG34",
+        "https": true,
+        "aaf": false
+    }
+}
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/etc/logback.xml b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/logback.xml
new file mode 100644
index 0000000..6f82561
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/logback.xml
@@ -0,0 +1,163 @@
+<!--
+  ============LICENSE_START=======================================================
+   Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  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=========================================================
+-->
+<configuration scan="true" scanPeriod="3 seconds" debug="true">
+
+    <property name="logDir" value="${POLICY_LOGS}" />
+
+    <property name="errorLog" value="error" />
+    <property name="debugLog" value="debug" />
+    <property name="networkLog" value="network" />
+    <property name="metricLog" value="metric" />
+    <property name="transactionLog" value="audit" />
+
+    <property name="debugPattern" value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%level|%logger{0}|%thread] %msg%n" />
+    <property name="errorPattern" value="${debugPattern}" />
+    <property name="networkPattern" value="[%d{yyyy-MM-dd'T'HH:mm:ss.SSS+00:00, UTC}|%t]%m%n" />
+    <property name="metricPattern"
+        value="%X{RequestID}|%X{InvocationID}|%X{ServiceName}|%X{PartnerName}|%X{BeginTimestamp}|%X{EndTimestamp}|%X{ElapsedTime}|%X{ServiceInstanceID}|%X{VirtualServerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%X{Severity}|%X{TargetEntity}|%X{TargetServiceName}|%X{Server}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ProcessKey}|%X{RemoteHost}|%X{AlertSeverity}|%X{TargetVirtualEntity}|%level|%thread| %msg%n" />
+    <property name="transactionPattern" value="${metricPattern}" />
+
+    <appender name="errorOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDir}/${errorLog}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${logDir}/${errorLog}.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+        <encoder>
+            <pattern>${errorPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="asyncErrorOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="errorOut" />
+    </appender>
+
+    <appender name="debugOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDir}/${debuLog}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${logDir}/${debugLog}.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>DEBUG</level>
+        </filter>
+        <encoder>
+            <pattern>${debugPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="asyncDebugOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="debugOut" />
+    </appender>
+
+    <appender name="metricOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDir}/${metricsLog}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${logDir}/${metricsLog}.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${metricPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="asyncMetricOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="metricOut" />
+    </appender>
+
+    <appender name="networkOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDir}/${networkLog}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${logDir}/${networkLog}.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${networkPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="asyncNetworkOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="networkOut" />
+    </appender>
+
+    <appender name="transactionOut" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDir}/${transactionLog}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${logDir}/${transactionLog}.%d{yyyy-MM-dd}.%i.log.zip
+            </fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <maxHistory>30</maxHistory>
+            <totalSizeCap>10GB</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${transactionPattern}</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="asyncTransactionOut" class="ch.qos.logback.classic.AsyncAppender">
+        <appender-ref ref="transactionOut" />
+    </appender>
+
+    <logger name="metrics" level="info" additivity="false">
+        <appender-ref ref="asyncMetricsOut" />
+    </logger>
+
+    <logger name="error" level="error" additivity="false">
+        <appender-ref ref="asyncErrorOut" />
+    </logger>
+
+    <logger name="debug" level="debug" additivity="false">
+        <appender-ref ref="asyncDebugOut" />
+    </logger>
+
+    <logger name="network" level=info" additivity="false">
+        <appender-ref ref="asyncNetworkOut" />
+    </logger>
+    
+    <logger name="org.eclipse.jetty.server.RequestLog" level="info" additivity="false">
+        <appender-ref ref="asyncNetworkOut" />
+    </logger>
+    
+    <logger name="transactionOut" level="info" additivity="false">
+        <appender-ref ref="asyncTransactionOut" />
+    </logger>
+
+    <root level="INFO">
+        <appender-ref ref="asyncDebugOut" />
+        <appender-ref ref="asyncErrorOut" />
+        <appender-ref ref="asyncMetricOut" />
+        <appender-ref ref="asyncTransactionOut" />
+        <appender-ref ref="asyncNetworkOut" />
+    </root>
+
+</configuration>
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/etc/s3pConfig.json b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/s3pConfig.json
new file mode 100644
index 0000000..54be41a
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/s3pConfig.json
@@ -0,0 +1,11 @@
+{
+    "name":"XacmlPdpGroup",
+    "restServerParameters":{
+        "host":"0.0.0.0",
+        "port":6969,
+        "userName":"healthcheck",
+        "password":"zb!XztG34",
+        "https": true,
+        "aaf": false
+    }
+}
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-keystore b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-keystore
new file mode 100644
index 0000000..7d2b1ec
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-keystore
Binary files differ
diff --git a/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-truststore b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-truststore
new file mode 100644
index 0000000..8834ac2
--- /dev/null
+++ b/packages/policy-xacmlpdp-tarball/src/main/resources/etc/ssl/policy-truststore
Binary files differ