<?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>

