<?xml version="1.0" encoding="UTF-8"?>
<!--

    Copyright 2004 The Apache Software Foundation

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

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

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.geronimo</groupId>
  <artifactId>geronimo</artifactId>
  <packaging>pom</packaging>
  <name>Geronimo</name>
  <version>1.1-SNAPSHOT</version>
  <description>Geronimo parent</description>
  <url>http://geronimo.apache.org</url>

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

  <ciManagement>
    <system>continuum</system>
    <notifiers>
      <notifier>
        <type>mail</type>
        <sendOnError/>
        <sendOnFailure/>
        <address>dev@geronimo.org</address>
      </notifier>
    </notifiers>
  </ciManagement>
  
  <mailingLists>
    <mailingList>
      <name>Geronimo User List</name>
      <subscribe>users-subscribe@geronimo.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@geronimo.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/geronimo-user/</archive>
    </mailingList>
    <mailingList>
      <name>Geronimo Developer List</name>
      <subscribe>dev-subscribe@geronimo.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@geronimo.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/geronimo-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Source Control List</name>
      <subscribe>scm-subscribe@geronimo.apache.org</subscribe>
      <unsubscribe>scm-unsubscribe@geronimo.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/geronimo-scm/</archive>
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <id>adc</id>
      <name>Alan D. Cabrera</name>
      <roles>
        <role>Commiter</role>
        <role>PMC</role>
      </roles>
      <timezone>-8</timezone>
    </developer>
  </developers>
  
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <scm>
    <connection>scm:svn:https://svn.apache.org/repos/asf/geronimo/</connection>
    <developerConnection>scm:svn:https://${maven.username}@svn.apache.org/repos/asf/geronimo/</developerConnection>
    <url>https://svn.apache.org/repos/asf/geronimo/</url>
  </scm>

  <organization>
    <name>Geronimo</name>
    <url>http://geronimo.apache.org/</url>
  </organization>

  <properties>
    <!--
     |
     | Geronimo module versions
     |
     -->
    <geronimoVersion>1.0</geronimoVersion>
    
    <!--
     |
     | Geronimo specification versions
     |
     -->
    <geronimoSpecActivationVersion>1.1-SNAPSHOT</geronimoSpecActivationVersion>
    <geronimoSpecCorbaVersion>1.1-SNAPSHOT</geronimoSpecCorbaVersion>
    <geronimoSpecEjbVersion>1.1-SNAPSHOT</geronimoSpecEjbVersion>
    <geronimoSpecJ2eeVersion>1.1-SNAPSHOT</geronimoSpecJ2eeVersion>
    <geronimoSpecJ2eeConnectorVersion>1.1-SNAPSHOT</geronimoSpecJ2eeConnectorVersion>
    <geronimoSpecJ2eeDeploymentVersion>1.1-SNAPSHOT</geronimoSpecJ2eeDeploymentVersion>
    <geronimoSpecJ2eeJaccVersion>1.1-SNAPSHOT</geronimoSpecJ2eeJaccVersion>
    <geronimoSpecJ2eeManagementVersion>1.1-SNAPSHOT</geronimoSpecJ2eeManagementVersion>
    <geronimoSpecJavamailVersion>1.1-SNAPSHOT</geronimoSpecJavamailVersion>
    <geronimoSpecJaxrVersion>1.1-SNAPSHOT</geronimoSpecJaxrVersion>
    <geronimoSpecJaxrpcVersion>1.1-SNAPSHOT</geronimoSpecJaxrpcVersion>
    <geronimoSpecJmsVersion>1.1-SNAPSHOT</geronimoSpecJmsVersion>
    <geronimoSpecJspVersion>1.1-SNAPSHOT</geronimoSpecJspVersion>
    <geronimoSpecJtaVersion>1.1-SNAPSHOT</geronimoSpecJtaVersion>
    <geronimoSpecQnameVersion>1.1-SNAPSHOT</geronimoSpecQnameVersion>
    <geronimoSpecSaajVersion>1.1-SNAPSHOT</geronimoSpecSaajVersion>
    <geronimoSpecServletVersion>1.1-SNAPSHOT</geronimoSpecServletVersion>
    <!--
     |
     | External dependency versions
     |
     -->
    <activeIoVersion>2.0-r118</activeIoVersion>
    <activeMqVersion>3.2</activeMqVersion>
    <antlrVersion>2.7.2</antlrVersion>
    <apachedsVersion>0.9.2</apachedsVersion>
    <asmVersion>1.4.3</asmVersion>
    <asn1Version>0.3.2</asn1Version>
    <axisVersion>1.3</axisVersion>
    <castorVersion>0.9.5.3</castorVersion>
    <cglibVersion>2.1_3</cglibVersion>
    <commonsBeanutilsVersion>1.6.1</commonsBeanutilsVersion>
    <commonsCliVersion>1.0</commonsCliVersion>
    <commonsCollectionsVersion>3.1</commonsCollectionsVersion>
    <commonsDigesterVersion>1.6</commonsDigesterVersion>
    <commonsDiscoveryVersion>0.2</commonsDiscoveryVersion>
    <commonsElVersion>1.0</commonsElVersion>
    <commonsFileuploadVersion>1.1-dev</commonsFileuploadVersion>
    <commonsHttpclientVersion>2.0.1</commonsHttpclientVersion>
    <commonsIoVersion>1.0</commonsIoVersion>
    <commonsJxpathVersion>1.1</commonsJxpathVersion>
    <commonsLangVersion>2.0</commonsLangVersion>
    <commonsLoggingVersion>1.0.4</commonsLoggingVersion>
    <commonsModelerVersion>1.1</commonsModelerVersion>
    <commonsPoolVersion>1.2</commonsPoolVersion>
    <commonsPrimitivesVersion>20041207.202534</commonsPrimitivesVersion>
    <concurrentVersion>1.3.4</concurrentVersion>
    <derbyVersion>10.1.1.0</derbyVersion>
    <dom4jVersion>1.4</dom4jVersion>
    <dwrVersion>1.0</dwrVersion>
    <eclipseCompilerVersion>3.0.1</eclipseCompilerVersion>
    <geronimoVersion>1.0</geronimoVersion>
    <howlVersion>0.1.11</howlVersion>
    <hsqldbVersion>1.7.2.2</hsqldbVersion>
    <jasperVersion>5.5.15</jasperVersion>
    <javaccVersion>2.1</javaccVersion>
    <jdbmVersion>0.20-dev</jdbmVersion>
    <jdomVersion>1.0</jdomVersion>
    <jettyVersion>5.1.5rc2</jettyVersion>
    <jstlVersion>1.1.1</jstlVersion>
    <juddiVersion>0.9rc4</juddiVersion>
    <junitVersion>3.8.1</junitVersion>
    <kerberosCommonVersion>0.5</kerberosCommonVersion>
    <kerberosProtocolsVersion>0.5</kerberosProtocolsVersion>
    <ldapProtocolsVersion>0.9.2</ldapProtocolsVersion>
    <log4jVersion>1.2.8</log4jVersion>
    <mavenVersion>1.0.2</mavenVersion>
    <minaVersion>0.7.3</minaVersion>
    <mockobjectsVersion>0.09</mockobjectsVersion>
    <mx4jVersion>3.0.1</mx4jVersion>
    <openejbVersion>2.0</openejbVersion>
    <oroVersion>2.0.8</oroVersion>
    <p2psocketsVersion>1.1.2</p2psocketsVersion>
    <plutoVersion>1.0.1</plutoVersion>
    <portletApiVersion>1.0</portletApiVersion>
    <regexpVersion>1.3</regexpVersion>
    <scoutVersion>0.5</scoutVersion>
    <slf4jVersion>1.0-beta7</slf4jVersion>
    <standardTaglibsVersion>1.1.1</standardTaglibsVersion>
    <staxApiVersion>1.0</staxApiVersion>
    <staxVersion>1.1.1-dev</staxVersion>
    <tomcatAjpVersion>5.5.15</tomcatAjpVersion>
    <tomcatVersion>5.5.15</tomcatVersion>
    <tranqlConnectorVersion>1.0</tranqlConnectorVersion>
    <tranqlVendorsVersion>1.0</tranqlVendorsVersion>
    <tranqlVersion>1.2-SNAPSHOT</tranqlVersion>
    <velocityVersion>1.4</velocityVersion>
    <wsdl4jVersion>PATCH-1193602</wsdl4jVersion>
    <xercesVersion>2.6.2</xercesVersion>
    <xfireVersion>20050202</xfireVersion>
    <xmlApisVersion>1.0.b2</xmlApisVersion>
    <xmlbeansVersion>2.0.0</xmlbeansVersion>
    <xmlParserApisVersion>2.2.1</xmlParserApisVersion>
    <xmlpullVersion>1.1.3.4d_b4_min</xmlpullVersion>
    <xmlResolverVersion>1.1</xmlResolverVersion>
    <xpp3Version>1.1.3.3</xpp3Version>
    <xstreamVersion>1.0.2</xstreamVersion>
  </properties> 

  <dependencyManagement>
    <dependencies>
      <!--
       |
       | Geronimo specification versions
       |
       -->          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-activation</artifactId>
        <version>${geronimoSpecActivationVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-ejb</artifactId>
        <version>${geronimoSpecEjbVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-j2ee</artifactId>
        <version>${geronimoSpecJ2eeVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-j2ee-connector</artifactId>
        <version>${geronimoSpecJ2eeConnectorVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-j2ee-deployment</artifactId>
        <version>${geronimoSpecJ2eeDeploymentVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-j2ee-jacc</artifactId>
        <version>${geronimoSpecJ2eeJaccVersion}</version>
      </dependency>                              
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-j2ee-management</artifactId>
        <version>${geronimoSpecJ2eeManagementVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-javamail</artifactId>
        <version>${geronimoSpecJavamailVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-jaxr</artifactId>
        <version>${geronimoSpecJaxrVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-jaxrpc</artifactId>
        <version>${geronimoSpecJaxrpcVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-jsp</artifactId>
        <version>${geronimoSpecJspVersion}</version>
      </dependency>                                          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-jms</artifactId>
        <version>${geronimoSpecJmsVersion}</version>
      </dependency>                                    
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-jta</artifactId>
        <version>${geronimoSpecJtaVersion}</version>
      </dependency>                                          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-qname</artifactId>
        <version>${geronimoSpecQnameVersion}</version>
      </dependency>            
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-saaj</artifactId>
        <version>${geronimoSpecSaajVersion}</version>
      </dependency>                  
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-spec-servlet</artifactId>
        <version>${geronimoSpecServletVersion}</version>
      </dependency>            
      <!--
       |
       | External dependency versions
       |
       -->    
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commonsLoggingVersion}</version>
      </dependency>
      <dependency>
        <groupId>concurrent</groupId>
        <artifactId>concurrent</artifactId>
        <version>${concurrentVersion}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4jVersion}</version>
      </dependency>
      <dependency>
        <groupId>mx4j</groupId>
        <artifactId>mx4j</artifactId>
        <version>${mx4jVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>mockobjects</groupId>
        <artifactId>mockobjects-jdk1.4-j2ee1.3</artifactId>
        <version>${mockobjectsVersion}</version>
      </dependency>                              
      <dependency>
        <groupId>mockobjects</groupId>
        <artifactId>mockobjects-core</artifactId>
        <version>${mockobjectsVersion}</version>
      </dependency>                                    
      <dependency>
        <groupId>scout</groupId>
        <artifactId>scout</artifactId>
        <version>${scoutVersion}</version>
      </dependency>                        
   </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junitVersion}</version>
    </dependency>
  </dependencies>

  <distributionManagement>
    <repository>
      <id>apache-repo</id>
      <name>Apache CVS Repository</name>
      <url>scpexe://cvs.apache.org/www/cvs.apache.org/maven-snapshot-repository</url>
    </repository>
    <snapshotRepository>
      <id>apache-snapshots</id>
      <name>Apache CVS Development Repository</name>
      <url>scpexe://cvs.apache.org/www/cvs.apache.org/maven-snapshot-repository</url>
    </snapshotRepository>
    <site>
      <id>geronimo-website</id>
      <url>scpexe://minotaur.apache.org/www/geronimo.apache.org/maven/</url>
    </site>
  </distributionManagement>

  <build>
    <sourceDirectory>src/java</sourceDirectory>
    <testSourceDirectory>src/test</testSourceDirectory>

    <plugins>
      <plugin>
        <artifactId>maven-one-plugin</artifactId>
        <executions>
          <execution>
            <configuration>
              <remoteRepositoryUrl>scpexe://cvs.apache.org/www/cvs.apache.org/repository</remoteRepositoryUrl>
            </configuration>
            <goals>
              <goal>install-maven-one-repository</goal>
              <goal>deploy-maven-one-repository</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ssh-external</artifactId>
        <version>1.0-alpha-5</version>
      </extension>
    </extensions>
  </build>

  <pluginRepositories>
    <pluginRepository>
      <id>snapshots</id>
      <name>Maven Central Plugins Development Repository</name>
      <url>http://snapshots.maven.codehaus.org/maven2</url>
    </pluginRepository>
  </pluginRepositories>
</project>
