<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
 * $Id$
 *
 * 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.
 */
-->
<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>
    <parent>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-apps</artifactId>
      <version>2.2.0</version>
    </parent>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-portlet</artifactId>
    <packaging>war</packaging>
    <name>Portlet Webapp</name>

    <scm>
       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_2_0/apps/portlet</connection>
       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_2_0/apps/portlet</developerConnection>
       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/tags/STRUTS_2_2_0/apps/portlet</url>
    </scm>

	<profiles>
		<profile>
			<id>pluto</id>
			<build>
				<plugins>
				  <!-- configure maven-war-plugin to use updated web.xml -->
			      <plugin>
			        <artifactId>maven-war-plugin</artifactId>
			        <configuration>
			          <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
			        </configuration>
			      </plugin>
			      <!-- bind 'pluto:assemble' goal to 'process-resources' lifecycle -->
			      <plugin>
			        <groupId>org.apache.pluto</groupId>
			        <artifactId>maven-pluto-plugin</artifactId>
			        <version>1.1.3</version>
			        <executions>
			          <execution>
			            <phase>generate-resources</phase>
			            <goals>
			              <goal>assemble</goal>
			            </goals>
			          </execution>
			        </executions>
			      </plugin>
				<plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>maven-jetty-plugin</artifactId>
                        <configuration>
                            <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
                            <webDefaultXml>src/main/webapp/WEB-INF/jetty-pluto-web-default.xml</webDefaultXml>
                            <systemProperties>
                                <systemProperty>
                                    <name>org.apache.pluto.embedded.portletId</name>
                                    <value>StrutsPortlet</value>
                                </systemProperty>
                            </systemProperties>
                        </configuration>
                    </plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<groupId>com.bekk.boss</groupId>
					<artifactId>maven-jetty-pluto-embedded</artifactId>
					<version>1.0</version>
				</dependency>
			</dependencies>
		</profile>
	</profiles>
	
    <dependencies>
        <dependency>
            <groupId>portlet-api</groupId>
            <artifactId>portlet-api</artifactId>
            <version>1.0</version>
            <scope>provided</scope>
        </dependency>
         <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>${pom.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-portlet-plugin</artifactId>
            <version>${pom.version}</version>
        </dependency>
         <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-dwr-plugin</artifactId>
            <version>${pom.version}</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.6.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-tools</artifactId>
            <version>1.3</version>
			<exclusions>
                <exclusion>
                    <groupId>velocity</groupId>
                    <artifactId>velocity</artifactId>
                </exclusion>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
                <exclusion>
                    <groupId>struts</groupId>
                    <artifactId>struts</artifactId>
                </exclusion>
			</exclusions>
        </dependency>
        <dependency>
            <groupId>commons-digester</groupId>
            <artifactId>commons-digester</artifactId>
            <version>1.8</version>
			<exclusions>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
			</exclusions>
        </dependency>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.1.1</version>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.1</version>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.9</version>
    </dependency>

		<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jetty</artifactId>
			<version>6.1.4rc0</version>
			<scope>test</scope>
		</dependency>

		<dependency>
            <groupId>net.sourceforge.jwebunit</groupId>
            <artifactId>jwebunit-htmlunit-plugin</artifactId>
            <version>1.4.1</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

		<dependency>
			<groupId>com.bekk.boss</groupId>
			<artifactId>maven-jetty-pluto-embedded</artifactId>
			<version>1.0</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mortbay.jetty</groupId>
			<artifactId>jsp-2.1</artifactId>
			<version>6.1.4rc0</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.1</version>
		</dependency>

    </dependencies>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>rat-maven-plugin</artifactId>
                <version>1.0-alpha-2</version>
                <configuration>
                    <includes>
                        <include>pom.xml</include>
                        <include>src/**</include>
                    </includes>
                    <excludes>
                        <exclude>src/main/etc/gridsphere/README-gridsphere.txt</exclude>
                        <exclude>src/main/etc/gridsphere/struts-portlet</exclude>
                        <exclude>src/main/etc/jetspeed2/README-jetspeed2.txt</exclude>
                        <exclude>src/main/etc/jetspeed2/struts-portlet.psml</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>
