<?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>4</version>
  </parent>

  <groupId>org.apache.servicemix.features</groupId>
  <artifactId>features</artifactId>
  <packaging>pom</packaging>
  <version>4.2.0</version>
  <name>Apache ServiceMix Features</name>
  <inceptionYear>2005</inceptionYear>

  <modules>
    <module>deps</module>
    <module>branding</module>
    <module>activemq</module>
    <module>camel</module>
    <module>war</module>
    <module>cxf</module>
    <module>examples</module>
    <module>assembly</module>
  </modules>

  <scm>
      <connection>scm:svn:http://svn.apache.org/repos/asf/servicemix/smx4/features/tags/features-4.2.0</connection>
      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/servicemix/smx4/features/tags/features-4.2.0</developerConnection>
      <url>http://svn.apache.org/viewvc/servicemix/smx4/features/tags/features-4.2.0</url>
  </scm>
  <issueManagement>
      <system>jira</system>
      <url>http://issues.apache.org/activemq/browse/SMX4</url>
  </issueManagement>

  <prerequisites>
      <maven>2.0.7</maven>
  </prerequisites>

  <properties>
      <maven.assembly.version>2.2-beta-4</maven.assembly.version>
      <xfire.maven.plugin>4.1</xfire.maven.plugin>
      <abdera.version>0.4.0-incubating_3</abdera.version>
      <activemq.version>5.3.0</activemq.version>
      <acegi.version>1.0.0</acegi.version>
      <ant.version>1.7.0_3</ant.version>
      <antlr2.version>2.7.7_2</antlr2.version>
      <antlr.version>3.0.1_1</antlr.version>
      <antlr-runtime.version>3.0.1_1</antlr-runtime.version>
      <aopalliance.version>1.0_3</aopalliance.version>
      <asm.version>2.2.3_3</asm.version>
      <bcel.version>5.2_2</bcel.version>
      <bnd.version>0.0.384</bnd.version>
      <cglib.version>2.1_3_4</cglib.version>
      <camel.version>2.2.0</camel.version>
      <commons-management.version>1.0</commons-management.version>
      <commons-beanutils.version>1.7.0_3</commons-beanutils.version>
      <commons-collections.version>3.2.1</commons-collections.version>
      <commons-csv.version>1.0-r706899_1</commons-csv.version>
      <commons-httpclient.version>3.1_4</commons-httpclient.version>
      <commons-io.version>1.3.2_3</commons-io.version>
      <commons-codec.version>1.3_2</commons-codec.version>
      <commons-jxpath.version>1.2_3</commons-jxpath.version>
      <commons-logging.version>1.1.1</commons-logging.version>
      <commons-net.version>1.4.1_3</commons-net.version>
      <commons-pool.version>1.5.4_1</commons-pool.version>
      <commons-pool.activemq.version>1.4_1</commons-pool.activemq.version>
      <commons-dbcp.version>1.3</commons-dbcp.version>
      <commons-vfs.version>1.0_3</commons-vfs.version>
      <commons-jexl.version>1.1_3</commons-jexl.version>
      <commons-lang-version>2.4</commons-lang-version>
      <axiom.version>1.2.8</axiom.version>
      <cxf.version>2.2.6</cxf.version>
      <dom4j.version>1.6.1_2</dom4j.version>
      <drools.version>4.0.7_4</drools.version>
      <depends.maven.plugin.version>1.2</depends.maven.plugin.version>
      <equinox.version>3.5.1.v20090827</equinox.version>
      <fastinfoset.version>1.2.7_2</fastinfoset.version>
      <features.maven.plugin.version>1.1</features.maven.plugin.version>
      <felix.bundlerepository.version>1.2.0</felix.bundlerepository.version>
      <felix.compendium.version>1.4.0</felix.compendium.version>
      <felix.configadmin.version>1.2.4</felix.configadmin.version>
      <felix.core.version>1.4.0</felix.core.version>
      <felix.fileinstall.version>2.0.8</felix.fileinstall.version>
      <felix.framework.version>2.0.4</felix.framework.version>
      <felix.karaf.version>1.4.0</felix.karaf.version>
      <felix.osgi.version>1.4.0</felix.osgi.version>
      <felix.plugin.version>2.0.1</felix.plugin.version>
      <felix.prefs.version>1.0.2</felix.prefs.version>
      <flatpack.version>3.1.1_3</flatpack.version>
      <geronimo.annotation.version>1.1.1</geronimo.annotation.version>
      <geronimo.ejb3.version>1.0.1</geronimo.ejb3.version>
      <geronimo.el.version>1.0.1</geronimo.el.version>
      <geronimo.interceptor.version>1.0.1</geronimo.interceptor.version>
      <geronimo.jacc.version>1.0.1</geronimo.jacc.version>
      <geronimo.jaxrpc.version>2.0.0</geronimo.jaxrpc.version>
      <geronimo.j2ee.connector.version>2.0.0</geronimo.j2ee.connector.version>
      <geronimo.j2ee.management.version>1.0.1</geronimo.j2ee.management.version>
      <geronimo.jms.version>1.1.1</geronimo.jms.version>
      <geronimo.jta.version>1.1.1</geronimo.jta.version>
      <geronimo.jpa.version>1.1.1</geronimo.jpa.version>
      <geronimo.saaj.version>1.0.0</geronimo.saaj.version>
      <geronimo.servlet.version>1.1.2</geronimo.servlet.version>
      <geronimo.stax.version>1.0.1</geronimo.stax.version>
      <geronimo.wsmetadata.version>1.1.2</geronimo.wsmetadata.version>
      <geronimo.transaction.version>2.1.3</geronimo.transaction.version>
      <geronimo.connector.version>2.1.3</geronimo.connector.version>
      <geronimo.javamail.provider.version>1.8-r755222_1</geronimo.javamail.provider.version>
      <groovy.version>1.5.6_3</groovy.version>
      <howl.version>1.0.1-1_1</howl.version>
      <httpcore.version>4.0-alpha6_1</httpcore.version>
      <hamcrest.version>1.2-dev1_2</hamcrest.version>
      <ibatis.version>2.3.4.726_2</ibatis.version>
      <irclib.version>1.10_2</irclib.version>
      <isorelax.version>20050913_2</isorelax.version>
      <jackrabbit.version>1.5.3</jackrabbit.version>
      <jasper.version>6.0.14_2</jasper.version>
      <jaxb.api.version>2.1</jaxb.api.version>
      <jaxb.impl.version>2.1.12_1</jaxb.impl.version>
      <jaxws.api.version>2.1</jaxws.api.version>
      <jaxrs.api.version>1.0</jaxrs.api.version>
      <javax.mail.version>1.4.3</javax.mail.version>
      <jcr-api.version>1.0_2</jcr-api.version>
      <jdt.core.version>3.2.3_2</jdt.core.version>
      <jdom.version>1.1_2</jdom.version>
      <jencks.version>2.2</jencks.version>
      <jetty.version>6.1.22</jetty.version>
      <jetty.bundle.version>6.1.22_1</jetty.bundle.version>
      <jexcelapi.version>2.4.2_2</jexcelapi.version>
      <jettison.version>1.2</jettison.version>
      <jing.version>20030619_2</jing.version>
      <jline.version>0.9.94</jline.version>
      <jruby.version>1.1.2_2</jruby.version>
      <joda-time.version>1.5.2_2</joda-time.version>
      <josql.version>1.5_3</josql.version>
      <jsch.version>0.1.31_3</jsch.version>
      <jsmpp.version>2.0_2</jsmpp.version>
      <juel.version>2.1.0_2</juel.version>
      <junit.version>4.7</junit.version>
      <junit.bundle.version>4.7_1</junit.bundle.version>
      <log4j.version>1.2.14</log4j.version>
      <mvel.version>1.3.12_1</mvel.version>
      <mina.version>2.0.0-M6</mina.version>
      <mina.original.version>1.1.6</mina.original.version>
      <neethi.version>2.0.4_2</neethi.version>
      <ognl.version>2.7.3_3</ognl.version>
      <easymock.version>2.4</easymock.version>
      <oscache.version>2.4_3</oscache.version>
      <oscore.version>2.2.4_3</oscore.version>
      <osworkflow.version>2.7.0_3</osworkflow.version>
      <oro.version>2.0.8_3</oro.version>
      <openejb.version>3.0-beta-2</openejb.version>
      <openjpa.bundle.version>1.2.1_2</openjpa.bundle.version>
      <pax.exam.version>1.1.0</pax.exam.version>
      <pax.runner.version>1.2.1</pax.runner.version>
      <pax.logging.version>1.4</pax.logging.version>
      <pax.url.version>1.1.2</pax.url.version>
      <pax.web.version>0.7.2</pax.web.version>
      <propertyset.version>1.3_3</propertyset.version>
      <qpid.version>1.0-incubating-M2.1_1</qpid.version>
      <quartz.version>1.6.1_3</quartz.version>
      <rhino.version>1.7R1_1</rhino.version>
      <saaj.impl.version>1.3.2_1</saaj.impl.version>
      <saxon.version>9.1.0.1_3</saxon.version>
      <scriptengines.version>1.1</scriptengines.version>
      <servicemix3.version>3.3</servicemix3.version>
      <servicemix-utils.version>1.2.1</servicemix-utils.version>
      <servicemix.legal.version>1.0</servicemix.legal.version>
      <servicemix.nmr.version>1.2.0</servicemix.nmr.version>
      <servicemix.specs.version>1.4.0</servicemix.specs.version>

      <servicemix-shared-version>2010.01</servicemix-shared-version>
      <servicemix-quartz-version>2010.01</servicemix-quartz-version>
      <servicemix-jms-version>2010.01</servicemix-jms-version>
      <servicemix-jsr181-version>2010.01</servicemix-jsr181-version>
      <servicemix-http-version>2010.01</servicemix-http-version>
      <servicemix-mail-version>2010.01</servicemix-mail-version>
      <servicemix-osworkflow-version>2010.01</servicemix-osworkflow-version>
      <servicemix-wsn2005-version>2010.01</servicemix-wsn2005-version>
      <servicemix-bean-version>2010.01</servicemix-bean-version>
      <servicemix-eip-version>2010.01</servicemix-eip-version>
      <servicemix-script-version>2010.01</servicemix-script-version>
      <servicemix-scripting-version>2010.01</servicemix-scripting-version>
      <servicemix-validation-version>2010.01</servicemix-validation-version>
      <servicemix-ftp-version>2010.01</servicemix-ftp-version>
      <servicemix-xmpp-version>2010.01</servicemix-xmpp-version>
      <servicemix-saxon-version>2010.01</servicemix-saxon-version>
      <servicemix-truezip-version>2010.01</servicemix-truezip-version>
      <servicemix-camel-version>2010.01</servicemix-camel-version>
      <servicemix-cxf-bc-version>2010.01</servicemix-cxf-bc-version>
      <servicemix-cxf-se-version>2010.01</servicemix-cxf-se-version>
      <servicemix-drools-version>2010.01</servicemix-drools-version>
      <servicemix-file-version>2010.01</servicemix-file-version>
      <servicemix-snmp-version>2010.01</servicemix-snmp-version>
      <servicemix-smpp-version>2010.01</servicemix-smpp-version>
      <servicemix-vfs-version>2010.01</servicemix-vfs-version>
      <servicemix-exec-version>2010.01</servicemix-exec-version>
      <servicemix-jbi-plugin-version>4.3</servicemix-jbi-plugin-version>

      <smack.version>3.0.4_2</smack.version>
      <snmp4j.version>1.8.1_3</snmp4j.version>
      <spring.version>2.5.6.SEC01</spring.version>
      <spring.integration.version>1.0.0.RC2</spring.integration.version>
      <spring.osgi.version>1.2.0</spring.osgi.version>
      <stringtemplate.version>3.2_3</stringtemplate.version>
      <velocity.version>1.6.2_3</velocity.version>
      <wsdl4j.version>1.6.2_2</wsdl4j.version>
      <woodstox.version>4.0.7</woodstox.version>
      <woodstox.stax2api.version>3.0.1</woodstox.stax2api.version>
      <xstream.version>1.2.2</xstream.version>
      <xstream.bundle.version>1.3_3</xstream.bundle.version>
      <xbean.version>3.5</xbean.version>
      <xmlbeans.version>2.4.0_3</xmlbeans.version>
      <xmlschema.version>1.4.5</xmlschema.version>
      <xmlsec.version>1.4.3_2</xmlsec.version>
      <opensaml.version>1.1_4</opensaml.version>
      <xalan.version>2.7.1_2</xalan.version>
      <xerces.version>2.9.1_3</xerces.version>
      <xmlresolver.version>1.2_2</xmlresolver.version>
      <xpp3.version>1.1.4c_3</xpp3.version>
      <werken-xpath.version>0.9.4_3</werken-xpath.version>
      <wss4j.version>1.5.8</wss4j.version>
      <jaxp.ri.version>1.4.2_3</jaxp.ri.version>
      <geronimo.blueprint.version>1.0.0</geronimo.blueprint.version>
      <felix.gogo.version>0.2.2</felix.gogo.version>
      <osgi.jmx.version>4.2.0.200907080519</osgi.jmx.version>
      <sshd.version>0.3.0</sshd.version>      
      <sonar.skippedModules>examples</sonar.skippedModules>
  </properties>

  <repositories>
      <!--This is a hack to short circuit the jencks 2.1 problem with servicemix.org repo
          It can probably be deleted if we update to jencks 2.2 in ServiceMix 3.3.x -->
      <repository>
        <id>servicemix-repo</id>
        <name>ServiceMix Repository</name>
        <url>http://svn.apache.org/repos/asf/servicemix/m2-repo/</url>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>
      <!-- Default repository -->
      <repository>
          <id>central</id>
          <name>Default maven repo</name>
          <url>http://repo1.maven.org/maven2</url>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
      </repository>
       <!-- ServiceMix repo -->
       <repository>
           <id>servicemix</id>
           <name>Apache ServiceMix Repository</name>
           <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
       </repository>
       <!-- ASF M2 snapshot repo -->
       <repository>
          <id>apache-snapshots</id>
          <name>Apache m2 Snapshots Repository</name>
          <url>http://repository.apache.org/content/groups/snapshots-group</url>
          <releases>
              <enabled>false</enabled>
          </releases>
          <snapshots>
              <enabled>true</enabled>
          </snapshots>
       </repository>
       <!-- OPS4j repository -->
       <repository>
           <id>ops4j</id>
           <name>OPS4j repo</name>
           <url>http://repository.ops4j.org/maven2</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
       </repository>
       <!-- Java.net repo -->
       <repository>
          <id>java.net</id>
          <url>http://download.java.net/maven/1/</url>
          <layout>legacy</layout>
          <releases>
              <enabled>true</enabled>
          </releases>
          <snapshots>
              <enabled>false</enabled>
          </snapshots>
        </repository>
       <repository>
            <id>java.net.2</id>
            <name>Java Net 2 Repository</name>
            <url>http://download.java.net/maven/2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
       <!--jboss repo for drools lib-->
       <repository>
            <id>jboss</id>
            <name>Jboss Repository</name>
            <url>http://repository.jboss.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
       </repository>
       <!-- Spring milestones repository -->
       <!-- TODO: remove this repo when spring-dm 1.2.0 is out -->
       <repository>
           <id>spring-milestone</id>
           <name>Spring Portfolio Milestone Repository</name>
           <url>http://s3.amazonaws.com/maven.springframework.org/milestone</url>
           <releases>
               <enabled>true</enabled>
           </releases>
           <snapshots>
               <enabled>false</enabled>
           </snapshots>
       </repository>
   </repositories>

  <pluginRepositories>
      <!-- ServiceMix repo -->
      <pluginRepository>
          <id>servicemix</id>
          <name>Apache ServiceMix Repository</name>
          <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
      </pluginRepository>
      <!-- Snapshot repo -->
      <pluginRepository>
          <id>snapshots</id>
          <name>Snapshots Repository</name>
          <url>http://repository.apache.org/content/groups/snapshots-group</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
      </pluginRepository>
  </pluginRepositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
          <groupId>org.apache.servicemix</groupId>
          <artifactId>servicemix-utils</artifactId>
          <version>${servicemix-utils.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.compendium</artifactId>
          <version>${felix.compendium.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>org.osgi.foundation</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>javax.servlet</artifactId>
            </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.core</artifactId>
          <version>${felix.osgi.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.osgi</groupId>
          <artifactId>spring-osgi-extender</artifactId>
          <version>${spring.osgi.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.osgi</groupId>
          <artifactId>spring-osgi-core</artifactId>
          <version>${spring.osgi.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework.osgi</groupId>
          <artifactId>spring-osgi-io</artifactId>
          <version>${spring.osgi.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.mina</groupId>
          <artifactId>mina-core</artifactId>
          <version>${mina.original.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.mina</groupId>
          <artifactId>mina-filter-ssl</artifactId>
          <version>${mina.original.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.servicemix.bundles</groupId>
          <artifactId>org.apache.servicemix.bundles.mvel</artifactId>
          <version>${mvel.version}</version>
      </dependency>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${junit.version}</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>${log4j.version}</version>
      </dependency>
      <dependency>
          <groupId>jline</groupId>
          <artifactId>jline</artifactId>
          <version>${jline.version}</version>
      </dependency>
      <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>${commons-logging.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-jms_1.1_spec</artifactId>
          <version>${geronimo.jms.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-jta_1.1_spec</artifactId>
          <version>${geronimo.jta.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-servlet_1.5_spec</artifactId>
          <version>${geronimo.servlet.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
          <version>${geronimo.j2ee.connector.version}</version>
      </dependency>
      <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jaxws_2.1_spec</artifactId>
                <version>1.0</version>
      </dependency>
      <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
          <version>${geronimo.j2ee.management.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.activemq</groupId>
          <artifactId>activemq-core</artifactId>
          <version>${activemq.version}</version>
          <exclusions>
              <exclusion>
                  <groupId>org.apache.activemq</groupId>
                  <artifactId>activeio-core</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>org.apache.geronimo.specs</groupId>
                  <artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>javax.xml</groupId>
                  <artifactId>jaxb-api</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.apache.cxf</groupId>
          <artifactId>cxf-bundle</artifactId>
          <version>${cxf.version}</version>
          <exclusions>
              <exclusion>
                  <groupId>bouncycastle</groupId>
                  <artifactId>bcprov-jdk14</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>net.java.dev.stax-utils</groupId>
                  <artifactId>stax-utils</artifactId>
              </exclusion>
              <exclusion>
                      <groupId>org.codehaus.jra</groupId>
                      <artifactId>jra</artifactId>
              </exclusion>
              <exclusion>
                      <groupId>xml-apis</groupId>
                      <artifactId>xml-apis</artifactId>
              </exclusion>
              <exclusion>
                      <groupId>jaxen</groupId>
                      <artifactId>jaxen</artifactId>
              </exclusion>
              <exclusion>
                      <groupId>opensaml</groupId>
                      <artifactId>opensaml</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.jencks</groupId>
          <artifactId>jencks</artifactId>
          <version>${jencks.version}</version>
      </dependency>
      <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty</artifactId>
          <version>${jetty.version}</version>
          <exclusions>
              <exclusion>
                  <groupId>org.mortbay.jetty</groupId>
                  <artifactId>servlet-api-2.5</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-client</artifactId>
          <version>${jetty.version}</version>
      </dependency>
      <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-sslengine</artifactId>
          <version>${jetty.version}</version>
      </dependency>
      <dependency>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>jetty-util</artifactId>
          <version>${jetty.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.xbean</groupId>
          <artifactId>xbean-spring</artifactId>
          <version>${xbean.version}</version>
      </dependency>
      <dependency>
          <groupId>org.easymock</groupId>
          <artifactId>easymock</artifactId>
          <version>${easymock.version}</version>
      </dependency>
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam</artifactId>
          <version>${pax.exam.version}</version>
      </dependency>
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam-junit</artifactId>
          <version>${pax.exam.version}</version>
      </dependency>
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam-container-default</artifactId>
          <version>${pax.exam.version}</version>
      </dependency>
      <dependency>
          <groupId>org.ops4j.pax.exam</groupId>
          <artifactId>pax-exam-junit-extender-impl</artifactId>
          <version>${pax.exam.version}</version>
      </dependency>
      <dependency>
          <groupId>org.ops4j.pax.runner</groupId>
          <artifactId>pax-runner-no-jcl</artifactId>
          <version>${pax.runner.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
      <defaultGoal>install</defaultGoal>

      <pluginManagement>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-release-plugin</artifactId>
                  <configuration>
                      <preparationGoals>clean install</preparationGoals>
                      <goals>deploy</goals>
                      <arguments>-Prelease,deploy</arguments>
                      <autoVersionSubmodules>true</autoVersionSubmodules>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.servicemix.tooling</groupId>
                  <artifactId>jbi-maven-plugin</artifactId>
                  <version>${servicemix-jbi-plugin-version}</version>
                  <extensions>true</extensions>
              </plugin>
              <plugin>
                  <groupId>org.apache.felix</groupId>
                  <artifactId>maven-bundle-plugin</artifactId>
                  <version>${felix.plugin.version}</version>
                  <extensions>true</extensions>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>2.0.2</version>
                  <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
                      <maxmem>256M</maxmem>
                      <fork>${compiler.fork}</fork>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-idea-plugin</artifactId>
                  <version>2.1</version>
                  <configuration>
                      <downloadSources>true</downloadSources>
                      <downloadJavadocs>true</downloadJavadocs>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.3.1</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.3.1</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-assembly-plugin</artifactId>
                  <version>${maven.assembly.version}</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <version>1.2</version>
                  <dependencies>
                      <dependency>
                          <groupId>ant-contrib</groupId>
                          <artifactId>ant-contrib</artifactId>
                          <version>1.0b3</version>
                      </dependency>
                      <dependency>
                          <groupId>ant</groupId>
                          <artifactId>ant-optional</artifactId>
                          <version>1.5.3-1</version>
                      </dependency>
                  </dependencies>
              </plugin>
          </plugins>
      </pluginManagement>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-dependency-plugin</artifactId>
              <executions>
                  <execution>
                      <id>copy-legal</id>
                      <phase>generate-resources</phase>
                      <goals>
                          <goal>copy</goal>
                      </goals>
                      <configuration>
                          <artifactItems>
                              <artifactItem>
                                  <groupId>org.apache.servicemix.legal</groupId>
                                  <artifactId>legal</artifactId>
                                  <version>${servicemix.legal.version}</version>
                                  <type>xml</type>
                                  <outputDirectory>target/legal/</outputDirectory>
                              </artifactItem>
                          </artifactItems>
                          <stripVersion>true</stripVersion>
                      </configuration>
                  </execution>
	          </executions>
	      </plugin>
          <plugin>
              <artifactId>maven-remote-resources-plugin</artifactId>
              <version>1.1</version>
              <executions>
                  <execution>
                      <goals>
                          <goal>process</goal>
                      </goals>
                      <configuration>
                          <resourceBundles>
                              <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                          </resourceBundles>
                          <supplementalModels>
                              <supplementalModel>target/legal/legal.xml</supplementalModel>
                          </supplementalModels>
                          <properties>
                              <addLicense>true</addLicense>
                              <addArtifact>true</addArtifact>
                              <projectName>Apache ServiceMix</projectName>
                          </properties>
                      </configuration>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </build>

  <reporting>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>2.3</version>
          </plugin>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <version>2.0</version>
          </plugin>
      </plugins>
  </reporting>

  <profiles>
      <profile>
          <id>fastinstall</id>
          <properties>
              <maven.test.skip>true</maven.test.skip>
          </properties>
      </profile>
      <profile>
          <id>rat</id>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.apache.rat</groupId>
                      <artifactId>apache-rat-plugin</artifactId>
                      <version>0.6</version>
                      <executions>
                          <execution>
                              <phase>verify</phase>
                              <goals>
                                  <goal>check</goal>
                              </goals>
                          </execution>
                      </executions>
                      <configuration>
                          <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
                          <excludeSubProjects>false</excludeSubProjects>
                          <excludes>
                              <exclude>**/target/**/*</exclude>
                              <!-- IDEA files -->
                              <exclude>**/*.iml</exclude>
                              <exclude>**/*.ipr</exclude>
                              <exclude>**/*.iws</exclude>
                              <!-- Eclipse files -->
                              <exclude>**/.*</exclude>
                              <exclude>**/eclipse-classes/**/*</exclude>
                              <exclude>**/dependency-reduced-pom.xml</exclude>
                              <exclude>assembly/src/main/distribution/text/licenses/**</exclude>
                              <exclude>cxf/cxf-transport-nmr/src/main/build-resources/wsdl.*</exclude>
                          </excludes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>release</id>
          <build>
              <plugins>
                  <!-- We want to deploy the artifact to a staging location for perusal -->
                  <plugin>
                      <inherited>true</inherited>
                      <artifactId>maven-deploy-plugin</artifactId>
                      <version>2.3</version>
                      <configuration>
                          <updateReleaseInfo>true</updateReleaseInfo>
                      </configuration>
                  </plugin>
                  <!-- We want to sign the artifact, the POM, and all attached artifacts -->
                  <plugin>
                      <artifactId>maven-gpg-plugin</artifactId>
                      <version>1.0-alpha-4</version>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>sign</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>setup.eclipse</id>
          <modules>
              <module>assembly</module>
          </modules>
          <properties>
              <eclipse.workspace.dir>${basedir}/../workspace</eclipse.workspace.dir>
          </properties>
          <build>
              <defaultGoal>eclipse:eclipse</defaultGoal>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-eclipse-plugin</artifactId>
                      <inherited>false</inherited>
                      <executions>
                          <execution>
                              <id>setup.eclipse.workspace</id>
                              <phase>process-test-sources</phase>
                              <goals>
                                  <goal>add-maven-repo</goal>
                              </goals>
                              <configuration>
                                  <workspace>${eclipse.workspace.dir}</workspace>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>deploy</id>
          <build>
              <defaultGoal>deploy</defaultGoal>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-source-plugin</artifactId>
                      <version>2.0.4</version>
                      <executions>
                          <execution>
                              <id>attach-sources</id>
                              <goals>
                                  <goal>jar</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-javadoc-plugin</artifactId>
                      <executions>
                          <execution>
                              <id>attach-javadocs</id>
                              <goals>
                                  <goal>jar</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>ibmjdk</id>
          <activation>
              <property>
                  <name>java.vendor</name>
                  <value>IBM Corporation</value>
              </property>
          </activation>
          <build>
              <plugins>
                  <!--
                      Need to add a xerces dependency to cxf-codegen-plugin
                      when using the ibm jdk to work around error:
                      org.apache.xerces.impl.dv.DVFactoryException:
                      DTD factory class
                      org.apache.xerces.impl.dv.dtd.DTDDVFactoryImpl
                      does not extend from DTDDVFactory.
                      Can remove this when we upgrade to a cxf.version which
                      includes this in the cxf-codegen-plugin pom.
                  -->
                  <plugin>
                      <groupId>org.apache.cxf</groupId>
                      <artifactId>cxf-codegen-plugin</artifactId>
                      <version>${cxf.version}</version>
                      <dependencies>
                          <dependency>
                              <groupId>xerces</groupId>
                              <artifactId>xercesImpl</artifactId>
                              <version>2.8.1</version>
                          </dependency>
                      </dependencies>
                  </plugin>
              </plugins>
          </build>
      </profile>
  </profiles>

</project>
