aboutsummaryrefslogtreecommitdiffstats
path: root/kubernetes/aai/components/aai-sparky-be/templates/deployment.yaml
blob: 48a6b04913bd8fa999258abe7fd629e8bdd1776b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
{{/*
# Copyright (c) 2017 Amdocs, Bell Canada
# Modifications Copyright (c) 2018 AT&T
# Modifications Copyright (c) 2020 Nokia
#
# 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.
*/}}

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "common.fullname" . }}
  namespace: {{ include "common.namespace" . }}
  labels:
    app: {{ include "common.name" . }}
    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
    release: {{ include "common.release" . }}
    heritage: {{ .Release.Service }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      app: {{ include "common.name" . }}
  template:
    metadata:
      labels:
        app: {{ include "common.name" . }}
        release: {{ include "common.release" . }}
      name: {{ include "common.name" . }}
    spec:
      initContainers: {{ include "common.certInitializer.initContainer" . | nindent 6 }}
      {{- if ( include "common.needTLS" .) }}
      - command:
        - sh
        args:
        - -c
        - |
          echo "*** retrieve Truststore and Keystore password"
          export $(cat {{ .Values.certInitializer.credsPath }}/mycreds.prop \
            | xargs -0)
          if [ -z "$KEYSTORE_PASSWORD" ]
          then
            echo " /!\ certificates retrieval failed"
            exit 1
          fi
          echo "*** write them in portal part"
          cd /config-input
          for PFILE in `ls -1 .`
            do
              envsubst <${PFILE} >/config/${PFILE}
          done
        volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 8 }}
        - mountPath: /config-input
          name: portal-config-input
        - mountPath: /config
          name: portal-config
        image: {{ include "repositoryGenerator.image.envsubst" . }}
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        name: {{ include "common.name" . }}-update-config
      {{- end }}
      - command:
        - /app/ready.py
        args:
        - --container-name
        - aai
        env:
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        image: {{ include "repositoryGenerator.image.readiness" . }}
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        name: {{ include "common.name" . }}-readiness
      containers:
      - name: {{ include "common.name" . }}
        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
        command:
        - sh
        args:
        - -c
        - |
          echo "*** retrieve Truststore and Keystore password"
          export $(cat {{ .Values.certInitializer.credsPath }}/mycreds.prop \
            | xargs -0)
          echo "*** actual launch of AAI Sparky BE"
          /opt/app/sparky/bin/start.sh
        volumeMounts: {{ include "common.certInitializer.volumeMount" . | nindent 8 }}
        - mountPath: /etc/localtime
          name: localtime
          readOnly: true
        - mountPath: /opt/app/sparky/config/auth/csp-cookie-filter.properties
          name: auth-config
          subPath: csp-cookie-filter.properties
        - mountPath: /opt/app/sparky/config/portal/
          name: portal-config
        - mountPath: /opt/app/sparky/config/portal/BOOT-INF/classes/
          name: portal-config-props
        - mountPath: {{ .Values.log.path }}
          name: logs
        - mountPath:  /opt/app/sparky/config/application.properties
          name: config
          subPath: application.properties
        - mountPath:  /opt/app/sparky/config/application-resources.properties
          name: config
          subPath: application-resources.properties
        - mountPath:  /opt/app/sparky/config/application-ssl.properties
          name: config
          subPath: application-ssl.properties
        - mountPath:  /opt/app/sparky/config/application-oxm-default.properties
          name: config
          subPath: application-oxm-default.properties
        - mountPath:  /opt/app/sparky/config/application-oxm-override.properties
          name: config
          subPath: application-oxm-override.properties
        - mountPath:  /opt/app/sparky/config/application-oxm-schema-prod.properties
          name: config
          subPath: application-oxm-schema-prod.properties
        - mountPath:  /opt/app/sparky/config/roles.config
          name: config
          subPath: roles.config
        - mountPath:  /opt/app/sparky/config/users.config
          name: config
          subPath: users.config
        - mountPath:  /opt/app/sparky/config/logging/logback.xml
          name: config
          subPath: logback.xml
        ports:
        - containerPort: {{ .Values.service.internalPort }}
        # disable liveness probe when breakpoints set in debugger
        # so K8s doesn't restart unresponsive container
        {{- if eq .Values.liveness.enabled true }}
        livenessProbe:
          tcpSocket:
            port: {{ .Values.service.internalPort }}
          initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
          periodSeconds: {{ .Values.liveness.periodSeconds }}
        {{ end -}}
        readinessProbe:
          tcpSocket:
            port: {{ .Values.service.internalPort }}
          initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
          periodSeconds: {{ .Values.readiness.periodSeconds }}
        resources:
{{ include "common.resources" . }}
      {{- if .Values.nodeSelector }}
      nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
      {{- end -}}
      {{- if .Values.affinity }}
      affinity:
{{ toYaml .Values.affinity | indent 8 }}
      {{- end }}

      # side car containers
      {{ include "common.log.sidecar" . | nindent 6 }}
      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
      volumes: {{ include "common.certInitializer.volumes" . | nindent 6 }}
      - name: localtime
        hostPath:
          path: /etc/localtime
      - name: config
        configMap:
          name: {{ include "common.fullname" . }}
      - name: portal-config
        emptyDir:
          medium: Memory
      - name: portal-config-input
        configMap:
          name: {{ include "common.fullname" . }}-portal
      - name: portal-config-props
        configMap:
          name: {{ include "common.fullname" . }}-portal-props
      - name: auth-config
        secret:
          secretName: {{ include "common.fullname" . }}
      - name: logs
        emptyDir: {}
        {{ include "common.log.volumes" (dict "dot" . "configMapNamePrefix" (tpl .Values.logConfigMapNamePrefix .)) | nindent 6 }}
      - name: modeldir
        emptyDir: {}
      restartPolicy: {{ .Values.global.restartPolicy | default .Values.restartPolicy }}
      imagePullSecrets:
      - name: "{{ include "common.namespace" . }}-docker-registry-key"
