<?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.
  
  $Id: pom.xml 774158 2009-05-13 00:42:04Z ate $
-->
<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">
	<parent>
		<groupId>org.apache.portals</groupId>
		<artifactId>portals-pom</artifactId>
		<version>1.4</version>
		<relativePath/>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<groupId>javax.portlet</groupId>
	<artifactId>portlet-api</artifactId>
	<version>3.0.2-SNAPSHOT</version>
	<packaging>bundle</packaging>
	<name>Java Portlet API V3.0</name>
	<description>The Java Portlet API version 3.0 developed by the Java Community Process JSR-362 Expert Group.</description>
	<properties>
		<!-- basic project settings -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<!-- Plugin versions -->
		<version.javadoc.plugin>2.9</version.javadoc.plugin>
		<!-- The javadoc.css.file property defines the css file to be used for the HTML javadoc output files. -->
		<!-- portlet-api.css - provides colored change bars and displays deleted text -->
		<!-- portlet-api-production.css - provides no change bars and supresses deleted text -->
		<javadoc.css.file>portlet-api-production.css</javadoc.css.file>
		<!-- The javadoc.overview.file property specifies the overview file to use. -->
		<!-- overview.html - production overview, contains no change history        -->
		<!-- overview_dev.html - development overview with change history            -->
		<javadoc.overview.file>${basedir}/src/main/javadoc/overview.html</javadoc.overview.file>
		<javadoc.spec.title>JSR 362 Portlet 3.0 API Specification</javadoc.spec.title>
	</properties>
	<dependencies>
		<dependency>
			<groupId>javax</groupId>
			<artifactId>javaee-api</artifactId>
			<version>6.0</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.enterprise</groupId>
			<artifactId>cdi-api</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
	<!--<scm>-->
	<!--<connection>git://git.apache.org/pluto.git</connection>-->
	<!--<developerConnection>git://git.apache.org/pluto.git</developerConnection>-->
	<!--<url>http://msnicklous.github.io/portletspec3/apidocs/index.html</url>-->
	<!--</scm>-->
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.1</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${version.javadoc.plugin}</version>
					<configuration>
						<additionalparam>${javadoc.opts}</additionalparam>
						<doctitle>${javadoc.spec.title}</doctitle>
						<windowtitle>${javadoc.spec.title}</windowtitle>
						<stylesheetfile>${javadoc.css.file}</stylesheetfile>
						<overview>${javadoc.overview.file}</overview>
						<!-- link to Java EE APIs for cross-references -->
						<links>
							<link>http://docs.oracle.com/javaee/7/api/</link>
						</links>
						<docfilessubdirs>true</docfilessubdirs>
						<bottom><![CDATA[Java Portlet 3.0 API Specification.
               See the <a href="doc-files/NOTICE.txt">Copyright</a> and 
               <a href="doc-files/LICENSE.txt">License</a> provided with this distribution.
               Use is subject to
               <a href="http://www.apache.org/licenses/LICENSE-2.0">license terms</a>.]]></bottom>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.felix</groupId>
					<artifactId>maven-bundle-plugin</artifactId>
					<version>3.2.0</version>
					<extensions>true</extensions>
					<configuration>
						<instructions>
							<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
							<Import-Package>
                        javax.enterprise.context;resolution:=optional,
                        javax.inject;resolution:=optional,*
                     </Import-Package>
							<Provide-Capability>osgi.contract; osgi.contract=JavaPortlet; version:List&lt;Version&gt;="3,2,1"; uses:="javax.portlet,javax.portlet.annotations,javax.portlet.filter"</Provide-Capability>
						</instructions>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
			</plugin>
			<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>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<configuration>
					<excludes>**/promise*.min.js</excludes>
				</configuration>
			</plugin>
			<!-- Run the junit tests -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<testFailureIgnore>true</testFailureIgnore>
				</configuration>
			</plugin>
			<!-- Javascript compressor plugin -->
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>yuicompressor-maven-plugin</artifactId>
				<version>1.1</version>
				<executions>
					<execution>
						<id>compress-js</id>
						<goals>
							<goal>compress</goal>
						</goals>
						<configuration>
							<jswarn>false</jswarn>
							<sourceDirectory>src/main/javascript</sourceDirectory>
							<outputDirectory>${project.build.directory}/${project.build.finalName}/javascript</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<!-- copy the original uncompressed javascript files as web resources, 
            just to have them too. -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.2.2</version>
				<configuration>
					<webResources>
						<resource>
							<directory>src/main/javascript</directory>
							<targetPath>/javascript</targetPath>
						</resource>
					</webResources>
				</configuration>
			</plugin>
			<!-- Generate jsdocs during package execution. Bind execution to 
            maven package phase. -->
			<plugin>
				<groupId>com.phasebash.jsdoc</groupId>
				<artifactId>jsdoc3-maven-plugin</artifactId>
				<version>1.1.0</version>
				<executions>
					<execution>
						<goals>
							<goal>jsdoc3</goal>
						</goals>
						<phase>prepare-package</phase>
					</execution>
				</executions>
				<configuration>
					<sourceFiles>
						<sourceFile>${basedir}/src/main/javascript/portlet.js</sourceFile>
					</sourceFiles>
					<outputDirectory>${project.build.directory}/apidocs/docfiles/jsdoc</outputDirectory>
				</configuration>
			</plugin>
			<!-- want the javascript files in the site directory, too. Bind 
            execution to maven package phase. -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.7</version>
				<executions>
					<execution>
						<phase>prepare-package</phase>
						<goals>
							<goal>run</goal>
						</goals>
						<configuration>
							<tasks>
								<copy todir="target/site/javascript">
									<fileset dir="src/main/javascript"/>
								</copy>
							</tasks>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>2.17</version>
				<configuration>
					<aggregate>true</aggregate>
					<reportsDirectories>
						<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
						<reportsDirectory>${project.build.directory}/jasmine</reportsDirectory>
					</reportsDirectories>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
	<profiles>
		<profile>
			<id>java8-doclint-disabled</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<properties>
				<javadoc.opts>-Xdoclint:none -Xdoclint:-missing</javadoc.opts>
			</properties>
		</profile>
		<profile>
			<id>PortletHubTest</id>
			<build>
				<plugins>
					<!-- prereq to allow Jasmine to execute with PhantomJS -->
					<plugin>
						<groupId>com.github.klieber</groupId>
						<artifactId>phantomjs-maven-plugin</artifactId>
						<version>0.4</version>
						<executions>
							<execution>
								<goals>
									<goal>install</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<version>1.9.7</version>
						</configuration>
					</plugin>
					<!-- Javasript unit tests through Jasmine -->
					<plugin>
						<groupId>com.github.searls</groupId>
						<artifactId>jasmine-maven-plugin</artifactId>
						<version>1.3.1.4</version>
						<executions>
							<execution>
								<goals>
									<goal>test</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<haltOnFailure>false</haltOnFailure>
							<jsSrcDir>src/main/javascript</jsSrcDir>
							<jsTestSrcDir>src/test/javascript</jsTestSrcDir>
							<webDriverClassName>org.openqa.selenium.phantomjs.PhantomJSDriver</webDriverClassName>
							<webDriverCapabilities>
								<capability>
									<name>phantomjs.binary.path</name>
									<value>${phantomjs.binary}</value>
								</capability>
							</webDriverCapabilities>
							<!-- preload some utilities for working with portlets -->
							<preloadSources>
								<include>promise-6.0.0.min.js</include>
								<include>JasminePortletUtils.js</include>
							</preloadSources>
							<sourceIncludes>
								<include>**/MockData.js</include>
								<include>**/portlet.js</include>
							</sourceIncludes>
							<specIncludes>
								<include>**/CustomMatchers.js</include>
								<include>**/SetUpAndRegisterTest.js</include>
								<include>**/AddEventListenerTest.js</include>
								<include>**/CreateResourceUrlTest.js</include>
								<include>**/SetPortletStateTest.js</include>
								<include>**/ActionTest.js</include>
								<include>**/PartialActionTest.js</include>
								<include>**/IsInProgressTest.js</include>
								<include>**/DispatchClientEventTest.js</include>
								<include>**/SimulatedErrorTests.js</include>
								<include>**/StateTests.js</include>
							</specIncludes>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
