<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2010 The Apache Software Foundation

  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.
-->
<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">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.apache.portals.pluto</groupId>
	<artifactId>pluto-assemble-tck286-wars</artifactId>
	<version>2.0</version>
	<packaging>pom</packaging>
	<name>Pluto Assemble JSR-286 TCK 2.0 wars</name>
	<properties>
		<dist>${basedir}/dist/com/sun/ts/tests/portlet</dist>
	</properties>
	<build>
		<defaultGoal>package</defaultGoal>
		<plugins>
			<plugin>
				<groupId>org.apache.portals.pluto</groupId>
				<artifactId>maven-pluto-plugin</artifactId>
				<version>2.0.1</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>assemble</goal>
						</goals>
						<configuration>
							<assemblyOutputDirectory>${basedir}/pluto-assembled-wars</assemblyOutputDirectory>
							<archives>
								<assemblyArchive>${dist}/Signature/portlet_jp_sig_web.war</assemblyArchive>
								<assemblyArchive>${dist}/ee/ClassLoader/portlet_jp_ClassLoader_web.war</assemblyArchive>
								<assemblyArchive>${dist}/ee/taglib/portlet_jp_taglib_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortalContext/portlet_jp_PortalContext_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/EventResponse/portlet_jp_EventResponse_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/Portlet/portlet_jp_Portlet_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/RenderResponse/portlet_jp_RenderResponse_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ResourceRequest/portlet_jp_ResourceRequest_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletPreferences/portlet_jp_PortletPreferences_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSession/portlet_jp_PortletSession_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletContext/portlet_jp_PortletContext_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/RenderRequest/portlet_jp_RenderRequest_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/UnavailableException/portlet_jp_UnavailableException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletConfigSecond/portlet_jp_PortletConfigSecond_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletRequestDispatcher/portlet_jp_PortletRequestDispatcher_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletException/portlet_jp_PortletException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSessionPrivatescope/portlet_jp_PortletSession_privatescope_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletURL/portlet_jp_PortletURL_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/GenericPortlet/portlet_jp_GenericPortlet_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ResourceResponse/portlet_jp_ResourceResponse_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/EventRequest/portlet_jp_EventRequest_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletMode/portlet_jp_PortletMode_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSessionAppscope/portlet_jp_PortletSession_appscope_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletURLListener/portlet_jp_PortletURLListener_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSessionDistributableapp/portlet_jp_PortletSession_distributableapp_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSessionUtil/portlet_jp_PortletSessionUtil_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ResourceServing/portlet_jp_ResourceServing_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletModeException/portlet_jp_PortletModeException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletConfig/portlet_jp_PortletConfig_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletFilter/portlet_jp_PortletFilter_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSecurityException/portlet_jp_PortletSecurityException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/WindowState/portlet_jp_WindowState_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ActionResponse/portlet_jp_ActionResponse_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/WindowStateException/portlet_jp_WindowStateException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ReadOnlyException/portlet_jp_ReadOnlyException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/PortletSessionSecondapp/portlet_jp_PortletSession_secondapp_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ValidatorException/portlet_jp_ValidatorException_web.war</assemblyArchive>
								<assemblyArchive>${dist}/api/javax_portlet/ActionRequest/portlet_jp_ActionRequest_web.war</assemblyArchive>
							</archives>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
