<?xml version="1.0" encoding="UTF-8"?>
<!--<![CDATA[
========================LICENSE_START=================================
O-RAN-SC
%%
Copyright (C) 2019 AT&T Intellectual Property
%%
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.
========================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>
		<!-- this group Id must match LF gerrit repository -->
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.9.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<groupId>org.o-ran-sc.nonrt.ric-dashboard</groupId>
	<artifactId>ric-dash-parent</artifactId>
	<name>NonRT RIC Dashboard project</name>
	<packaging>pom</packaging>
	<version>1.0.1-SNAPSHOT</version>
	<properties>
		<java.version>11</java.version>
		<!-- Properties for the license-maven-plugin in child POMs -->
		<lmp.organization.name>AT&amp;T Intellectual Property</lmp.organization.name>
		<lmp.project.name>O-RAN-SC</lmp.project.name>
		<lmp.inception.year>2019</lmp.inception.year>
		<lmp.license.name>apache_v2</lmp.license.name>
		<lmp.process.start.tag>========================LICENSE_START=================================</lmp.process.start.tag>
		<lmp.process.end.tag>========================LICENSE_END===================================</lmp.process.end.tag>
	</properties>
	<modules>		
		<module>webapp-frontend</module>
		<module>webapp-backend</module>
	</modules>
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<organizationName>${lmp.organization.name}</organizationName>
					<inceptionYear>${lmp.inception.year}</inceptionYear>
					<projectName>${lmp.project.name}</projectName>
					<licenseName>${lmp.license.name}</licenseName>
					<processStartTag>${lmp.process.start.tag}</processStartTag>
					<processEndTag>${lmp.process.end.tag}</processEndTag>
					<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
				</configuration>
				<executions>
					<execution>
						<id>first</id>
						<goals>
							<goal>update-file-header</goal>
						</goals>
						<phase>process-sources</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin>
			<!-- Always generate a source jar -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- Always skip the deploy-jar-to-nexus step -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<!-- support sonar in multi-module project -->
			<plugin>
				<groupId>org.sonarsource.scanner.maven</groupId>
				<artifactId>sonar-maven-plugin</artifactId>
				<version>3.6.0.1398</version>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>1.20</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
