<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--

    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.
-->
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.servicemix</groupId>
    <artifactId>servicemix-pom</artifactId>
    <version>2</version>
  </parent>

  <groupId>org.apache.servicemix</groupId>
  <artifactId>archetypes</artifactId>
  <version>2008.01-SNAPSHOT</version>

  <name>ServiceMix :: Archetypes</name>
  <packaging>pom</packaging>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/servicemix/archetypes/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/servicemix/archetypes/trunk</developerConnection>
    <url>http://svn.apache.org/viewcvs.cgi/servicemix/archetypes/trunk</url>
  </scm>

  <modules>
    <module>servicemix-binding-component</module>
    <module>servicemix-service-engine</module>
    <module>servicemix-service-unit</module>
    <module>servicemix-service-assembly</module>
    <module>servicemix-shared-library</module>
    <module>servicemix-file-poller-service-unit</module>
    <module>servicemix-file-sender-service-unit</module>
    <module>servicemix-ftp-poller-service-unit</module>
    <module>servicemix-ftp-sender-service-unit</module>
    <module>servicemix-http-consumer-service-unit</module>
    <module>servicemix-http-provider-service-unit</module>
    <module>servicemix-jms-consumer-service-unit</module>
    <module>servicemix-jms-provider-service-unit</module>
    <module>servicemix-jsr181-wsdl-first-service-unit</module>
    <module>servicemix-lwcontainer-service-unit</module>
    <module>servicemix-camel-service-unit</module>
    <module>servicemix-eip-service-unit</module>
    <module>servicemix-embedded-simple</module>
    <module>servicemix-ode-service-unit</module>
    <module>servicemix-jsr181-annotated-service-unit</module>
    <module>servicemix-saxon-xquery-service-unit</module>
    <module>servicemix-saxon-xslt-service-unit</module>
    <module>servicemix-bean-service-unit</module>
    <module>servicemix-drools-service-unit</module>
    <module>servicemix-cxf-bc-service-unit</module>
    <module>servicemix-cxf-se-service-unit</module>
    <module>servicemix-cxf-se-wsdl-first-service-unit</module>
    <module>servicemix-osworkflow-service-unit</module>
    <module>servicemix-mail-service-unit</module>
    <module>servicemix-scripting-service-unit</module>
    <module>servicemix-snmp-service-unit</module>
    <module>servicemix-validation-service-unit</module>
    <module>servicemix-quartz-service-unit</module>
    <module>servicemix-archetype-catalog</module>
    <module>servicemix-osgi-camel-archetype</module>
    <module>servicemix-osgi-cxf-code-first-archetype</module>
    <module>servicemix-osgi-cxf-wsdl-first-archetype</module>
    <module>servicemix-project-root</module>
    <module>servicemix-archetypes-itests</module>
  </modules>

  <properties>
    <components-version>2008.01</components-version>
    <servicemix-version>3.2.3</servicemix-version>
    <servicemix-specs-version>1.1.1</servicemix-specs-version>
    <servicemix-utils-version>1.0.0</servicemix-utils-version>
    <xbean-version>3.4</xbean-version>
    <camel-version>1.5.0</camel-version>
    <cxf-version>2.1.3</cxf-version>
    <xfire-version>1.2.5</xfire-version>
    <activemq-version>5.1.0</activemq-version>
	<jaxb.version>2.1</jaxb.version>
	<jaxws.version>2.1</jaxws.version>
	<geronimo.wsmetadata.version>1.1.2</geronimo.wsmetadata.version>
  </properties>

  <repositories>
    <repository>
       <id>servicemix-m2-repo</id>
       <name>Servicemix Maven2 Repository</name>
       <url>http://svn.apache.org/repos/asf/servicemix/m2-repo/</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.servicemix</groupId>
        <artifactId>servicemix-build</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <goals>
              <goal>copy</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <inherited>true</inherited>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>res-maven-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <inputDirectory>${basedir}/src/main/resources</inputDirectory>
          <outputDirectory>${basedir}/target/classes</outputDirectory>
          <filters>
<!-- Don't like these bits.. archetypes should not be tied to specific versions if possible -->
            <components-version>${pom.version}</components-version>
            <jbi-maven-plugin-version>3.2.1</jbi-maven-plugin-version>
            <servicemix-version>${servicemix-version}</servicemix-version>
            <xbean-version>${xbean-version}</xbean-version>
            <camel-version>${camel-version}</camel-version>
            <cxf-version>${cxf-version}</cxf-version>
            <xfire-version>${xfire-version}</xfire-version>
            <activemq-version>${activemq-version}</activemq-version>
			<jaxb.version>${jaxb.version}</jaxb.version>
			<jaxws.version>${jaxws.version}</jaxws.version>
			<geronimo.wsmetadata.version>${geronimo.wsmetadata.version}</geronimo.wsmetadata.version>
            <repositories><![CDATA[
  <repositories>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshots Repository</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>
  <pluginRepositories>
  	<pluginRepository>
      <id>apache.snapshots</id>
      <name>Apache Snapshots Repository</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
  	  <snapshots>
  	    <enabled>true</enabled>
  	  </snapshots>
  	  <releases>
  	    <enabled>false</enabled>
  	  </releases>
  	</pluginRepository>
  </pluginRepositories>
]]></repositories>
          </filters>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.0-beta-7</version>
            <configuration>
              <preparationGoals>clean,verify,install</preparationGoals>
              <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
          </plugin>
          <!-- We want a source jar -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.0.4</version>
            <executions>
              <execution>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- We want the JavaDoc JAR published with the release -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.4</version>
            <inherited>true</inherited>
            <configuration>
              <source>1.5</source>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- We want to sign the artifact, the POM, and all attached artifacts -->
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.0-alpha-4</version>
            <inherited>true</inherited>
            <executions>
              <execution>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <!-- We want to deploy the artifact to a staging location for perusal -->
          <plugin>
            <inherited>true</inherited>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.3</version>
            <configuration>
              <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
