<?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.
-->
<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.2</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.portals.pluto</groupId>
    <artifactId>pluto</artifactId>
    <packaging>pom</packaging>
    <name>Apache Pluto</name>
    <!-- 
    Any version changes need to be changed in:
    1. All poms of children modules
    2. pluto.container.version.minor property in environment.properties in 
    pluto-container module (src/main/resources/org/apache/pluto).
    3. portal-version element in pluto-portal-driver-config.xml in pluto-portal module 
    (src/main/webapp/WEB-INF)
    4. expected.serverInfo and expected.portalInfo properties in expectedResults.properties 
    in testsuite module (src/main/webapp/WEB-INF/classes)
    5. pluto.version in Ant build file dist-build.xml.
     -->
    <version>2.0.0</version>
    <!-- Due to a bug in maven 2.0, the description must not contain any line breaks or tabs. -->
    <description>Apache Pluto is the Reference Implementation of the Java Portlet Specification.</description>
    <url>http://portals.apache.org/pluto</url>

    <issueManagement>
        <system>jira</system>
        <url>http://issues.apache.org/jira/secure/BrowseProject.jspa?id=10560</url>
    </issueManagement>
    <inceptionYear>2003</inceptionYear>


    <!-- Mailing Lists ======================================================= -->

    <mailingLists>
        <mailingList>
            <name>Pluto User List</name>
            <subscribe>pluto-user-subscribe@portals.apache.org</subscribe>
            <unsubscribe>pluto-user-unsubscribe@portals.apache.org</unsubscribe>
            <post>pluto-user@portals.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/portals-pluto-user</archive>
        </mailingList>
        <mailingList>
            <name>Pluto Developer List</name>
            <subscribe>pluto-dev-subscribe@portals.apache.org</subscribe>
            <unsubscribe>pluto-dev-unsubscribe@portals.apache.org</unsubscribe>
            <post>pluto-dev@portals.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/portals-pluto-dev</archive>
        </mailingList>
        <mailingList>
            <name>Pluto SCM List</name>
            <subscribe>pluto-scm-subscribe@portals.apache.org</subscribe>
            <unsubscribe>pluto-scm-unsubscribe@portals.apache.org</unsubscribe>
            <post>pluto-scm@portals.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/portals-pluto-scm</archive>
        </mailingList>
    </mailingLists>


    <!-- Pluto Committers ==================================================== -->

    <!-- Email format: [name]#a@T#[domain].d0t.[extension]
 '@' and '.' characters are added because m2 seems to need them to
 generate mailto links. -->

    <developers>

        <developer>
            <name>Michael Blum</name>
            <id>blumm</id>
            <email>blumm#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>Carsten Ziegeler</name>
            <id>cziegeler</id>
            <email>cziegeler#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>David DeWolf</name>
            <id>ddewolf</id>
            <email>ddewolf@apache.org</email>
            <timezone>-4</timezone>
            <url>http://www.daviddewolf.com</url>
            <organization>Three Pillar Software, Inc.</organization>
            <organizationUrl>http://www.threepillarsoftware.com</organizationUrl>
            <roles>
                <role>Java Developer</role>
            </roles>
        </developer>

        <developer>
            <name>Nick Lothian</name>
            <id>nlothian</id>
            <email>nlothian#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>Craig Doremus</name>
            <id>cdoremus</id>
            <email>cdoremus#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>Zhong Zheng</name>
            <id>zheng</id>
            <email>zheng#a@T#apache.d0t.org</email>
            <timezone>+1</timezone>
            <organization />
            <roles>
                <role>Java Developer</role>
            </roles>
        </developer>

        <developer>
            <name>Santiago Gala</name>
            <id>sgala</id>
            <email>sgala#a@T#hisitech.d0t.com</email>
            <organization />
        </developer>

        <developer>
            <name>Raphael Luta</name>
            <id>raphael</id>
            <email>raphael#a@T#apache.d0t.org</email>
            <organization />
        </developer>

        <developer>
            <name>David S. Taylor</name>
            <id>taylor</id>
            <email>david#a@T#bluesunrise.d0t.com</email>
            <organization />
        </developer>

        <developer>
            <name>Scott T. Weaver</name>
            <id>weaver</id>
            <email>weaver#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>Stefan Hepper</name>
            <id>sthepper</id>
            <email>sthepper#a@T#apache.d0t.org</email>
        </developer>

        <developer>
            <name>Elliot Metsger</name>
            <id>esm</id>
            <email>esm#a@T#apache.d0t.org</email>
            <timezone>-4</timezone>
            <url>http://uppertank.net/blog</url>
            <organization>Johns Hopkins University, Sheridan Libraries</organization>
            <organizationUrl>http://www.library.jhu.edu</organizationUrl>
        </developer>

        <developer>
            <name>Ate Douma</name>
            <id>ate</id>
            <email>ate#aT#apache.d0t.org</email>
            <timezone>+2</timezone>
            <organization>Hippo</organization>
            <organizationUrl>http://www.onehippo.com</organizationUrl>
            <roles>
                <role>Java Developer</role>
            </roles>
    </developer>

    </developers>


    <!-- Pluto Contributors ================================================== -->

    <contributors>
        <contributor>
            <name>Michael Westbay</name>
            <email>westbay#a@T#users.d0t.sourceforge.d0t.net</email>
        </contributor>
        <contributor>
            <name>Ken Weiner</name>
            <email>kweiner#a@T#unicon.d0t.net</email>
        </contributor>
        <contributor>
            <name>Ken Atherton</name>
            <email>katherto#a@T#visa.d0t.com</email>
        </contributor>
        <contributor>
            <name>David Hay</name>
        </contributor>

        <contributor>

        </contributor>
    </contributors>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/portals/pluto/tags/pluto-2.0.0</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/portals/pluto/tags/pluto-2.0.0</developerConnection>
        <url>http://svn.apache.org/viewcvs.cgi/portals/pluto/tags/pluto-2.0.0</url>
    </scm>

    <!-- Dependency Version Properties ======================================= -->

    <!--
    NOTE:
    
    Modification of these properties affects:
    1)  maven-pluto-plugin/src/main/resources/versions.properties as well!
    -->
    <properties>
        <pluto.container.name>Pluto</pluto.container.name>
        <javax.portlet.version.major>2</javax.portlet.version.major>
        <javax.portlet.version.minor>0</javax.portlet.version.minor>
        <portals.portlet2-api-spec.version>1.0</portals.portlet2-api-spec.version>
        <servlet-api.version>2.4</servlet-api.version>
        <jsp-api.version>2.0</jsp-api.version>
        <jstl.version>1.1.2</jstl.version>
        <taglibs.standard.version>1.1.2</taglibs.standard.version>
        <jaxb.version>2.1</jaxb.version>
        <jaxb-impl.version>2.1.9</jaxb-impl.version>
        <stax.impl.version>1.2.0</stax.impl.version>
        <commons-digester.version>1.8</commons-digester.version>
        <commons-cli.version>1.0</commons-cli.version>
        <slf4j.version>1.5.6</slf4j.version>
        <springframework.version>2.0.2</springframework.version>
        <maven.version>2.0.5</maven.version>
        <ant.version>1.6.5</ant.version>
        <commons-io.version>1.3.1</commons-io.version>
        <ccpp-api.version>1.0</ccpp-api.version>
        <junit.version>4.0</junit.version>
        <jmock.version>1.2.0</jmock.version>
        <xmlunit.version>1.1</xmlunit.version>

        <!-- The following properties are not directly used as maven
             dependencies, they're used by the maven pluto plugin for
             handling installation dependencies
             TODO: Check if we need all of them. -->
        <xerces.version>2.6.2</xerces.version>
        <xalan.version>2.7.0</xalan.version>
        <castor.version>1.1.1</castor.version>
        <commons-collections.version>3.2</commons-collections.version>
        <commons-httpclient.version>3.0</commons-httpclient.version>
        <commons-beanutils.version>1.7.0</commons-beanutils.version>
        <log4j.version>1.2.14</log4j.version>
        <activation.version>1.1</activation.version>
        <ccpp-ri.version>1.0</ccpp-ri.version>
        <rdffilter.version>1.0</rdffilter.version>
        <jena.version>1.4.0</jena.version>
    </properties>

    <dependencyManagement>
        <dependencies>
        <!-- Logging =========================================== -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
    
        <!-- Specification Libraries =========================================== -->
            <dependency>
                <groupId>org.apache.portals</groupId>
                <artifactId>portlet-api_2.0_spec</artifactId>
                <version>${portals.portlet2-api-spec.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet-api.version}</version>
            </dependency>
        
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb-impl.version}</version>
            </dependency>
            <dependency>
                <groupId>stax</groupId>
                <artifactId>stax</artifactId>
                <version>${stax.impl.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>stax</groupId>
                        <artifactId>stax-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        
        <!--  CCPP Libraries -->
            <dependency>
                <groupId>javax.ccpp</groupId>
                <artifactId>ccpp</artifactId>
                <version>${ccpp-api.version}</version>
            </dependency>
    
        <!-- Testing Libraries ================================================= -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jmock</groupId>
                <artifactId>jmock</artifactId>
                <version>${jmock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jmock</groupId>
                <artifactId>jmock-cglib</artifactId>
                <version>${jmock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>xmlunit</groupId>
                <artifactId>xmlunit</artifactId>
                <version>${xmlunit.version}</version>
                <scope>test</scope>
            </dependency>
        <!-- Misc ================================================= -->
            <dependency>
                <groupId>ant</groupId>
                <artifactId>ant</artifactId>
                <version>${ant.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-core</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-artifact</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-model</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-project</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jsp-api</artifactId>
                <version>${jsp-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
            </dependency>
            <dependency>
                <groupId>taglibs</groupId>
                <artifactId>standard</artifactId>
                <version>${taglibs.standard.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${springframework.version}</version>
                <scope>compile</scope>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${springframework.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${springframework.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-digester</groupId>
                <artifactId>commons-digester</artifactId>
                <version>${commons-digester.version}</version>
                <exclusions>
                  <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                  </exclusion>
                </exclusions>
            </dependency>
            <dependency>
              <groupId>commons-cli</groupId>
              <artifactId>commons-cli</artifactId>
              <version>${commons-cli.version}</version>
              <exclusions>
                 <exclusion>
                   <groupId>junit</groupId>
                   <artifactId>junit</artifactId>
                 </exclusion>
                 <exclusion>
                   <groupId>commons-logging</groupId>
                   <artifactId>commons-logging</artifactId>
                 </exclusion>
               </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.0.2</version>
                    <configuration>
                        <source>1.5</source>
                        <target>1.5</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <!-- Pluto Modules ======================================================= -->

    <modules>
      <!-- Pluto Container API -->
        <module>pluto-container-api</module>
        
      <!-- Pluto Core Modules -->
        <module>pluto-container</module>
        <module>pluto-taglib</module>

        <!-- Pluto Portal and Testsuite Modules -->
        <module>pluto-container-driver-api</module>
        <module>pluto-portal-driver</module>
        <module>pluto-portal-driver-impl</module>
        <module>pluto-portal</module>
        <module>pluto-testsuite</module>

        <!-- Pluto Utilities, Maven Plugins and Ant Tasks -->
        <module>pluto-util</module>
        <module>maven-pluto-plugin</module>
        <module>pluto-ant-tasks</module>
    </modules>

    <profiles>
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <configuration>
                            <!--  "hack" to make it possible to override portals-pom-1.2 configuration using
                                  descriptorRef "project" which (with the current version of the plugin
                                  doesn't produce what we need.
                                  This "hack" also requires setting ignoreMissingDescriptor=true (below)
                                  See also: http://jira.codehaus.org/browse/MASSEMBLY-409
                            -->
                            <descriptorRefs>
                                <descriptorRef>dummy-does-not-exist</descriptorRef>
                            </descriptorRefs>                            
                            <ignoreMissingDescriptor>true</ignoreMissingDescriptor>
                            <!-- our custom assembly descriptor producing -src archives and excludes velocity.log -->
                            <descriptors>
                                <descriptor>src/main/assembly/project-src.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles> 
    </project>
