<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.geronimo.specs</groupId>
  <artifactId>specs</artifactId>
  <packaging>pom</packaging>
  <name>Geronimo Specifications</name>
  <version>1.1.2-SNAPSHOT</version>

  <!--
   |
   | Continuum configuration for GBuild
   |
   -->
  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/browse/GERONIMO</url>
  </issueManagement>
  <ciManagement>
    <system>continuum</system>
    <url>http://ci.gbuild.org/continuum</url>
    <notifiers>
      <notifier>
        <configuration>
          <address>scm@geronimo.apache.org</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement> 

  <properties>
    <!--
     |
     | Geronimo module versions
     | 
     | Note: when modules move from SNAPSHOT to an official release, they
     | should be removed from GBuild (assuming they were added to GBuild).
     |
     -->
    <geronimoSpecsVersion>1.1</geronimoSpecsVersion>
    
    <geronimoSpecsActivationVersion>1.1</geronimoSpecsActivationVersion>
    <geronimoSpecsCommonjVersion>1.0</geronimoSpecsCommonjVersion>
    <geronimoSpecsCorbaVersion>1.0</geronimoSpecsCorbaVersion>
    <geronimoSpecsCorba30Version>1.1</geronimoSpecsCorba30Version>
    <geronimoSpecsCorba23Version>1.1</geronimoSpecsCorba23Version>
    <geronimoSpecsEjbVersion>1.0.1</geronimoSpecsEjbVersion>
    <geronimoSpecsJ2eeConnectorVersion>1.0.1</geronimoSpecsJ2eeConnectorVersion>
    <geronimoSpecsJ2eeDeploymentVersion>1.0.1</geronimoSpecsJ2eeDeploymentVersion>
    <geronimoSpecsJ2eeJaccVersion>1.0.1</geronimoSpecsJ2eeJaccVersion>
    <geronimoSpecsJ2eeManagementVersion>1.0.1</geronimoSpecsJ2eeManagementVersion>
    <geronimoSpecsJavamailVersion>1.1</geronimoSpecsJavamailVersion>
    <geronimoSpecsJaxrVersion>1.0.1</geronimoSpecsJaxrVersion>
    <geronimoSpecsJaxrpcVersion>1.0.1</geronimoSpecsJaxrpcVersion>
    <geronimoSpecsJmsVersion>1.0.1</geronimoSpecsJmsVersion>
    <geronimoSpecsJspVersion>1.0.1</geronimoSpecsJspVersion>
    <geronimoSpecsJtaVersion>1.0.1</geronimoSpecsJtaVersion>
    <geronimoSpecsQnameVersion>1.0.1</geronimoSpecsQnameVersion>
    <geronimoSpecsSaajVersion>1.0.1</geronimoSpecsSaajVersion>
    <geronimoSpecsServletVersion>1.0.1</geronimoSpecsServletVersion>
  </properties>

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

  <!--
   |
   | Modules that are final (1.0 or other) should not be built and deployed
   | with the SNAPSHOT versioned modules.
   |
   -->
  <modules>
    <module>geronimo-spec-activation</module>
    <module>geronimo-spec-commonj</module>
    <module>geronimo-spec-corba</module>
    <module>geronimo-spec-corba-3.0</module>
    <module>geronimo-spec-corba-2.3</module>
    <module>geronimo-spec-ejb</module>
    <module>geronimo-spec-j2ee-connector</module>
    <module>geronimo-spec-j2ee-deployment</module>
    <module>geronimo-spec-j2ee-jacc</module>
    <module>geronimo-spec-j2ee-management</module>
    <module>geronimo-spec-j2ee</module>
    <module>geronimo-spec-javamail</module>
    <module>geronimo-spec-jaxr</module>
    <module>geronimo-spec-jaxrpc</module>
    <module>geronimo-spec-jms</module>
    <module>geronimo-spec-jsp</module>
    <module>geronimo-spec-jta</module>
    <module>geronimo-spec-qname</module>
    <module>geronimo-spec-saaj</module>
    <module>geronimo-spec-servlet</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <!--
       |
       | Geronimo specification versions
       |
       -->          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-activation_1.0.2_spec</artifactId>
        <version>${geronimoSpecsActivationVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-commonj_1.1_spec</artifactId>
        <version>${geronimoSpecsCommonjVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-corba_3.0_spec</artifactId>
        <version>${geronimoSpecsCorba30Version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-corba_2.3_spec</artifactId>
        <version>${geronimoSpecsCorba23Version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-ejb_2.1_spec</artifactId>
        <version>${geronimoSpecsEjbVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee_1.4_spec</artifactId>
        <version>${geronimoSpecsVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
        <version>${geronimoSpecsJ2eeConnectorVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-deployment_1.1_spec</artifactId>
        <version>${geronimoSpecsJ2eeDeploymentVersion}</version>
      </dependency>                        
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId>
        <version>${geronimoSpecsJ2eeJaccVersion}</version>
      </dependency>                              
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
        <version>${geronimoSpecsJ2eeManagementVersion}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-javamail_1.3.1_spec</artifactId>
        <version>${geronimoSpecsJavamailVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jaxr_1.0_spec</artifactId>
        <version>${geronimoSpecsJaxrVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jaxrpc_1.1_spec</artifactId>
        <version>${geronimoSpecsJaxrpcVersion}</version>
      </dependency>                                                
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jsp_2.0_spec</artifactId>
        <version>${geronimoSpecsJspVersion}</version>
      </dependency>                                          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jms_1.1_spec</artifactId>
        <version>${geronimoSpecsJmsVersion}</version>
      </dependency>                                    
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
        <version>${geronimoSpecsJtaVersion}</version>
      </dependency>                                          
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-qname_1.1_spec</artifactId>
        <version>${geronimoSpecsQnameVersion}</version>
      </dependency>            
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-saaj_1.1_spec</artifactId>
        <version>${geronimoSpecsSaajVersion}</version>
      </dependency>                  
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-servlet_2.4_spec</artifactId>
        <version>${geronimoSpecsServletVersion}</version>
      </dependency>            

      <dependency>
        <groupId>mx4j</groupId>
        <artifactId>mx4j</artifactId>
        <version>3.0.1</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>scout</groupId>
        <artifactId>scout</artifactId>
        <version>0.5</version>
      </dependency>                        
   </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

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

  <distributionManagement>
    <repository>
      <id>apache-repo</id>
      <name>Apache CVS Repository</name>
      <url>scpexe://cvs.apache.org/www/www.apache.org/dist/java-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>

</project>