-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

	<!-- PLEASE READ !!!!! This file is generated from ccsdk/parent/setup/src/main/template/pom-template.xml 
		Any updates needed should be made to that template and not to the generated 
		pom.xml file -->

	<modelVersion>4.0.0</modelVersion>
	<packaging>pom</packaging>
	<groupId>org.onap.ccsdk.parent</groupId>
	<artifactId>${odlparent.artifactId}</artifactId>
	<version>${project.version}</version>

	<parent>
		<groupId>${odlparent.groupId}</groupId>
		<artifactId>${odlparent.artifactId}</artifactId>
		<version>${odlparent.version}</version>
		<relativePath />
	</parent>


	<name>ONAP :: \${project.groupId} :: \${project.artifactId}</name>
	<url>http://wiki.onap.org</url>
	<description>Root POM to be used in place of odlparent for CCSDK based projects</description>


	<issueManagement>
		<system>JIRA</system>
		<url>https://jira.onap.org/</url>
	</issueManagement>

	<properties>

		<!-- properties from oparent -->
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
		<!-- sitePath may be overridden in the inheriting POM if desired -->
		<sitePath>/content/sites/site/\${project.groupId}/\${project.artifactId}/\${project.version}</sitePath>
		<jacoco.version>0.7.7.201606060606</jacoco.version>
		<sonar-jacoco-listeners.version>3.2</sonar-jacoco-listeners.version>
		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
		<!-- Default Sonar configuration -->
		<sonar.jacoco.reportPaths>target/code-coverage/jacoco-ut.exec,target/code-coverage/jacoco-it.exec</sonar.jacoco.reportPaths>
		<!-- Note: This list should match jacoco-maven-plugin's exclusion list 
			below -->
		<sonar.exclusions>**/gen/**,**/generated-sources/**,**/yang-gen**,**/pax/**</sonar.exclusions>
		<!-- If following file exist, auto-generation of swagger.json will be done -->
		<swagger-properties>\${basedir}/src/main/resources/swagger.properties</swagger-properties>
		<!-- If following file exist, auto-generation of sdk will be done -->
		<swagger-json>\${basedir}/src/main/resources/swagger.json</swagger-json>
		<!-- end of properties from oparent -->

		<!-- ONAP repositories -->
		<onap.nexus.host>nexus.onap.org</onap.nexus.host>
		<onap.nexus.port>443</onap.nexus.port>
		<onap.nexus.protocol>https</onap.nexus.protocol>
		<onap.nexus.public-url>https://nexus.onap.org/content/groups/public</onap.nexus.public-url>
		<onap.nexus.staging-url>https://nexus.onap.org/content/groups/staging</onap.nexus.staging-url>
		<onap.nexus.release-url>https://nexus.onap.org/content/repositories/releases</onap.nexus.release-url>
		<onap.nexus.snapshot-url>https://nexus.onap.org/content/repositories/snapshots</onap.nexus.snapshot-url>
		<onap.nexus.staging.server-id>ecomp-staging</onap.nexus.staging.server-id>
		<onap.nexus.staging.profile-id>176c31dfe190a</onap.nexus.staging.profile-id>


		<!-- OpenDaylight repositories -->
		<opendaylight.nexus.public-url>https://nexus.opendaylight.org/content/repositories/public/</opendaylight.nexus.public-url>
		<opendaylight.nexus.snapshot-url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</opendaylight.nexus.snapshot-url>


		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version.source>1.8</java.version.source>
		<java.version.target>1.8</java.version.target>
		<bundle.plugin.version>2.5.0</bundle.plugin.version>
		<maven.compile.plugin.version>2.5.1</maven.compile.plugin.version>
		<features.file>features.xml</features.file>
		<jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
		<salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
		<checkstyle.skip>true</checkstyle.skip>


		<sonar.language>java</sonar.language>
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.surefire.reportsPath>\${project.build.directory}/surefire-reports</sonar.surefire.reportsPath>
		<sonar.jacoco.reportMissing.force.zero>true</sonar.jacoco.reportMissing.force.zero>
		<sonar.projectVersion>\${project.version}</sonar.projectVersion>




		<!-- CCSDK component versions -->
		<ccsdk.sli.core.version>0.4.3-SNAPSHOT</ccsdk.sli.core.version>
		<ccsdk.sli.adaptors.version>0.4.3-SNAPSHOT</ccsdk.sli.adaptors.version>
		<ccsdk.sli.northbound.version>0.4.3-SNAPSHOT</ccsdk.sli.northbound.version>
		<ccsdk.sli.plugins.version>0.4.3-SNAPSHOT</ccsdk.sli.plugins.version>
		<ccsdk.distribution.version>0.4.3-SNAPSHOT</ccsdk.distribution.version>
		<sdnctl.sli.version>\${ccsdk.sli.core.version}</sdnctl.sli.version>
		<sdnctl.aai.service.version>\${ccsdk.sli.adaptors.version}</sdnctl.aai.service.version>
		<sdnctl.dblib.version>\${ccsdk.sli.core.version}</sdnctl.dblib.version>
		<sdnctl.mdsal.resource.version>\${ccsdk.sli.adaptors.version}</sdnctl.mdsal.resource.version>
		<sdnctl.slipluginutils.version>\${ccsdk.sli.core.version}</sdnctl.slipluginutils.version>


		<!-- Support libraries used by OpenDaylight -->
		<odl.controller.mdsal.version>1.8.2</odl.controller.mdsal.version>
		<odl.mdsal.version>2.5.2</odl.mdsal.version>
		<odl.mdsal.model.version>0.13.2</odl.mdsal.model.version>
		<odl.netconf.restconf.version>1.8.2</odl.netconf.restconf.version>
		<odl.netconf.netconf.version>1.5.2</odl.netconf.netconf.version>
		<odl.netconf.sal.rest.docgen.version>1.8.2</odl.netconf.sal.rest.docgen.version>
		<!-- Used by aaa, vtn -->
		<commons.codec.version>1.11</commons.codec.version>
		<!-- Used by netconf, ovsdb -->
		<commons.lang3.version>3.7</commons.lang3.version>
		<!-- Used by sfc, snmp4sdn; see also affinity, toolkit -->
		<commons.lang.version>2.6</commons.lang.version>
		<!-- Used by neutron; see also controller, vtn -->
		<commons.net.version>3.6</commons.net.version>
		<!-- Used by neutron -->
		<eclipse.persistence.version>2.7.1</eclipse.persistence.version>
		<!-- Used by aaa -->
		<felix.dependencymanager.version>4.4.1</felix.dependencymanager.version>
		<!-- Used by lacp, netconf, ovsdb, sfc, toolkit; see also vtn -->
		<gson.version>2.8.5</gson.version>
		<!-- Used by aaa, dlux, persistence, snmp4sdn, sxp -->
		<guava.version>23.6.1-jre</guava.version>
		<!-- Used by lispflowmapping, sxp, vtn/manager -->
		<hamcrest.version>1.3.1</hamcrest.version>
		<!-- Used by aaa, alto, netconf, ovsdb, sfc; see also affinity, defense4all, 
			integration/distribution, snmp4sdn, toolkit, ttp -->
		<jackson.version>2.8.11</jackson.version>
		<jackson.bom.version>2.8.11.20181123</jackson.bom.version>
		<!-- Used by snmp4sdn, yangtools -->
		<javassist.version>3.24.0-GA</javassist.version>

		<!-- FIXME remove all dependencies for jersey 1.17 after migration all 
			projects -->
		<!-- Used by aaa, alto, netconf, neutron, sfc; see also affinity, defense4all, 
			snmp4sdn, toolkit -->
		<jersey.version>2.25.1</jersey.version>
		<!-- Used by sfc -->
		<jersey.client.version>2.25.1</jersey.client.version>

		<!-- New packages for jersey migration 1.17 to 2.8 -->
		<!-- appache.geronimo.bundle for DocGen -->
		<!-- Used by aaa, iotdm, netconf, ovsdb, sfc -->
		<org.json.version>20131018</org.json.version>

		<!-- Used by sfc -->
		<jettison.version>1.3.8</jettison.version>
		<!-- Used by persistence -->
		<jsr305.api.version>3.0.0</jsr305.api.version>
		<!-- Need to stick to JUnit 4.11 until https://github.com/jayway/powermock/issues/560 
			is fixed (either in PowerMock or with a new JUnit release) -->
		<!-- Used everywhere -->
		<junit.version>4.11</junit.version>
		<!-- Used by coretutorials, sfc, snmp4sdn, sxp; see also affinity, toolkit -->
		<logback.version>1.2.3</logback.version>
		<!-- Used by nic, sfc, sxp, tsdr -->
		<mockito.version>1.10.19</mockito.version>
		<!-- Used by bgpcep, netconf, ovsdb, sxp; see also opendove, toolkit -->
		<netty.version>4.1.31.Final</netty.version>
		<!-- Used by openflowjava, persistence, sfc, snmp4sdn, sxp; see also affinity, 
			toolkit -->
		<slf4j.version>1.7.25</slf4j.version>
		<!-- Used in integration/distribution; see also affinity, snmp4sdn, toolkit, 
			tsdr, ttp -->
		<spring.version>3.2.17.RELEASE</spring.version>



		<!-- Extra support libraries used by SDN-C -->
		<equinox.osgi.version>3.8.1.v20120830-144521</equinox.osgi.version>
		<jackson-annotations-version>\${jackson.version}</jackson-annotations-version>
		<jvnet.jaxb2.version>0.6.4</jvnet.jaxb2.version>
		<apache.httpcomponents.core.version>4.4.4</apache.httpcomponents.core.version>
		<apache.httpcomponents.client.version>4.5.2</apache.httpcomponents.client.version>
		<antlr.version>4.7.1</antlr.version>
		<mysql.connector.version>5.1.39</mysql.connector.version>
		<mariadb.connector.version>2.1.1</mariadb.connector.version>
		<h2database.version>1.4.196</h2database.version>
		<derby.version>10.14.2.0</derby.version>

		<eelf.version>1.0.0</eelf.version>
		<eelf.maven.plugin.version>1.0.0</eelf.maven.plugin.version>

		<tomcat-jdbc.version>8.5.14</tomcat-jdbc.version>

		<glassfish.version>2.27</glassfish.version>
		<skip.karaf.featureTest>true</skip.karaf.featureTest>
	</properties>

	<profiles>
		<!-- Profiles from ONAP oparent -->
		<profile>
			<id>generate-json</id>
			<activation>
				<file>
					<exists>\${swagger-properties}</exists>
				</file>
				<property>
					<name>swagger-sdk.generate-json</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>properties-maven-plugin</artifactId>
						<version>1.0.0</version>
						<executions>
							<execution>
								<phase>initialize</phase>
								<goals>
									<goal>read-project-properties</goal>
								</goals>
								<configuration>
									<files>
										<file>\${basedir}/src/main/resources/swagger.properties</file>
									</files>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>com.github.kongchen</groupId>
						<artifactId>swagger-maven-plugin</artifactId>
						<version>3.1.4</version>
						<configuration>
							<apiSources>
								<apiSource>
									<locations>\${api-rest-package}</locations>
									<schemes>http,https</schemes>
									<host>\${api-host-ip}:\${api-host-port}</host>
									<basePath>\${api-base-path}</basePath>
									<info>
										<title>\${api-title}</title>
										<version>\${api-version}</version>
										<description>\${api-description}</description>
										<license>
											<name>\${api-license}</name>
										</license>
									</info>
									<swaggerDirectory>\${basedir}/src/main/resources</swaggerDirectory>
								</apiSource>
							</apiSources>
						</configuration>
						<executions>
							<execution>
								<phase>compile</phase>
								<goals>
									<goal>generate</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-install-plugin</artifactId>
						<version>2.3.1</version>
						<executions>
							<execution>
								<id>install-file-id</id>
								<phase>install</phase>
								<goals>
									<goal>install-file</goal>
								</goals>
								<configuration>
									<file>\${basedir}/src/main/resources/swagger.json</file>
									<groupId>\${project.groupId}</groupId>
									<artifactId>\${project.artifactId}-swagger-schema</artifactId>
									<version>\${project.version}</version>
									<packaging>json</packaging>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>generate-sdk</id>
			<activation>
				<file>
					<exists>\${swagger-json}</exists>
				</file>
				<property>
					<name>swagger-sdk.generate-java-sdk</name>
				</property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.8</version>
						<executions>
							<execution>
								<phase>initialize</phase>
								<id>ant-create-script</id>
								<configuration>
									<exportAntProperties>true</exportAntProperties>
									<tasks>
										<taskdef resource="net/sf/antcontrib/antlib.xml"
											classpathref="maven.plugin.classpath" />
										<condition property="is_windows" value="true">
											<os family="windows" />
										</condition>
										<condition property="isLinux" value="true">
											<os family="unix" />
										</condition>
										<if>
											<equals arg1="\${is_windows}" arg2="true" />
											<then>
												<property name="swagger.sdk.script.file"
													value="generated-source-script.bat" />
												<echo
													file="\${project.build.directory}\${file.separator}generated-source-script.bat"
													append="true"
													message="cd \${project.build.directory}\${file.separator}generated-sources\${line.separator}" />
												<echo
													file="\${project.build.directory}\${file.separator}generated-source-script.bat"
													append="true"
													message="mvn clean install -Dmaven.test.skip=true\${line.separator}" />
											</then>
											<else>
												<property name="swagger.sdk.script.file"
													value="generated-source-script.sh" />
												<echo
													file="\${project.build.directory}\${file.separator}generated-source-script.sh"
													append="true"
													message="cd \${project.build.directory}\${file.separator}generated-sources\${line.separator}" />
												<echo
													file="\${project.build.directory}\${file.separator}generated-source-script.sh"
													append="true"
													message="mvn clean install -Dmaven.test.skip=true\${line.separator}" />
												<chmod
													file="\${project.build.directory}\${file.separator}generated-source-script.sh"
													perm="755" />
											</else>
										</if>
									</tasks>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
						<dependencies>
							<dependency>
								<groupId>ant-contrib</groupId>
								<artifactId>ant-contrib</artifactId>
								<version>1.0b3</version>
								<exclusions>
									<exclusion>
										<artifactId>ant</artifactId>
										<groupId>ant</groupId>
									</exclusion>
								</exclusions>
							</dependency>
						</dependencies>
					</plugin>
					<plugin>
						<groupId>io.swagger</groupId>
						<artifactId>swagger-codegen-maven-plugin</artifactId>
						<version>2.2.1</version>
						<executions>
							<execution>
								<goals>
									<goal>generate</goal>
								</goals>
								<configuration>
									<inputSpec>\${basedir}/src/main/resources/swagger.json</inputSpec>
									<output>\${project.build.directory}/generated-sources</output>
									<language>java</language>
									<configOptions>
										<dateLibrary>joda</dateLibrary>
									</configOptions>
									<library>jersey2</library>
									<groupId>\${project.groupId}</groupId>
									<artifactId>\${project.artifactId}-java-sdk</artifactId>
									<artifactVersion>\${project.version}</artifactVersion>
									<modelPackage>\${project.groupId}.\${project.artifactId}.client.model</modelPackage>
									<apiPackage>\${project.groupId}.\${project.artifactId}.client.api</apiPackage>
									<invokerPackage>\${project.groupId}.\${project.artifactId}.client.invoker</invokerPackage>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>exec-maven-plugin</artifactId>
						<groupId>org.codehaus.mojo</groupId>
						<version>1.5.0</version>
						<executions>
							<execution>
								<id>swagger-generate-sources</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>exec</goal>
								</goals>
								<configuration>
									<executable>\${project.build.directory}\${file.separator}\${swagger.sdk.script.file}</executable>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-clean-plugin</artifactId>
						<version>3.0.0</version>
						<executions>
							<execution>
								<id>clean-generated-files</id>
								<phase>generate-sources</phase>
								<goals>
									<goal>clean</goal>
								</goals>
								<configuration>
									<filesets>
										<fileset>
											<directory>\${project.build.directory}/generated-sources</directory>
										</fileset>
									</filesets>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<groupId>org.onap.msb.swagger-sdk</groupId>
					<artifactId>swagger-sdk</artifactId>
					<version>1.0.0</version>
				</dependency>
			</dependencies>
		</profile>

		<!-- End of profiles from ONAP oparent -->
		<profile>
			<id>nexus-staging</id>
			<activation>
			    <property>
			        <name>!altDeploymentRepository</name>
			    </property>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
						<version>1.6.7</version>
						<extensions>true</extensions>
						<configuration>
							<nexusUrl>https://${onap.nexus.host}</nexusUrl>
							<stagingProfileId>176c31dfe190a</stagingProfileId>
							<serverId>ecomp-staging</serverId>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<activation>
				<file>
					<exists>src/main/yang</exists>
				</file>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.opendaylight.yangtools</groupId>
						<artifactId>yang-maven-plugin</artifactId>
						<version>2.1.8</version>
						<dependencies>
							<dependency>
								<groupId>org.opendaylight.mdsal</groupId>
								<artifactId>maven-sal-api-gen-plugin</artifactId>
								<version>\${odl.mdsal.model.version}</version>
								<type>jar</type>
							</dependency>
							<dependency>
								<groupId>org.opendaylight.netconf</groupId>
								<artifactId>sal-rest-docgen-maven</artifactId>
								<version>\${odl.netconf.sal.rest.docgen.version}</version>
								<type>jar</type>
							</dependency>
						</dependencies>
						<executions>
							<execution>
								<goals>
									<goal>generate-sources</goal>
								</goals>
								<configuration>
									<yangFilesRootDir>\${yang.file.directory}</yangFilesRootDir>
									<codeGenerators>
										<generator>
											<codeGeneratorClass>org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl</codeGeneratorClass>
											<outputBaseDir>\${salGeneratorPath}</outputBaseDir>
										</generator>
										<generator>
											<codeGeneratorClass>org.opendaylight.netconf.sal.rest.doc.maven.StaticDocGenerator</codeGeneratorClass>
											<outputBaseDir>target/swagger</outputBaseDir>
										</generator>
									</codeGenerators>
									<inspectDependencies>true</inspectDependencies>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>


	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.opendaylight.controller</groupId>
				<artifactId>mdsal-artifacts</artifactId>
				<version>\${odl.controller.mdsal.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.mdsal</groupId>
				<artifactId>mdsal-artifacts</artifactId>
				<version>\${odl.mdsal.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.mdsal.model</groupId>
				<artifactId>mdsal-model-artifacts</artifactId>
				<version>\${odl.mdsal.model.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.netconf</groupId>
				<artifactId>netconf-artifacts</artifactId>
				<version>\${odl.netconf.netconf.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.netconf</groupId>
				<artifactId>restconf-artifacts</artifactId>
				<version>\${odl.netconf.restconf.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
			    <groupId>com.fasterxml.jackson</groupId>
			    <artifactId>jackson-bom</artifactId>
			    <version>\${jackson.bom.version}</version>
			    <type>pom</type>
			    <scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.opendaylight.controller</groupId>
				<artifactId>sal-test-model</artifactId>
				<version>\${odl.controller.mdsal.version}</version>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.controller</groupId>
				<artifactId>sal-binding-broker-impl</artifactId>
				<version>\${odl.controller.mdsal.version}</version>
			</dependency>
			<dependency>
				<groupId>org.opendaylight.controller</groupId>
				<artifactId>sal-binding-broker-impl</artifactId>
				<version>\${odl.controller.mdsal.version}</version>
				<type>test-jar</type>
				<classifier>tests</classifier>
				<scope>test</scope>
			</dependency>


			<dependency>
				<groupId>org.testng</groupId>
				<artifactId>testng</artifactId>
				<version>6.11</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-test</artifactId>
				<version>\${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-beans</artifactId>
				<version>\${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>\${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>com.att.eelf</groupId>
				<artifactId>eelf-core</artifactId>
				<version>\${eelf.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derby</artifactId>
				<version>\${derby.version}</version>
				<scope>test</scope>
			</dependency>
		</dependencies>

	</dependencyManagement>

	<pluginRepositories>
		<pluginRepository>
			<id>onap-public</id>
			<url>\${onap.nexus.public-url}</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>onap-staging</id>
			<url>\${onap.nexus.staging-url}</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>onap-snapshot</id>
			<url>\${onap.nexus.snapshot-url}</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>opendaylight-mirror</id>
			<name>opendaylight-mirror</name>
			<url>\${opendaylight.nexus.public-url}</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>opendaylight-snapshot</id>
			<name>opendaylight-snapshot</name>
			<url>\${opendaylight.nexus.snapshot-url}</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
		<!-- Black Duck plugin dependencies -->
		<pluginRepository>
			<id>JCenter</id>
			<name>JCenter Repository</name>
			<url>http://jcenter.bintray.com</url>
		</pluginRepository>

		<pluginRepository>
			<id>Restlet</id>
			<name>Restlet Repository</name>
			<url>http://maven.restlet.com</url>
		</pluginRepository>
	</pluginRepositories>


	<repositories>
		<repository>
			<id>onap-public</id>
			<url>https://nexus.onap.org/content/groups/public</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>always</updatePolicy>
			</snapshots>
		</repository>
		<repository>
			<id>onap-staging</id>
			<url>https://nexus.onap.org/content/groups/staging</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>true</enabled>
				<updatePolicy>always</updatePolicy>
			</snapshots>
		</repository>
		<repository>
			<id>ecomp-release</id>
			<name>onap-repository-releases</name>
			<url>https://nexus.onap.org/content/repositories/releases</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>ecomp-snapshot</id>
			<name>onap-repository-snapshots</name>
			<url>https://nexus.onap.org/content/repositories/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>opendaylight-mirror</id>
			<name>opendaylight-mirror</name>
			<url>https://nexus.opendaylight.org/content/repositories/public/</url>
			<releases>
				<enabled>true</enabled>
				<updatePolicy>never</updatePolicy>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>opendaylight-snapshot</id>
			<name>opendaylight-snapshot</name>
			<url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>

	</repositories>

	<distributionManagement>
		<repository>
			<id>ecomp-releases</id>
			<url>https://nexus.onap.org/content/repositories/releases</url>
		</repository>
		<snapshotRepository>
			<id>ecomp-snapshots</id>
			<url>https://nexus.onap.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

	<build>
		<pluginManagement>
			<plugins>

				<!-- Plugins from ONAP version (parent of oparent) -->

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<!-- This version supports the "deployAtEnd" parameter -->
					<version>2.8</version>
					<configuration>
						<skip />
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.6</version>
					<dependencies>
						<dependency>
							<groupId>org.apache.maven.wagon</groupId>
							<artifactId>wagon-webdav-jackrabbit</artifactId>
							<version>2.10</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.0.0-M2</version>
					<executions>
						<execution>
							<id>enforce-property</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireProperty>
										<property>onap.nexus.url</property>
										<message>You must set a onap.nexus.url property in your
											~/.m2/settings.xml. See oparent/settings.xml for an example.</message>
									</requireProperty>
								</rules>
								<fail>true</fail>
							</configuration>
						</execution>
						<execution>
							<id>enforce-no-snapshots</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireReleaseDeps>
										<failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
										<onlyWhenRelease>true</onlyWhenRelease>
										<level>WARN</level>
									</requireReleaseDeps>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<!-- https://mvnrepository.com/artifact/org.sonarsource.scanner.maven/sonar-maven-plugin -->
				<plugin>
					<groupId>org.sonarsource.scanner.maven</groupId>
					<artifactId>sonar-maven-plugin</artifactId>
					<version>3.2</version>
				</plugin>
				<!-- end of plugins from ONAP version (parent of oparent) -->

				<!-- Plugins from ONAP oparent -->

				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>\${jacoco.version}</version>
					<configuration>
						<!-- Note: This exclusion list should match <sonar.exclusions> property 
							above -->
						<excludes>
							<exclude>**/gen/**</exclude>
							<exclude>**/generated-sources/**</exclude>
							<exclude>**/yang-gen/**</exclude>
							<exclude>**/pax/**</exclude>
						</excludes>
					</configuration>
					<executions>
						<!-- Prepares the property pointing to the JaCoCo runtime agent which 
							is passed as VM argument when Maven the Surefire plugin is executed. -->
						<execution>
							<id>pre-unit-test</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
							<configuration>
								<!-- Sets the path to the file which contains the execution data. -->
								<destFile>\${project.build.directory}/code-coverage/jacoco-ut.exec</destFile>
								<!-- Sets the name of the property containing the settings for JaCoCo 
									runtime agent. -->
								<propertyName>surefireArgLine</propertyName>
							</configuration>
						</execution>
						<!-- Ensures that the code coverage report for unit tests is created 
							after unit tests have been run. -->
						<execution>
							<id>post-unit-test</id>
							<phase>test</phase>
							<goals>
								<goal>report</goal>
							</goals>
							<configuration>
								<!-- Sets the path to the file which contains the execution data. -->
								<dataFile>\${project.build.directory}/code-coverage/jacoco-ut.exec</dataFile>
								<!-- Sets the output directory for the code coverage report. -->
								<outputDirectory>\${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
							</configuration>
						</execution>
						<execution>
							<id>pre-integration-test</id>
							<phase>pre-integration-test</phase>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
							<configuration>
								<!-- Sets the path to the file which contains the execution data. -->
								<destFile>\${project.build.directory}/code-coverage/jacoco-it.exec</destFile>
								<!-- Sets the name of the property containing the settings for JaCoCo 
									runtime agent. -->
								<propertyName>failsafeArgLine</propertyName>
							</configuration>
						</execution>
						<!-- Ensures that the code coverage report for integration tests after 
							integration tests have been run. -->
						<execution>
							<id>post-integration-test</id>
							<phase>post-integration-test</phase>
							<goals>
								<goal>report</goal>
							</goals>
							<configuration>
								<!-- Sets the path to the file which contains the execution data. -->
								<dataFile>\${project.build.directory}/code-coverage/jacoco-it.exec</dataFile>
								<!-- Sets the output directory for the code coverage report. -->
								<outputDirectory>\${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.22.0</version>
					<configuration>
						<!-- Sets the VM argument line used when unit tests are run. -->
						<argLine>\${surefireArgLine}</argLine>
						<!-- Excludes integration tests when unit tests are run. -->
						<excludes>
							<exclude>**/IT*.java</exclude>
						</excludes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>2.22.0</version>
					<executions>
						<!-- Ensures that both integration-test and verify goals of the Failsafe 
							Maven plugin are executed. -->
						<execution>
							<id>integration-tests</id>
							<goals>
								<goal>integration-test</goal>
								<goal>verify</goal>
							</goals>
							<configuration>
								<!-- Sets the VM argument line used when integration tests are run. -->
								<argLine>\${failsafeArgLine}</argLine>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<!-- End of plugins from ONAP oparent -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>properties-maven-plugin</artifactId>
					<version>1.0.0</version>
					<executions>
						<execution>
							<goals>
								<goal>set-system-properties</goal>
							</goals>
							<configuration>
								<properties>
									<property>
										<name>maven.wagon.http.ssl.allowall</name>
										<value>\${ssl.allowall}</value>
									</property>
									<property>
										<name>maven.wagon.http.ssl.insecure</name>
										<value>\${ssl.insecure}</value>
									</property>
								</properties>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>2.5</version>
					<configuration>
						<processAllModules>true</processAllModules>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-scm-plugin</artifactId>
					<version>1.8.1</version>
					<configuration>
						<tag>\${project.artifactId}-\${project.version}</tag>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>

			<!-- Plugins from oparent version (parent of oparent) -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
			<!-- end of plugins from oparent version (parent of oparent) -->

			<!-- Plugins from oparent -->
			<plugin>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.17</version>
				<dependencies>
					<dependency>
						<groupId>org.onap.oparent</groupId>
						<artifactId>checkstyle</artifactId>
						<version>1.2.2</version>
					</dependency>
				</dependencies>
				<executions>
					<execution>
						<id>onap-license</id>
						<goals>
							<goal>check</goal>
						</goals>
						<phase>process-sources</phase>
						<configuration>
							<configLocation>onap-checkstyle/check-license.xml</configLocation>
							<includeResources>false</includeResources>
							<includeTestSourceDirectory>true</includeTestSourceDirectory>
							<includeTestResources>false</includeTestResources>
							<sourceDirectory>\${project.build.sourceDirectory}</sourceDirectory>
							<excludes>
							</excludes>
							<consoleOutput>true</consoleOutput>
							<failsOnViolation>false</failsOnViolation>
						</configuration>
					</execution>
					<execution>
						<id>onap-java-style</id>
						<goals>
							<goal>check</goal>
						</goals>
						<phase>process-sources</phase>
						<configuration>
							<!-- Use Google Java Style Guide: https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml 
								with minor changes -->
							<configLocation>onap-checkstyle/onap-java-style.xml</configLocation>
							<!-- <sourceDirectory> is needed so that checkstyle ignores the generated 
								sources directory -->
							<sourceDirectory>\${project.build.sourceDirectory}/src/main/java</sourceDirectory>
							<includeResources>true</includeResources>
							<includeTestSourceDirectory>true</includeTestSourceDirectory>
							<includeTestResources>true</includeTestResources>
							<excludes>
							</excludes>
							<consoleOutput>true</consoleOutput>
							<failsOnViolation>false</failsOnViolation>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<version>1.12</version>
			</plugin>
			<!-- Jacoco / Sonar -->
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
			</plugin>
			<!-- end of plugins from oparent -->
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-javadoc-plugin</artifactId>
			    <version>2.10.4</version>
			    <executions>
			        <execution>
			            <id>attach-javadocs</id>
			            <goals>
			                <goal>jar</goal>
			            </goals>
			            <configuration>
			                <additionalparam>-Xdoclint:none</additionalparam>
			            </configuration>
			        </execution>
			    </executions>
			</plugin>
		</plugins>
	</build>
    <reporting>
		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
				<configuration>
					<failOnError>false</failOnError>
					<additionalparam>-Xdoclint:none</additionalparam>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
	<organization>
		<name>ONAP</name>
	</organization>
</project>