<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
		
<modelVersion>4.0.0</modelVersion>

<parent>
	<groupId>com.kerbaya</groupId>
	<artifactId>jse8-parent</artifactId>
	<version>2</version>
	<relativePath/>
</parent>

<groupId>com.kerbaya</groupId>
<artifactId>jee8-parent</artifactId>
<version>2</version>

<packaging>pom</packaging>

<name>Kerbaya Java EE 8 Parent</name>
<description>Parent for Kerbaya Java EE 8 artifacts</description>

<dependencyManagement>
	<dependencies>
	
		<!-- Java Platform, Enterprise Edition 8 (Java EE 8) [JSR 366] -->
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>8.0.1</version>
			<exclusions>
				<exclusion>
					<groupId>javax.activation</groupId>
					<artifactId>activation</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- 
		More granular break-down of technologies in JEE8, in case developers wish to be more 
		declarative about that they're using in their projects 
		-->

		<!-- Java Platform, Enterprise Edition 8 (Java EE 8) Web Profile -->
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-web-api</artifactId>
			<version>8.0.1</version>
		</dependency>

		<!-- Enterprise JavaBeans 3.2 [JSR 345] -->
		<dependency>
			<groupId>javax.ejb</groupId>
			<artifactId>javax.ejb-api</artifactId>
			<version>3.2.2</version>
		</dependency>

		<!-- Java Servlet 4.0 [JSR 369] -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
		</dependency>

		<!-- JavaServer Pages 2.3 [JSR 245] -->
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.3</version>
		</dependency>

		<!-- Expression Language 3.0 [JSR 341] -->
		<dependency>
			<groupId>javax.el</groupId>
			<artifactId>javax.el-api</artifactId>
			<version>3.0.0</version>
		</dependency>

		<!-- Java Message Service API 2.0 [JSR 343] -->
		<dependency>
			<groupId>javax.jms</groupId>
			<artifactId>javax.jms-api</artifactId>
			<version>2.0.1</version>
		</dependency>

		<!-- Java Transaction API (JTA) 1.2 [JSR 907] -->
		<dependency>
			<groupId>javax.transaction</groupId>
			<artifactId>javax.transaction-api</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- JavaMail 1.6 [JSR 919] -->
		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>javax.mail-api</artifactId>
			<version>1.6.2</version>
		</dependency>

		<!-- Java EE Connector Architecture 1.7 [JSR 322] -->
		<dependency>
			<groupId>javax.resource</groupId>
			<artifactId>javax.resource-api</artifactId>
			<version>1.7.1</version>
		</dependency>

		<!-- Web Services for Java EE 1.4 -->
		
		<!-- Java API for XML-Based RPC (JAX-RPC) 1.1 [JSR 101] -->
		<dependency>
			<groupId>javax.xml.rpc</groupId>
			<artifactId>javax.xml.rpc-api</artifactId>
			<version>1.1.2</version>
		</dependency>

		<!-- Java API for RESTful Web Services (JAX-RS) 2.1 [JSR 370] -->
		<dependency>
			<groupId>javax.ws.rs</groupId>
			<artifactId>javax.ws.rs-api</artifactId>
			<version>2.1</version>
		</dependency>

		<!-- Java API for WebSocket 1.1 [JSR 356] -->
		<dependency>
			<groupId>javax.websocket</groupId>
			<artifactId>javax.websocket-api</artifactId>
			<version>1.1</version>
		</dependency>

		<dependency>
			<groupId>javax.websocket</groupId>
			<artifactId>javax.websocket-client-api</artifactId>
			<version>1.1</version>
		</dependency>

		<!-- Java API for JSON Processing 1.1 [JSR 374] -->
		<dependency>
			<groupId>javax.json</groupId>
			<artifactId>javax.json-api</artifactId>
			<version>1.1.4</version>
		</dependency>

		<!-- Java API for JSON Binding 1.0 [JSR 367] -->
		<dependency>
			<groupId>javax.json.bind</groupId>
			<artifactId>javax.json.bind-api</artifactId>
			<version>1.0</version>
		</dependency>
		
		<!-- Concurrency Utilities for Java EE 1.0 [JSR 236] -->
		<dependency>
			<groupId>javax.enterprise.concurrent</groupId>
			<artifactId>javax.enterprise.concurrent-api</artifactId>
			<version>1.0</version>
		</dependency>

		<!-- Batch Applications for the Java Platform 1.0 [JSR 352] -->
		<dependency>
			<groupId>javax.batch</groupId>
			<artifactId>javax.batch-api</artifactId>
			<version>1.0.1</version>
		</dependency>

		<!-- Java API for XML Registries (JAXR) 1.0 [JSR 93] -->
		<dependency>
			<groupId>javax.xml.registry</groupId>
			<artifactId>javax.xml.registry-api</artifactId>
			<version>1.0.8</version>
		</dependency>
	
		<!-- J2EE Management 1.1 [JSR 77] -->
		<dependency>
			<groupId>javax.management.j2ee</groupId>
			<artifactId>javax.management.j2ee-api</artifactId>
			<version>1.1.2</version>
		</dependency>
		
		<!-- Java EE Application Deployment 1.2 [JSR 88] -->
		<dependency>
			<groupId>javax.enterprise.deploy</groupId>
			<artifactId>deployment-api</artifactId>
			<version>1.2-rev-1</version>
   		</dependency>

		<!-- Java Authorization Contract for Containers 1.5 [JSR 115] -->
		<dependency>
			<groupId>javax.security.jacc</groupId>
			<artifactId>javax.security.jacc-api</artifactId>
			<version>1.5</version>
		</dependency>

		<!-- Java Authentication Service Provider Interface for Containers 1.1 [JSR 196] -->
		<dependency>
			<groupId>javax.security.auth.message</groupId>
			<artifactId>javax.security.auth.message-api</artifactId>
			<version>1.1.1</version>
		</dependency>

		<!-- Java EE Security API 1.0 [JSR 375] -->
		<dependency>
			<groupId>javax.security.enterprise</groupId>
			<artifactId>javax.security.enterprise-api</artifactId>
			<version>1.0</version>
		</dependency>

		<!-- Debugging Support for Other Languages 1.0 [JSR 45] -->
		
		<!-- Standard Tag Library for JavaServer Pages (JSTL) 1.2 [JSR 52] -->
		<dependency>
			<groupId>javax.servlet.jsp.jstl</groupId>
			<artifactId>javax.servlet.jsp.jstl-api</artifactId>
			<version>1.2.2</version>
		</dependency>

		<!-- Web Services Metadata for the Java Platform 2.1 [JSR 181] -->
		
		<!-- JavaServer Faces 2.3 [JSR 372] -->
		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>javax.faces-api</artifactId>
			<version>2.3</version>
		</dependency>
		
		<!-- Common Annotations for the Java Platform 1.3 [JSR 250] -->
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.2</version>
		</dependency>
		
		<!-- Java Persistence 2.2 [JSR 338] -->
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>javax.persistence-api</artifactId>
			<version>2.2</version>
		</dependency>
		
		<!-- Bean Validation 2.0 [JSR 380] -->
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>2.0.0.Final</version>
		</dependency>

		<!-- Managed Beans 1.0 [JSR 316] -->
		
		<!-- Interceptors 1.2 [JSR 318] -->
		<dependency>
			<groupId>javax.interceptor</groupId>
			<artifactId>javax.interceptor-api</artifactId>
			<version>1.2.2</version>
		</dependency>
		
		<!-- Contexts and Dependency Injection for Java 2.0 [JSR 365] -->
		<dependency>
			<groupId>javax.enterprise</groupId>
			<artifactId>cdi-api</artifactId>
			<version>2.0</version>
		</dependency>

		<!-- Dependency Injection for Java 1.0 [JSR 330] -->
		<dependency>
			<groupId>javax.inject</groupId>
			<artifactId>javax.inject</artifactId>
			<version>1</version>
		</dependency>

		
		<!-- Older coordinates, we'll use the closest versions to the ones found in EE8 -->
		<dependency>
			<groupId>javaee</groupId>
			<artifactId>javaee-api</artifactId>
			<version>5</version>
		</dependency>

		<dependency>
			<groupId>javax.ejb</groupId>
			<artifactId>ejb-api</artifactId>
			<version>3.0</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.1</version>
		</dependency>

		<dependency>
			<groupId>javax.jms</groupId>
			<artifactId>jms-api</artifactId>
			<version>1.1-rev-1</version>
		</dependency>

		<dependency>
			<groupId>javax.transaction</groupId>
			<artifactId>jta</artifactId>
			<version>1.1</version>
		</dependency>

		<dependency>
			<groupId>javax.mail</groupId>
			<artifactId>mailapi</artifactId>
			<version>1.4.3</version>
		</dependency>

		<dependency>
			<groupId>javax.resource</groupId>
			<artifactId>connector-api</artifactId>
			<version>1.5</version>
		</dependency>

		<dependency>
			<groupId>javax.xml</groupId>
			<artifactId>jaxrpc-api</artifactId>
			<version>1.1</version>
		</dependency>

		<dependency>
			<groupId>javax.xml</groupId>
			<artifactId>jaxr-api</artifactId>
			<version>1.0_04</version>
		</dependency>

		<dependency>
			<groupId>javax.management.j2ee</groupId>
			<artifactId>management-api</artifactId>
			<version>1.1-rev-1</version>
		</dependency>

		<dependency>
			<groupId>javax.security</groupId>
			<artifactId>security-api</artifactId>
			<version>1.1-rev-1</version>
		</dependency>

		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>

		<dependency>
			<groupId>javax.faces</groupId>
			<artifactId>jsf-api</artifactId>
			<version>2.1</version>
		</dependency>

		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>persistence-api</artifactId>
			<version>1.0.2</version>
		</dependency>

		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>jsr250-api</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>javax.el</groupId>
			<artifactId>el-api</artifactId>
			<version>2.2</version>
		</dependency>
	</dependencies>
