Base Package
================================================================================
Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ Modifications Copyright (C) 2020 Bell Canada.
================================================================================
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
============LICENSE_END=========================================================
-->
-
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
<offline>false</offline>
-
<profiles>
-
<profile>
<id>policy-local</id>
-
<repositories>
<repository>
<id>file-repository</id>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
<id>policy-releases</id>
-
<repositories>
<repository>
<id>${env.RELEASE_REPOSITORY_ID}</id>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
<id>policy-snapshots</id>
-
<repositories>
<repository>
<id>${env.SNAPSHOT_REPOSITORY_ID}</id>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
- <id>onap-releases</id>
-
+ <id>releases</id>
<repositories>
<repository>
- <id>onap-releases</id>
- <name>onap-releases</name>
- <url>https://nexus.onap.org/content/repositories/releases/</url>
+ <id>releases</id>
+ <name>releases</name>
+ <url>${env.MVN_RELEASE_REPO_URL}</url>
<releases>
<enabled>true</enabled>
</releases>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
-
- <id>onap-snapshots</id>
-
+ <id>snapshots</id>
<repositories>
<repository>
- <id>onap-snapshots</id>
- <name>onap-snapshots</name>
- <url>https://nexus.onap.org/content/repositories/snapshots/</url>
+ <id>snapshots</id>
+ <name>snapshots</name>
+ <url>${env.MVN_SNAPSHOT_REPO_URL}</url>
<releases>
<enabled>false</enabled>
</releases>
</snapshots>
</repository>
</repositories>
-
</profile>
-
</profiles>
-
<activeProfiles>
<activeProfile>policy-local</activeProfile>
<activeProfile>policy-releases</activeProfile>
<activeProfile>policy-snapshots</activeProfile>
- <activeProfile>onap-releases</activeProfile>
- <activeProfile>onap-snapshots</activeProfile>
+ <activeProfile>releases</activeProfile>
+ <activeProfile>snapshots</activeProfile>
</activeProfiles>
-
<servers>
<server>
<id>${env.SNAPSHOT_REPOSITORY_ID}</id>
<password>${env.REPOSITORY_PASSWORD}</password>
</server>
</servers>
-
</settings>
Base Package
================================================================================
Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+ Modifications Copyright (C) 2020 Bell Canada.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
============LICENSE_END=========================================================
-->
-
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
-
<offline>false</offline>
-
<profiles>
-
<profile>
<id>policy-local</id>
-
<repositories>
<repository>
<id>file-repository</id>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
- <id>onap-releases</id>
-
+ <id>releases</id>
<repositories>
<repository>
- <id>onap-releases</id>
- <name>onap-releases</name>
- <url>https://nexus.onap.org/content/repositories/releases/</url>
+ <id>releases</id>
+ <name>releases</name>
+ <url>${env.MVN_RELEASE_REPO_URL}</url>
<releases>
<enabled>true</enabled>
</releases>
</snapshots>
</repository>
</repositories>
-
</profile>
-
<profile>
- <id>onap-snapshots</id>
-
+ <id>snapshots</id>
<repositories>
<repository>
- <id>onap-snapshots</id>
- <name>onap-snapshots</name>
- <url>https://nexus.onap.org/content/repositories/snapshots/</url>
+ <id>snapshots</id>
+ <name>snapshots</name>
+ <url>${env.MVN_SNAPSHOT_REPO_URL}</url>
<releases>
<enabled>false</enabled>
</releases>
</snapshots>
</repository>
</repositories>
-
</profile>
-
</profiles>
-
<activeProfiles>
<activeProfile>policy-local</activeProfile>
- <activeProfile>onap-releases</activeProfile>
- <activeProfile>onap-snapshots</activeProfile>
+ <activeProfile>releases</activeProfile>
+ <activeProfile>snapshots</activeProfile>
</activeProfiles>
-
</settings>
ONAP Policy Engine - Docker files
================================================================================
Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
- Modifications Copyright (C) 2019 Bell Canada.
+ Modifications Copyright (C) 2019-2020 Bell Canada.
================================================================================
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
<docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
<maven.build.timestamp.format>yyyyMMdd'T'HHmm</maven.build.timestamp.format>
<docker.buildArg.BUILD_VERSION_DROOLS>${project.version}</docker.buildArg.BUILD_VERSION_DROOLS>
+ <docker.buildArg.MVN_SNAPSHOT_REPO_URL>${nexusproxy}/${snapshots.path}</docker.buildArg.MVN_SNAPSHOT_REPO_URL>
+ <docker.buildArg.MVN_RELEASE_REPO_URL>${nexusproxy}/${releases.path}</docker.buildArg.MVN_RELEASE_REPO_URL>
</properties>
<build>
ARG BUILD_VERSION_DROOLS=${BUILD_VERSION_DROOLS}
ARG POLICY_LOGS=/var/log/onap/policy/pdpd
ARG POLICY_INSTALL=/tmp/policy-install
+ARG MVN_SNAPSHOT_REPO_URL
+ARG MVN_RELEASE_REPO_URL
+ARG http_proxy
ENV BUILD_VERSION_DROOLS $BUILD_VERSION_DROOLS
ENV POLICY_INSTALL $POLICY_INSTALL
ENV POLICY_CONFIG $POLICY_HOME/config
ENV POLICY_LOGBACK $POLICY_CONFIG/logback.xml
ENV POLICY_DOCKER true
+ENV MVN_SNAPSHOT_REPO_URL $MVN_SNAPSHOT_REPO_URL
+ENV MVN_RELEASE_REPO_URL $MVN_RELEASE_REPO_URL
+ENV http_proxy $http_proxy
RUN apt-get install -y \
mariadb-client \
# ONAP POLICY
# ================================================================================
# Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2020 Bell Canada.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
JVM_OPTIONS=-server -Xms512m -Xmx1024m
-# SYSTEM software configuration
+# SYSTEM software configuration
POLICY_HOME=/opt/app/policy
POLICY_LOGS=/opt/app/policy/logs
KEYSTORE_PASSWD=Pol1cy_0nap
TRUSTSTORE_PASSWD=Pol1cy_0nap
+# System proxy settings
+# Empty by default, http proxy can be overridden during build time.
+# System property settings will always override the project
+# property supplied during build time.
+
+#http_proxy=
+#https_proxy=
+
# Telemetry credentials
TELEMETRY_PORT=9696
TELEMETRY_USER=
TELEMETRY_PASSWORD=
-# nexus repository
+# nexus repository for policy artifacts
SNAPSHOT_REPOSITORY_ID=
SNAPSHOT_REPOSITORY_URL=
REPOSITORY_PASSWORD=
REPOSITORY_OFFLINE=
+# nexus repository for all other artifacts.
+# By default the repo URLs point to ONAP nexus
+# repositories. These default build settings
+# can be overridden during build time.
+
+#MVN_SNAPSHOT_REPO_URL=https://nexus.onap.org/content/repositories/snapshots/
+#MVN_RELEASE_REPO_URL=https://nexus.onap.org/content/repositories/releases/
+
# Relational (SQL) DB access
SQL_HOST=
# ONAP
# ================================================================================
# Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2020 Bell Canada.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
return ${rval}
}
+##############################################################################
+# Usage: setMavenProxyArgs
+#
+# This function performs parsing of http proxy environment variable if provided,
+# extracting the attributes such as proxy host, port, username and password.
+# These proxy attributes are set into the global variable for maven proxy
+# settings to be used as build arguments with maven commands.
+##############################################################################
+
+function setMavenProxyArgs
+{
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} $* --"
+ set -x
+ fi
+
+ if [[ -z ${http_proxy} ]]; then
+ return 0
+ fi
+
+ local proxy_creds=${http_proxy#*//}
+ local proxy=${proxy_creds#*@}
+ local host=${proxy%:*}
+ local port=${proxy#*:}
+ MVN_PROXY_SETTINGS="-DproxyHost=${host} -DproxyPort=${port}"
+
+ if [[ "$proxy_creds" == *"@"* ]]; then
+ local creds=${proxy_creds%%@*}
+ local username=${creds%:*}
+ local password=${creds#*:}
+ MVN_PROXY_SETTINGS+=" -DproxyUsername=${username} -DproxyPassword=${password}"
+ fi
+}
+
##############################################################################
# Usage: deployJar <jar-file>
#
echo "${file}: deploying jar artifact to repository ${repoId}: ${repoUrl}"
echo "${file}: coordinates ${groupId} ${artifactId} ${version}"
- mvn ${CUSTOM_SETTINGS} deploy:deploy-file \
+ mvn ${CUSTOM_SETTINGS} ${MVN_PROXY_SETTINGS} deploy:deploy-file \
-Dfile="${file}" \
-Dversion="${version}" \
-Dpackaging=jar \
echo "${file}: deploying pom artifact to repository ${repoId}: ${repoUrl}"
echo "${file}: coordinates ${groupId} ${artifactId} ${version}"
- mvn ${CUSTOM_SETTINGS} deploy:deploy-file \
+ mvn ${CUSTOM_SETTINGS} ${MVN_PROXY_SETTINGS} deploy:deploy-file \
-Dfile="${file}" \
-Dpackaging=pom \
-DgeneratePom=false \
return 1
fi
- mvn ${CUSTOM_SETTINGS} org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file \
- -Dfile="${file}"
+ mvn ${CUSTOM_SETTINGS} ${MVN_PROXY_SETTINGS} \
+ org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file -Dfile="${file}"
return $?
}
return 1
fi
- mvn ${CUSTOM_SETTINGS} org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file \
+ mvn ${CUSTOM_SETTINGS} ${MVN_PROXY_SETTINGS} \
+ org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file \
-Dpackaging=pom \
-Dfile="${file}" \
-DpomFile="${file}"
echo "${file}: deploying dependencies from repository ${DEPENDENCY_REPO_URL}"
echo "${file}: coordinates ${groupId} ${artifactId} ${version}"
- mvn ${CUSTOM_SETTINGS} org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
+ mvn ${CUSTOM_SETTINGS} ${MVN_PROXY_SETTINGS} \
+ org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
-DartifactId="${artifactId}" \
-DgroupId="${groupId}" \
-Dversion="${version}" \
unset DEPENDENCY_REPO_URL
unset SETTINGS_FILE
unset CUSTOM_SETTINGS
+unset MVN_PROXY_SETTINGS
# process input
CUSTOM_SETTINGS="--settings=${SETTINGS_FILE}"
fi
+# Set proxy attributes into MVN_PROXY_SETTINGS variable
+setMavenProxyArgs
+
# retval has the count of failed operations
retval=0