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

<!-- $Rev$ $Date$ -->

<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.geronimo.genesis.config</groupId>
        <artifactId>project-config</artifactId>
        <version>1.1</version>
    </parent>

    <groupId>org.apache.geronimo</groupId>
    <artifactId>geronimo</artifactId>
    <name>Geronimo</name>
    <packaging>pom</packaging>

    <version>1.2-SNAPSHOT</version>

    <description>
        Apache Geronimo, the J2EE server project of the Apache Software Foundation.
    </description>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/geronimo/server/branches/1.2</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/geronimo/branches/1.2</developerConnection>
        <url>http://svn.apache.org/viewvc/geronimo/branches/1.2</url>
    </scm>

    <prerequisites>
        <maven>2.0.5</maven>
    </prerequisites>
    
    <properties>
        <!--
        NOTE: Project version, to be used instead of ${pom.version} since that
              value magically changes when using SNAPSHOT versions.

              This value *must* be kept in sync with the value of the <version>
              element, and it will need to be changed manually before a release,
              as the maven-release-plugin will not update this value.
        -->
        <version>1.2-SNAPSHOT</version>

        <geronimoSchemaVersion>1.2</geronimoSchemaVersion>

        <!--
        Having a single well named property makes automatic updating for the weekly build much easier.
        -->
        <openejbVersion>2.3-incubating-SNAPSHOT</openejbVersion>

        <!--
        HACK: Used by uddi-db to execute the sql plugin with the Derby driver.
        -->
        <derbyVersion>10.1.3.1</derbyVersion>

        <!--
        HACK: Used by jsp and servlet example configs to point to the tomcat deployer
        -->
        <tomcatVersion>5.5.15</tomcatVersion>

        <!--
        HACK: Used by uddi-jetty and uddi-tomcat config plans
        -->
        <tranqlVendorsVersion>1.2</tranqlVendorsVersion>
        
        <!--
        HACK: Used by applications/geronimo-dojo
        -->
        <dojoVersion>0.4.1</dojoVersion>
    </properties>

    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-activation_1.0.2_spec</artifactId>
                <version>1.2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-ejb_2.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-javamail_1.3.1_spec</artifactId>
                <version>1.3</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.javamail</groupId>
                <artifactId>geronimo-javamail_1.3.1_provider</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jaxr_1.0_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jsp_2.0_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jms_1.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-qname_1.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-saaj_1.1_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-servlet_2.4_spec</artifactId>
                <version>1.1</version>
            </dependency>

            <!-- jee5 specs -->
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jpa_3.0_spec</artifactId>
                <version>1.0-M1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-annotation_1.0_spec</artifactId>
                <version>1.0-M1</version>
            </dependency>

            <!--
            NOTE: The full source for this artifact is private due to Sun licensing issues.
                  To view the generated XmlBeans source please see the -src artifact in the repository:

                  http://people.apache.org/repo/m2-snapshot-repository/org/apache/geronimo/schema/

                  The full source is here with restricted access:

                  https://svn.apache.org/repos/tck/geronimo-tck/schema/geronimo-schema-j2ee_1.4/trunk
            -->
            <dependency>
                <groupId>org.apache.geronimo.schema</groupId>
                <artifactId>geronimo-schema-j2ee_1.4</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.geronimo.schema</groupId>
                <artifactId>geronimo-schema-jee_5</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openjpa</groupId>
                <artifactId>openjpa-all</artifactId>
                <version>0.9.6-incubating</version>
            </dependency>

            <dependency>
                <groupId>net.sourceforge.serp</groupId>
                <artifactId>serp</artifactId>
                <version>1.11.0</version>
            </dependency>

            <dependency>
                <groupId>org.apache.xbean</groupId>
                <artifactId>xbean-naming</artifactId>
                <version>2.7</version>
            </dependency>

            <dependency>
                <groupId>jline</groupId>
                <artifactId>jline</artifactId>
                <version>0.9.9</version>
            </dependency>

            <dependency>
                <groupId>axis</groupId>
                <artifactId>axis</artifactId>
                <version>1.4</version>
            </dependency>

            <dependency>
                <groupId>activeio</groupId>
                <artifactId>activeio</artifactId>
                <version>2.0-r118</version>
            </dependency>

            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm</artifactId>
                <version>1.4.3</version>
            </dependency>

            <dependency>
                <groupId>backport-util-concurrent</groupId>
                <artifactId>backport-util-concurrent</artifactId>
                <version>2.2</version>
            </dependency>

            <dependency>
                <groupId>concurrent</groupId>
                <artifactId>concurrent</artifactId>
                <version>1.3.4</version>
            </dependency>

            <dependency>
                <groupId>castor</groupId>
                <artifactId>castor</artifactId>
                <version>0.9.5.3</version>
            </dependency>

            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib-nodep</artifactId>
                <version>2.1_3</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.0.4</version>
            </dependency>

            <dependency>
                <groupId>org.objectweb.howl</groupId>
                <artifactId>howl</artifactId>
                <version>1.0.1-1</version>
            </dependency>

            <dependency>
                <groupId>hsqldb</groupId>
                <artifactId>hsqldb</artifactId>
                <version>1.7.2.2</version>
            </dependency>

            <dependency>
                <groupId>jdom</groupId>
                <artifactId>jdom</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.14</version>
            </dependency>

            <dependency>
                <groupId>mx4j</groupId>
                <artifactId>mx4j</artifactId>
                <version>3.0.2</version>
            </dependency>

            <dependency>
                <groupId>mx4j</groupId>
                <artifactId>mx4j-remote</artifactId>
                <version>3.0.2</version>
            </dependency>

            <dependency>
                <groupId>mockobjects</groupId>
                <artifactId>mockobjects-jdk1.4-j2ee1.3</artifactId>
                <version>0.09</version>
            </dependency>

            <dependency>
                <groupId>mockobjects</groupId>
                <artifactId>mockobjects-core</artifactId>
                <version>0.09</version>
            </dependency>

            <dependency>
                <groupId>org.apache.bcel</groupId>
                <artifactId>bcel</artifactId>
                <version>5.2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derby</artifactId>
                <version>${derbyVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbynet</artifactId>
                <version>${derbyVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derbyVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbytools</artifactId>
                <version>${derbyVersion}</version>
            </dependency>

            <dependency>
                <groupId>regexp</groupId>
                <artifactId>regexp</artifactId>
                <version>1.3</version>
            </dependency>

            <dependency>
                <groupId>scout</groupId>
                <artifactId>scout</artifactId>
                <version>0.5</version>
            </dependency>

            <dependency>
                <groupId>stax</groupId>
                <artifactId>stax-api</artifactId>
                <version>1.0.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>xmlbeans</groupId>
                        <artifactId>xmlbeans-jsr173-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql</artifactId>
                <version>1.4.1</version>
            </dependency>

            <dependency>
                <groupId>wsdl4j</groupId>
                <artifactId>wsdl4j</artifactId>
                <version>1.5.2</version>
            </dependency>
            
            <!--
            NOTE: Need to resolve which version of Xalan actually passes the TCK.
                  2.7.0 is needed for rmiiiop (because its the first version of Xalan
                  that *does not* include old versions of BCEL (finally), < 2.7.0 is
                  needed for some JAXP stuff.
            -->
            <dependency>
                <groupId>xalan</groupId>
                <artifactId>xalan</artifactId>
                <version>2.7.0</version>
                <!--
                <version>2.6.0</version>
                -->
            </dependency>

            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>2.8.1</version>
            </dependency>

            <dependency>
                <groupId>xml-apis</groupId>
                <artifactId>xml-apis</artifactId>
                <version>1.3.03</version>
            </dependency>

            <dependency>
                <groupId>xfire</groupId>
                <artifactId>xfire</artifactId>
                <version>20050202</version>
            </dependency>

            <dependency>
                <groupId>xfire</groupId>
                <artifactId>xfire-java</artifactId>
                <version>20050202</version>
            </dependency>

            <dependency>
                <groupId>xmlbeans</groupId>
                <artifactId>xbean</artifactId>
                <version>2.0.0</version>
            </dependency>

            <dependency>
                <groupId>xml-resolver</groupId>
                <artifactId>xml-resolver</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>xpp3</groupId>
                <artifactId>xpp3</artifactId>
                <version>1.1.3.3</version>
            </dependency>

            <dependency>
                <groupId>xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.1.3</version>
            </dependency>

            <dependency>
                <groupId>org.apache.yoko</groupId>
                <artifactId>yoko-core</artifactId>
                <version>1.0-incubating-M2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.yoko</groupId>
                <artifactId>yoko-spec-corba</artifactId>
                <version>1.0-incubating-M2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.yoko</groupId>
                <artifactId>yoko-rmi-spec</artifactId>
                <version>1.0-incubating-M2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.yoko</groupId>
                <artifactId>yoko-rmi-impl</artifactId>
                <version>1.0-incubating-M2</version>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.pluto</groupId>
                <artifactId>pluto</artifactId>
                <version>1.0.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.pluto</groupId>
                <artifactId>pluto-portal</artifactId>
                <version>1.0.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.pluto</groupId>
                <artifactId>pluto-descriptors</artifactId>
                <version>1.0.1</version>
            </dependency>
            
            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-core</artifactId>
                <version>4.1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activemq-ra</artifactId>
                <version>4.1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.activemq</groupId>
                <artifactId>activeio-core</artifactId>
                <version>3.0.0-incubator</version>
            </dependency>

            <dependency>
                <groupId>jdbm</groupId>
                <artifactId>jdbm</artifactId>
                <version>0.20-dev</version>
            </dependency>

            <dependency>
                <groupId>oro</groupId>
                <artifactId>oro</artifactId>
                <version>2.0.8</version>
            </dependency>

            <dependency>
                <groupId>antlr</groupId>
                <artifactId>antlr</artifactId>
                <version>2.7.2</version>
            </dependency>

            <dependency>
                <groupId>commons-discovery</groupId>
                <artifactId>commons-discovery</artifactId>
                <version>0.2</version>
            </dependency>

            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.1</version>
            </dependency>

            <dependency>
                <groupId>commons-primitives</groupId>
                <artifactId>commons-primitives</artifactId>
                <version>20041207.202534</version>
            </dependency>

            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.0</version>
            </dependency>

            <dependency>
                <groupId>commons-el</groupId>
                <artifactId>commons-el</artifactId>
                <version>1.0</version>
                <exclusions>
                    <!-- Exclude commons-logging (uses 1.3) -->
                    <!--
                    HACK: For some crazy reason, if we exclude this here, then
                          modules/jetty will fail to compile and there is no
                          way to convince m2 to put the jar back on the classpath
                          so, until that is resolved we have to disable this
                          exclusion

                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    -->
                </exclusions>
            </dependency>

            <dependency>
                <groupId>commons-digester</groupId>
                <artifactId>commons-digester</artifactId>
                <version>1.8</version>
            </dependency>

            <dependency>
                <groupId>commons-modeler</groupId>
                <artifactId>commons-modeler</artifactId>
                <version>2.0</version>
            </dependency>

            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.6.1</version>
            </dependency>

            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.1.1</version>
            </dependency>

            <dependency>
                <groupId>commons-jexl</groupId>
                <artifactId>commons-jexl</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>ognl</groupId>
                <artifactId>ognl</artifactId>
                <version>2.6.9</version>
            </dependency>

            <dependency>
                <groupId>portlet-api</groupId>
                <artifactId>portlet-api</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>taglibs</groupId>
                <artifactId>standard</artifactId>
                <version>1.1.1</version>
            </dependency>

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.1.1</version>
            </dependency>

            <dependency>
                <groupId>dwr</groupId>
                <artifactId>dwr</artifactId>
                <version>1.1.1</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-axis</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-core</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-corba</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-builder</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-corba-builder</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-pkgen-builder</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.openejb</groupId>
                <artifactId>openejb-yoko</artifactId>
                <version>${openejbVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector-ra</artifactId>
                <version>1.3</version>
                <type>rar</type>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector-derby-embed-xa</artifactId>
                <version>1.2</version>
                <type>rar</type>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector-derby-embed-local</artifactId>
                <version>1.2</version>
                <type>rar</type>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector-derby-client-local</artifactId>
                <version>1.2</version>
                <type>rar</type>
            </dependency>

            <dependency>
                <groupId>org.tranql</groupId>
                <artifactId>tranql-connector-derby-client-xa</artifactId>
                <version>1.2</version>
                <type>rar</type>
            </dependency>

            <dependency>
                <groupId>juddi</groupId>
                <artifactId>juddi</artifactId>
                <version>0.9rc4</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-runtime</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>directory</groupId>
                <artifactId>apacheds-core</artifactId>
                <version>0.9.2</version>
            </dependency>

            <dependency>
                <groupId>directory</groupId>
                <artifactId>apacheds-shared</artifactId>
                <version>0.9.2</version>
            </dependency>

            <dependency>
                <groupId>directory-asn1</groupId>
                <artifactId>asn1-codec</artifactId>
                <version>0.3.2</version>
            </dependency>

            <dependency>
                <groupId>directory-asn1</groupId>
                <artifactId>asn1-ber</artifactId>
                <version>0.3.2</version>
                <exclusions>
                    <!--
                    NOTE: Exclude commons-test, no needed for compile, not deployed into any m2 repo.
                          Where are the sources for this artifact?
                    -->
                    <exclusion>
                        <groupId>commons-test</groupId>
                        <artifactId>commons-test</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>directory-asn1</groupId>
                <artifactId>asn1-der</artifactId>
                <version>0.3.2</version>
            </dependency>

            <dependency>
                <groupId>directory-shared</groupId>
                <artifactId>apache-ldapber-provider</artifactId>
                <version>0.9.2</version>
            </dependency>

            <dependency>
                <groupId>directory-shared</groupId>
                <artifactId>ldap-common</artifactId>
                <version>0.9.2</version>
            </dependency>

            <dependency>
                <groupId>directory-shared</groupId>
                <artifactId>kerberos-common</artifactId>
                <version>0.5</version>
            </dependency>

            <dependency>
                <groupId>directory-network</groupId>
                <artifactId>mina</artifactId>
                <version>0.7.3</version>
            </dependency>

            <dependency>
                <groupId>directory-protocols</groupId>
                <artifactId>kerberos-protocol</artifactId>
                <version>0.5</version>
            </dependency>

            <dependency>
                <groupId>directory-protocols</groupId>
                <artifactId>ldap-protocol</artifactId>
                <version>0.9.2</version>
            </dependency>

            <dependency>
                <groupId>jetty</groupId>
                <artifactId>org.mortbay.jetty</artifactId>
                <version>5.1.12</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-compiler</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-compiler-jdt</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-runtime</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>catalina</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-ajp</artifactId>
                <version>5.5.15</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>catalina-cluster</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <!--
              - Required until any realm is provided to Tomcat
              - See StandardEngine::getRealm()
            -->
            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>catalina-optional</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-coyote</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-http</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-compiler</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-compiler-jdt</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>jasper-runtime</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>tomcat-util</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>naming-resources</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>servlets-default</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>tomcat</groupId>
                <artifactId>servlets-invoker</artifactId>
                <version>${tomcatVersion}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.wadi</groupId>
                <artifactId>wadi-core</artifactId>
                <version>2.0M2</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.wadi</groupId>
                <artifactId>wadi-group</artifactId>
                <version>2.0M2</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.wadi</groupId>
                <artifactId>wadi-tribes</artifactId>
                <version>2.0M2</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.wadi</groupId>
                <artifactId>wadi-tribes</artifactId>
                <version>2.0M2</version>
            </dependency>

            <dependency>
                <groupId>org.apache.catalina.tribes</groupId>
                <artifactId>tribes</artifactId>
                <version>0.9.5.2</version>
            </dependency>
            
            <dependency>
                <groupId>org.dojotoolkit</groupId>
                <artifactId>dojo</artifactId>
                <version>${dojoVersion}</version>
                <type>zip</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.geronimo.plugins</groupId>
                    <artifactId>car-maven-plugin</artifactId>
                    <version>${version}</version>
                    <extensions>true</extensions>
                </plugin>
                

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.0-alpha-1</version>
                </plugin>
                

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>xmlbeans-maven-plugin</artifactId>
                    <!--
                    FIXME: Remove this pinned SNAPSHOT (its still a SNAPSHOT, in an unstable SNAPSHOT repository).
                    -->
                    <version>2.0.1-20060627.031204-7</version>

                    <executions>
                        <execution>
                            <goals>
                                <goal>xmlbeans</goal>
                            </goals>
                        </execution>
                    </executions>

                    <configuration>
                        <schemaDirectory>${pom.basedir}/src/main/schema</schemaDirectory>
                        <xmlConfigs>
                            <xmlConfig implementation="java.io.File">${pom.basedir}/src/main/schema/xmlconfig.xml</xmlConfig>
                        </xmlConfigs>
                        <download>true</download>
                        <quiet>false</quiet>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jspc-maven-plugin</artifactId>
                    <version>1.4.6</version>
                    <executions>
                        <execution>
                            <id>jspc</id>
                            <goals>
                                <goal>compile</goal>
                            </goals>
                            <configuration>
                                <warSourceDirectory>${pom.basedir}/src/main/webapp</warSourceDirectory>
                                <inputWebXml>${pom.basedir}/src/main/webapp/WEB-INF/web.xml</inputWebXml>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>1.0</version>
                </plugin>
                
                <!--
                FIXME: Should not configure war to assume jsp by default
                -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.0.1</version>
                    <configuration>
                        <warSourceDirectory>${pom.basedir}/src/main/webapp</warSourceDirectory>
                        <webXml>${pom.basedir}/target/jspweb.xml</webXml>
                        <archiveClasses>true</archiveClasses>
                        <archive>
                            <!-- Do not include META-INF/maven to avoid long file problems on windows -->
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                        
                        <!--
                        HACK: Include legal files explicity, otherwise they will end up in the wrong path
                              or in another jar file in the war.
                        
                        NOTE: targetPath is broken for webResources (as documented)
                        -->
                        <webResources>
                            <resource>
                                <directory>${pom.basedir}/target/classes</directory>
                                <includes>
                                    <include>META-INF/LICENSE*</include>
                                    <include>META-INF/NOTICE*</include>
                                    <include>META-INF/DISCLAIMER*</include>
                                </includes>
                            </resource>
                        </webResources>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <archive>
                            <!-- Do not include META-INF/maven to avoid long file problems on windows -->
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-rar-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <archive>
                            <!-- Do not include META-INF/maven to avoid long file problems on windows -->
                            <addMavenDescriptor>false</addMavenDescriptor>
                        </archive>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.geronimo.plugins</groupId>
                    <artifactId>geronimo-maven-plugin</artifactId>
                    <version>${version}</version>

                    <configuration>
                        <assemblies>
                            <assembly>
                                <id>jetty</id>
                                <groupId>org.apache.geronimo.assemblies</groupId>
                                <artifactId>geronimo-jetty-j2ee</artifactId>
                                <version>${version}</version>
                                <classifier>bin</classifier>
                                <type>zip</type>
                            </assembly>

                            <assembly>
                                <id>jetty-minimal</id>
                                <groupId>org.apache.geronimo.assemblies</groupId>
                                <artifactId>geronimo-jetty-minimal</artifactId>
                                <version>${version}</version>
                                <classifier>bin</classifier>
                                <type>zip</type>
                            </assembly>

                            <assembly>
                                <id>tomcat</id>
                                <groupId>org.apache.geronimo.assemblies</groupId>
                                <artifactId>geronimo-tomcat-j2ee</artifactId>
                                <version>${version}</version>
                                <classifier>bin</classifier>
                                <type>zip</type>
                            </assembly>

                            <assembly>
                                <id>tomcat-minimal</id>
                                <groupId>org.apache.geronimo.assemblies</groupId>
                                <artifactId>geronimo-tomcat-minimal</artifactId>
                                <version>${version}</version>
                                <classifier>bin</classifier>
                                <type>zip</type>
                            </assembly>
                        </assemblies>

                        <defaultAssemblyId>jetty</defaultAssemblyId>

                        <optionSets>
                            <optionSet>
                                <id>morememory</id>
                                <options>
                                    <option>-Xmx512m</option>
                                    <option>-XX:MaxPermSize=128m</option>
                                </options>
                            </optionSet>
                            
                            <optionSet>
                                <id>debug</id>
                                <options>
                                    <option>-Xdebug</option>
                                    <option>-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n</option>
                                </options>
                            </optionSet>
                        </optionSets>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.geronimo.genesis.plugins</groupId>
                <artifactId>tools-maven-plugin</artifactId>

                <!-- Tools includes custom packagings, install as extension to pick them up -->
                <extensions>true</extensions>

                <executions>
                    <execution>
                        <id>validate-java-version</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>require-java-version</goal>
                        </goals>
                        <configuration>
                            <version>1.5*</version>
                        </configuration>
                    </execution>

                    <execution>
                        <id>install-legal-files</id>
                        <phase>generate-resources</phase>
                        <goals>
                            <goal>copy-legal-files</goal>
                        </goals>
                        <configuration>
                            <!-- Fail the build if no legal files were copied -->
                            <strict>true</strict>
                        </configuration>
                    </execution>
                    
                    <execution>
                        <id>verify-legal-files</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>verify-legal-files</goal>
                        </goals>
                        <configuration>
                            <!-- Fail the build if no legal files were found -->
                            <strict>true</strict>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.4</source>
                    <target>1.4</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-idea-plugin</artifactId>
                <configuration>
                    <jdkName>1.4</jdkName>
                    <linkModules>true</linkModules>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <configuration>
                    <tagBase>https://svn.apache.org/repos/asf/geronimo/server/tags</tagBase>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <!--
        NOTE: The default repositories are picked up by Genesis, but need to
              specify where Genesis lives to pick it up + any additional repositories.
        -->

        <repository>
            <id>apache-snapshots</id>
            <name>Apache Snapshots Repository</name>
            <url>http://people.apache.org/repo/m2-snapshot-repository</url>
            <layout>default</layout>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </snapshots>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>

        <repository>
            <id>apache-incubator</id>
            <name>Apache Incubator Repository</name>
            <url>http://people.apache.org/repo/m2-incubating-repository</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>

    <distributionManagement>
        <!--
        NOTE: The repository and snapshotRepository are picked up from Genesis.
        -->

        <site>
            <id>geronimo-website</id>
            <url>scp://people.apache.org/www/geronimo.apache.org/maven/server</url>
        </site>
    </distributionManagement>

    <profiles>
        <profile>
            <id>default</id>

            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>

            <modules>
                <module>repository</module>
                <module>testsupport</module>
                <module>modules</module>
                <module>maven-plugins</module>
                <module>applications</module>
                <module>configs</module>
                <module>assemblies</module>
            </modules>
        </profile>

        <!--
        NOTE: This profile is used to enable plugin prefixes for easy command-line usage, as in:

              mvn -Ptools geronimo:start
        -->
        <profile>
            <id>tools</id>

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

                    <plugin>
                        <groupId>org.apache.geronimo.plugins</groupId>
                        <artifactId>selenium-maven-plugin</artifactId>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.geronimo.genesis.plugins</groupId>
                        <artifactId>tools-maven-plugin</artifactId>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.geronimo.genesis.plugins</groupId>
                        <artifactId>maven-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
        NOTE: The staged build is used to get around a problem with Maven
              and extension plugins.

              See http://issues.apache.org/jira/browse/GERONIMO-2172 for more details.
        -->

        <profile>
            <id>stage-bootstrap</id>

            <activation>
                <property>
                    <name>stage</name>
                    <value>bootstrap</value>
                </property>
            </activation>

            <modules>
                <module>repository</module>
                <module>testsupport</module>
                <module>modules</module>
                <module>maven-plugins</module>
            </modules>
        </profile>

        <profile>
            <id>stage-assemble</id>

            <activation>
                <property>
                    <name>stage</name>
                    <value>assemble</value>
                </property>
            </activation>

            <modules>
                <module>applications</module>
                <module>configs</module>
                <module>assemblies</module>
            </modules>
        </profile>

        <profile>
            <id>release-environment</id>

            <activation>
                <property>
                    <name>env</name>
                    <value>release</value>
                </property>
            </activation>

            <modules>
                <module>testsupport</module>
                <module>modules</module>
                <module>maven-plugins</module>
                <module>applications</module>
                <module>configs</module>
            </modules>
        </profile>

        <profile>
            <id>site-environment</id>

            <activation>
                <property>
                    <name>env</name>
                    <value>site</value>
                </property>
            </activation>

            <modules>
                <module>repository</module>
                <module>testsupport</module>
                <module>modules</module>
                <module>maven-plugins</module>
                <module>applications</module>
            </modules>
        </profile>
    </profiles>

</project>