</dependencyManagement>

<build>
	<pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-ejb-plugin</artifactId>
				<configuration>
					<ejbVersion>3.2</ejbVersion>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-ear-plugin</artifactId>
				<configuration>
					<version>8</version>
					<defaultLibBundleDir>lib</defaultLibBundleDir>
					<skinnyWars>true</skinnyWars>
					<skipClassPathModification>true</skipClassPathModification>
					<outputFileNameMapping>@{artifactId}@-@{version}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
				</configuration>
			</plugin>
		</plugins>
	</pluginManagement>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-enforcer-plugin</artifactId>
			<executions>
				<execution>
					<id>ban-jee8-included</id>
					<goals>
						<goal>enforce</goal>
					</goals>
					<configuration>
						<rules>
							<bannedDependencies>
								<!--
								We'll mark some well-known artifact coordinates that are covered in 
								JEE8 as banned to prevent their inclusion in deployments 
								-->
								<excludes>
									<!-- EE 8 -->
									<exclude>javax:javaee-api:(,8.1):*:compile</exclude>
									<exclude>javax:javaee-api:(,8.1):*:runtime</exclude>
									<exclude>javax:javaee-web-api:(,8.1):*:compile</exclude>
									<exclude>javax:javaee-web-api:(,8.1):*:runtime</exclude>
									<exclude>javax.ejb:javax.ejb-api:(,3.3):*:compile</exclude>
									<exclude>javax.ejb:javax.ejb-api:(,3.3):*:runtime</exclude>
									<exclude>javax.servlet:javax.servlet-api:(,4.1):*:compile</exclude>
									<exclude>javax.servlet:javax.servlet-api:(,4.1):*:runtime</exclude>
									<exclude>javax.servlet.jsp:javax.servlet.jsp-api:(,2.4):*:compile</exclude>
									<exclude>javax.servlet.jsp:javax.servlet.jsp-api:(,2.4):*:runtime</exclude>
									<exclude>javax.el:javax.el-api:(,3.1):*:compile</exclude>
									<exclude>javax.el:javax.el-api:(,3.1):*:runtime</exclude>
									<exclude>javax.jms:javax.jms-api:(,2.1):*:compile</exclude>
									<exclude>javax.jms:javax.jms-api:(,2.1):*:runtime</exclude>
									<exclude>javax.transaction:javax.transaction-api:(,1.3):*:compile</exclude>
									<exclude>javax.transaction:javax.transaction-api:(,1.3):*:runtime</exclude>
									<exclude>javax.mail:javax.mail-api:(,1.7):*:compile</exclude>
									<exclude>javax.mail:javax.mail-api:(,1.7):*:runtime</exclude>
									<exclude>javax.resource:javax.resource-api:(,1.8):*:compile</exclude>
									<exclude>javax.resource:javax.resource-api:(,1.8):*:runtime</exclude>
									<exclude>javax.xml.rpc:javax.xml.rpc-api:(,1.2):*:compile</exclude>
									<exclude>javax.xml.rpc:javax.xml.rpc-api:(,1.2):*:runtime</exclude>
									<exclude>javax.ws.rs:javax.ws.rs-api:(,2.2):*:compile</exclude>
									<exclude>javax.ws.rs:javax.ws.rs-api:(,2.2):*:runtime</exclude>
									<exclude>javax.websocket:javax.websocket-api:(,1.2):*:compile</exclude>
									<exclude>javax.websocket:javax.websocket-api:(,1.2):*:runtime</exclude>
									<exclude>javax.websocket:javax.websocket-client-api:(,1.2):*:compile</exclude>
									<exclude>javax.websocket:javax.websocket-client-api:(,1.2):*:runtime</exclude>
									<exclude>javax.json:javax.json-api:(,1.2):*:compile</exclude>
									<exclude>javax.json:javax.json-api:(,1.2):*:runtime</exclude>
									<exclude>javax.json.bind:javax.json.bind-api:(,1.1):*:compile</exclude>
									<exclude>javax.json.bind:javax.json.bind-api:(,1.1):*:runtime</exclude>
									<exclude>javax.enterprise.concurrent:javax.enterprise.concurrent-api:(,1.1):*:compile</exclude>
									<exclude>javax.enterprise.concurrent:javax.enterprise.concurrent-api:(,1.1):*:runtime</exclude>
									<exclude>javax.batch:javax.batch-api:(,1.1):*:compile</exclude>
									<exclude>javax.batch:javax.batch-api:(,1.1):*:runtime</exclude>
									<exclude>javax.xml.registry:javax.xml.registry-api:(,1.1):*:compile</exclude>
									<exclude>javax.xml.registry:javax.xml.registry-api:(,1.1):*:runtime</exclude>
									<exclude>javax.management.j2ee:javax.management.j2ee-api:(,1.2):*:compile</exclude>
									<exclude>javax.management.j2ee:javax.management.j2ee-api:(,1.2):*:runtime</exclude>
									<exclude>javax.enterprise.deploy:deployment-api:(,1.3):*:compile</exclude>
									<exclude>javax.enterprise.deploy:deployment-api:(,1.3):*:runtime</exclude>
									<exclude>javax.security.jacc:javax.security.jacc-api:(,1.6):*:compile</exclude>
									<exclude>javax.security.jacc:javax.security.jacc-api:(,1.6):*:runtime</exclude>
									<exclude>javax.security.auth.message:javax.security.auth.message-api:(,1.2):*:compile</exclude>
									<exclude>javax.security.auth.message:javax.security.auth.message-api:(,1.2):*:runtime</exclude>
									<exclude>javax.security.enterprise:javax.security.enterprise-api:(,1.1):*:compile</exclude>
									<exclude>javax.security.enterprise:javax.security.enterprise-api:(,1.1):*:runtime</exclude>
									<exclude>javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:(,1.3):*:compile</exclude>
									<exclude>javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:(,1.3):*:runtime</exclude>
									<exclude>javax.faces:javax.faces-api:(,2.4):*:compile</exclude>
									<exclude>javax.faces:javax.faces-api:(,2.4):*:runtime</exclude>
									<exclude>javax.annotation:javax.annotation-api:(,1.4):*:compile</exclude>
									<exclude>javax.annotation:javax.annotation-api:(,1.4):*:runtime</exclude>
									<exclude>javax.persistence:javax.persistence-api:(,2.3):*:compile</exclude>
									<exclude>javax.persistence:javax.persistence-api:(,2.3):*:runtime</exclude>
									<exclude>javax.validation:validation-api:(,2.1):*:compile</exclude>
									<exclude>javax.validation:validation-api:(,2.1):*:runtime</exclude>
									<exclude>javax.interceptor:javax.interceptor-api:(,1.3):*:compile</exclude>
									<exclude>javax.interceptor:javax.interceptor-api:(,1.3):*:runtime</exclude>
									<exclude>javax.enterprise:cdi-api:(,2.1):*:compile</exclude>
									<exclude>javax.enterprise:cdi-api:(,2.1):*:runtime</exclude>
									<exclude>javax.inject:javax.inject:(,1.1):*:compile</exclude>
									<exclude>javax.inject:javax.inject:(,1.1):*:runtime</exclude>

									<!-- Older coordinates no longer maintained -->
									<exclude>javaee:javaee-api:*:*:compile</exclude>
									<exclude>javaee:javaee-api:*:*:runtime</exclude>
									<exclude>javax.ejb:ejb-api:*:*:compile</exclude>
									<exclude>javax.ejb:ejb-api:*:*:runtime</exclude>
									<exclude>javax.servlet:servlet-api:*:*:compile</exclude>
									<exclude>javax.servlet:servlet-api:*:*:runtime</exclude>
									<exclude>javax.servlet.jsp:jsp-api:*:*:compile</exclude>
									<exclude>javax.servlet.jsp:jsp-api:*:*:runtime</exclude>
									<exclude>javax.jms:jms-api:*:*:compile</exclude>
									<exclude>javax.jms:jms-api:*:*:runtime</exclude>
									<exclude>javax.transaction:jta:*:*:compile</exclude>
									<exclude>javax.transaction:jta:*:*:runtime</exclude>
									<exclude>javax.mail:mailapi:*:*:compile</exclude>
									<exclude>javax.mail:mailapi:*:*:runtime</exclude>
									<exclude>javax.resource:connector-api:*:*:compile</exclude>
									<exclude>javax.resource:connector-api:*:*:runtime</exclude>
									<exclude>javax.xml:jaxrpc-api:*:*:compile</exclude>
									<exclude>javax.xml:jaxrpc-api:*:*:runtime</exclude>
									<exclude>javax.xml:jaxr-api:*:*:compile</exclude>
									<exclude>javax.xml:jaxr-api:*:*:runtime</exclude>
									<exclude>javax.management.j2ee:management-api:*:*:compile</exclude>
									<exclude>javax.management.j2ee:management-api:*:*:runtime</exclude>
									<exclude>javax.security:security-api:*:*:compile</exclude>
									<exclude>javax.security:security-api:*:*:runtime</exclude>
									<exclude>javax.servlet:jstl:*:*:compile</exclude>
									<exclude>javax.servlet:jstl:*:*:runtime</exclude>
									<exclude>javax.faces:jsf-api:*:*:compile</exclude>
									<exclude>javax.faces:jsf-api:*:*:runtime</exclude>
									<exclude>javax.persistence:persistence-api:*:*:compile</exclude>
									<exclude>javax.persistence:persistence-api:*:*:runtime</exclude>
									<exclude>javax.annotation:jsr250-api:*:*:compile</exclude>
									<exclude>javax.annotation:jsr250-api:*:*:runtime</exclude>
									<exclude>javax.el:el-api:*:*:compile</exclude>
									<exclude>javax.el:el-api:*:*:runtime</exclude>
								</excludes>
								<message>You must use 'provided' scope for JEE8-bundled dependencies</message>
							</bannedDependencies>
						</rules>
					</configuration>
				</execution>
			</executions>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-invoker-plugin</artifactId>
			<inherited>false</inherited>
			<executions>
				<execution>
					<goals>
						<goal>run</goal>
					</goals>
					<configuration>
						<cloneProjectsTo>target/its</cloneProjectsTo>
					</configuration>
				</execution>
			</executions>
		</plugin>
		<plugin>
			<groupId>org.simplify4u.plugins</groupId>
			<artifactId>sign-maven-plugin</artifactId>
			<inherited>false</inherited>
			<executions>
				<execution>
					<goals>
						<goal>sign</goal>
					</goals>
				</execution>
			</executions>
		</plugin>
	</plugins>
</build>
 
</project>