<?xml version="1.0" encoding="UTF-8"?>
<!--
 ***************************************************************************************************************************
 * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file *
 * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file        *
 * to you 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.                                              *
 ***************************************************************************************************************************
-->
<!--
	This project is meant to be used as a starting point for developers to use in creating their own REST microservices.
	It creates a parent REST interface on port 10000 with a single child hello-world resource.
	This POM is likewise meant to be used as a starting point for developers. It creates an uber-jar
	to run the microservice from the command line. 
	
	Copy the jar as well as the my-microservice.cfg and jetty.xml file and start it with: 
		java -jar my-microservice-1.0.jar
		
	The group/artifact/version information is meant to be overwritten by developers to match their own needs.
-->
<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/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>
	
	<groupId>my-microservice-group</groupId>
	<artifactId>my-microservice</artifactId>
	<version>1.0</version>
	<name>My microservice</name>
	<description>My microservice.</description>
	
	<properties>
		<juneau.version>7.1.0-SNAPSHOT</juneau.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>org.apache.juneau</groupId>
			<artifactId>juneau-microservice-server</artifactId>
			<version>7.1.0-SNAPSHOT</version>
		</dependency>
	</dependencies>
	
	<build>
		<plugins>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
       			<version>3.0.2</version>
 				<executions>
					<execution>
						<id>package-config</id>
						<phase>package</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>target</outputDirectory>
							<resources>
								<resource>
									<directory>.</directory>
									<includes>my-microservice.cfg,jetty.xml</includes>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>org.apache.juneau.microservice.RestMicroservice
							</mainClass>
						</manifest>
						<manifestEntries>
							<Main-Config>my-microservice.cfg</Main-Config>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.0.0</version>
				<configuration>
					<createDependencyReducedPom>false</createDependencyReducedPom>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>META-INF/*.SF</exclude>
										<exclude>META-INF/*.RSA</exclude>
										<exclude>META-INF/*.INF</exclude> <!-- This one may not be required -->
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
