<?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>
		<groupId>org.o-ran-sc.nonrt.ric-dashboard</groupId>
		<artifactId>ric-dash-parent</artifactId>
		<version>1.0.1-SNAPSHOT</version>
	</parent>
	<artifactId>ric-dash-fe</artifactId>
	<name>NonRT RIC Dashboard Webapp frontend</name>
	<build>
		<plugins>
			<plugin>
				<!-- Most configuration and all execution is inherited -->
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>license-maven-plugin</artifactId>
				<configuration>
					<roots>
						<root>e2e</root>
						<root>src</root>
					</roots>
					<excludes>
						<exclude>**/*.json</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>com.github.eirslett</groupId>
				<artifactId>frontend-maven-plugin</artifactId>
				<version>1.3</version>
				<configuration>
					<nodeVersion>v10.15.3</nodeVersion>
					<npmVersion>6.7.0</npmVersion>
					<workingDirectory>.</workingDirectory>
				</configuration>
				<executions>
					<execution>
						<id>install node and npm</id>
						<goals>
							<goal>install-node-and-npm</goal>
						</goals>
					</execution>
					<execution>
						<id>npm install</id>
						<goals>
							<goal>npm</goal>
						</goals>
					</execution>
					<execution>
						<id>npm run build</id>
						<goals>
							<goal>npm</goal>
						</goals>
						<configuration>
							<arguments>run build</arguments>
						</configuration>
					</execution>
					<execution>
						<id>prod</id>
						<goals>
							<goal>npm</goal>
						</goals>
						<configuration>
							<arguments>run-script build</arguments>
						</configuration>
						<phase>generate-resources</phase>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<configuration>
					<filesets>
						<fileset>
							<directory>${project.basedir}</directory>
							<includes>
								<include>**/node_modules/**</include>
								<include>dist/**</include>
								<include>node/**</include>
							</includes>
							<followSymlinks>false</followSymlinks>
						</fileset>
						<fileset>
							<directory>node</directory>
						</fileset>
					</filesets>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
