<?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.3</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.1.0-SNAPSHOT</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>Scott Nicklous</name>
      <id>msnicklous</id>
      <email>msnicklous#a@T#apache.d0t.org</email>
      <timezone>+1</timezone>
      <organization>IBM Corporation</organization>
      <organizationUrl>http://www.ibm.com</organizationUrl>
      <roles>
        <role>Specification Lead, JSR 362 Portlet Specification 3.0</role>
        <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>

    <developer>
      <name>David Jencks</name>
      <id>djencks</id>
      <email>djencks#aT#apache.d0t.org</email>
      <timezone>-7</timezone>
    </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/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/portals/pluto/trunk</developerConnection>
    <url>http://svn.apache.org/viewcvs.cgi/portals/pluto/trunk</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.7.5</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>

    <!-- scope of certain dependencies is "compile" for deployment on tomcat, 
         but "provided" for deployment on tomee. See tomee profile. -->
    <dependency.scope>compile</dependency.scope>
  </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.portals.pluto</groupId>
          <artifactId>maven-pluto-plugin</artifactId>
          <version>${project.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.10</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>2.0.1</version>
          <extensions>true</extensions>
          <configuration>
            <instructions>
              <Implementation-Title>${project.name}</Implementation-Title>
              <Specification-Version>${project.version}</Specification-Version>
              <Implementation-Version>${project.version}</Implementation-Version>
              <Bundle-DocURL>${project.url}</Bundle-DocURL>
            </instructions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <!-- During release (prepare) the org.apache.felix maven-bundle-plugin needs classpath access to just build dependent artifacts
                 like the pluto-container-api to determine the needed OSGi imports.
                 However, the default maven-release-plugin goals (clean verify) somehow don't provide those.
                 To fix that, the default release plugin set of preparationGoals is changed to do an "install" instead of just "verify".
            -->
            <preparationGoals>clean install</preparationGoals>
            <mavenExecutorId>forked-path</mavenExecutorId>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>all</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <!-- profile must also be activated when building for tomee -->
        <property>
          <name>tomee</name>
        </property>
      </activation>
      
      <!-- 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>
        <module>pluto-site-skin</module>
      </modules>
    </profile>
    
    <profile>
      <id>website</id>
      <!-- For building website documentation, there's no need to include modules. -->
      <modules />
    </profile>
    
    <!-- To build Pluto for deployment on tomee, activate this profile -->
    <!-- Activate using the tomee property: mvn clean install -Dtomee -->
    <profile>
      <id>tomee</id>
      <activation>
        <property>
          <name>tomee</name>
        </property>
      </activation>
      <properties>
         <!-- scope of certain dependencies is "compile" for deployment on tomcat, 
              but "provided" for deployment on tomee. See tomee profile. -->
		  <dependency.scope>provided</dependency.scope>
      </properties>
    </profile>

  </profiles>

</project>
