<?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.camel</groupId>
        <artifactId>karaf</artifactId>
        <version>2.8.2</version>
        <relativePath>..</relativePath>
    </parent>

    <groupId>org.apache.camel.karaf</groupId>
    <artifactId>apache-camel</artifactId>
    <packaging>pom</packaging>
    <name>Camel :: Platforms :: Apache Karaf :: Features</name>

    <!-- some of the bundles is located at: http://repo1.maven.org/maven2/org/apache/servicemix/bundles/ -->
    <properties>
      <ant-bundle-version>1.7.0_4</ant-bundle-version>
      <antlr-bundle-version>2.7.7_2</antlr-bundle-version>
      <aopalliance-bundle-version>1.0_3</aopalliance-bundle-version>
      <asm-bundle-version>3.3_2</asm-bundle-version>
      <aws-java-sdk-bundle-version>1.1.1_1</aws-java-sdk-bundle-version>
      <bcel-bundle-version>5.2_3</bcel-bundle-version>
      <cglib-version>2.1_3_6</cglib-version>
      <cometd-java-server-bundle-version>2.3.1_1-SNAPSHOT</cometd-java-server-bundle-version>
      <commons-beanutils-bundle-version>1.7.0_3</commons-beanutils-bundle-version>
      <commons-csv-version>1.0-r706899_3</commons-csv-version>
      <commons-codec-version>${commons-code}</commons-codec-version>
      <commons-codec-bundle-version>1.3_3</commons-codec-bundle-version>
      <commons-configuration-version>1.6</commons-configuration-version>
      <commons-daemon-version>1.0.5</commons-daemon-version>
      <commons-digester-version>2.1</commons-digester-version>
      <commons-httpclient-bundle-version>3.1_4</commons-httpclient-bundle-version>
      <commons-io-bundle-version>1.3.2_3</commons-io-bundle-version>
      <commons-jxpath-version>1.3</commons-jxpath-version>
      <commons-net-version>2.2</commons-net-version>
      <commons-management-version>1.0</commons-management-version>
      <commons-math-version>2.2</commons-math-version>
      <commons-pool-bundle-version>1.5.4_1</commons-pool-bundle-version>
      <commons-dbcp-bundle-version>1.4_1</commons-dbcp-bundle-version>
      <dom4j-bundle-version>1.6.1_2</dom4j-bundle-version>
      <dozer-bundle-version>5.3.1</dozer-bundle-version>
      <el-api-1.0-version>1.0.1</el-api-1.0-version>
      <fastinfoset-version>1.2.7_3</fastinfoset-version>
      <features.file>features.xml</features.file>
      <flatpack-bundle-version>3.2.0_1</flatpack-bundle-version>
      <felix.configadmin.version>1.2.4</felix.configadmin.version>
      <felix.framework.version>2.0.5</felix.framework.version>
      <freemarker-bundle-version>2.3.18_1</freemarker-bundle-version>
      <geronimo-el-version>1.0.1</geronimo-el-version>
      <geronimo-jsp-version>1.0.1</geronimo-jsp-version>
      <geronimo-ws-metadata-spec-version>1.1.3</geronimo-ws-metadata-spec-version>
      <gernimo-annotation-spec-version>1.1.1</gernimo-annotation-spec-version>
      <gernimo-jaxws22-spec-version>1.1</gernimo-jaxws22-spec-version>
      <guice-bundle-version>2.0_1</guice-bundle-version>
      <hadoop-bundle-version>0.20.203.0_1</hadoop-bundle-version>
      <hamcrest-bundle-version>1.2-dev1_1</hamcrest-bundle-version>
      <hapi-bundle-version>0.5.1_3</hapi-bundle-version>
      <hibernate-validator-bundle-version>4.1.0.Final_1</hibernate-validator-bundle-version>
      <httpcore-bundle-version>4.0-alpha6_1</httpcore-bundle-version>
      <ibatis-bundle-version>2.3.4.726_2</ibatis-bundle-version>
      <irclib-bundle-version>1.10_2</irclib-bundle-version>
      <isorelax-bundle-version>20050913_1</isorelax-bundle-version>
      <jackrabbit-version>1.5.3</jackrabbit-version>
      <java-apns-bundle-version>0.1.6_1</java-apns-bundle-version>
      <jaxb-bundle-version>2.2.1.1_1</jaxb-bundle-version>
      <jasypt-bundle-version>1.7_3</jasypt-bundle-version>
      <jetty-bundle-version>6.1.26_3</jetty-bundle-version>
      <jexcelapi-bundle-version>2.4.2_2</jexcelapi-bundle-version>
      <javax.el-bundle-version>2.1.0</javax.el-bundle-version>
      <jcr-bundle-version>1.0_2</jcr-bundle-version>
      <jdom-bundle-version>1.1_3</jdom-bundle-version>
      <jettison-bundle-version>1.3</jettison-bundle-version>
      <jing-bundle-version>20030619_1</jing-bundle-version>
      <jibx-bundle-version>1.2.2_1</jibx-bundle-version>
      <jodatime-bundle-version>1.5.2_2</jodatime-bundle-version>
      <josql-bundle-version>1.5_3</josql-bundle-version>
      <jruby-bundle-version>1.5.6_1</jruby-bundle-version>
      <jsch-bundle-version>0.1.44_1</jsch-bundle-version>
      <jsendnsca-bundle-version>1.3.1_1</jsendnsca-bundle-version>
      <jsp-api-2.1-version>1.0.1</jsp-api-2.1-version>
      <juel-bundle-version>2.1.2_1</juel-bundle-version>
      <junit-bundle-version>4.7_1</junit-bundle-version>
      <jsmpp-bundle-version>2.1.0_3</jsmpp-bundle-version>
      <kxml2-bundle-version>2.3.0_1</kxml2-bundle-version>
      <lucene-bundle-version>3.0.3_1</lucene-bundle-version>
      <mvel-bundle-version>2.0.8_4</mvel-bundle-version>
      <mina-bundle-version>1.1.7_3</mina-bundle-version>
      <neethi-bundle-version>3.0.0</neethi-bundle-version>
      <oro-bundle-version>2.0.8_3</oro-bundle-version>
      <openjpa-bundle-version>1.2.1_2</openjpa-bundle-version>
      <opensaml-version>2.4.1_1</opensaml-version>
      <joda-time-version>1.6.2</joda-time-version>
      <oscache-bundle-version>2.4_3</oscache-bundle-version>
      <osgi.compendium.version>4.2.0</osgi.compendium.version>
      <protobuf-java-bundle-version>2.3.0_1</protobuf-java-bundle-version>
      <pax.web.version>0.7.2</pax.web.version>
      <quartz-bundle-version>1.8.3_2</quartz-bundle-version>
      <qpid-bundle-version>0.5.0_2</qpid-bundle-version>
      <quickfix-bundle-version>1.5.0_1</quickfix-bundle-version>
      <regexp-bundle-version>1.3_1</regexp-bundle-version>      
      <rome-bundle-version>1.0_1</rome-bundle-version>
      <saxon-bundle-version>9.1.0.8_1</saxon-bundle-version>
      <scala-bundle-version>2.9.1_1</scala-bundle-version>
      <servlet-api-2.5-version>1.1.2</servlet-api-2.5-version>
      <serp-bundle-version>1.13.1_2</serp-bundle-version>
      <smack-bundle-version>3.1.0_1</smack-bundle-version>      
      <spring-version>3.0.5.RELEASE</spring-version>
      <spring-osgi-version>1.2.1</spring-osgi-version>
      <spring-castor-bundle-version>1.2.0</spring-castor-bundle-version>
      <spymemcached-bundle-version>2.5_1</spymemcached-bundle-version>
      <stringtemplate-bundle-version>3.2_3</stringtemplate-bundle-version>
      <tagsoup-bundle-version>1.2_3</tagsoup-bundle-version>
      <velocity-bundle-version>1.7_2</velocity-bundle-version>
      <xalan-bundle-version>2.7.1_3</xalan-bundle-version>
      <xerces-bundle-version>2.9.1_4</xerces-bundle-version>
      <xmlbeans-bundle-version>2.5.0_1</xmlbeans-bundle-version>
      <xmlschema-version>2.0</xmlschema-version>
      <xmlsec-bundle-version>1.4.5_1</xmlsec-bundle-version>
      <xmlresolver-bundle-version>1.2_3</xmlresolver-bundle-version>
      <xpp3-bundle-version>1.1.4c_3</xpp3-bundle-version>
      <xstream-bundle-version>1.3_3</xstream-bundle-version>
      <werken-xpath-bundle-version>0.9.4_3</werken-xpath-bundle-version>
      <woodstox-core-bundle-version>${woodstox-version}</woodstox-core-bundle-version>
      <stax2-api-bundle-version>3.1.1</stax2-api-bundle-version>
      <saaj-impl-version>1.3.2_2</saaj-impl-version>
      <wsdl4j-bundle-version>1.6.2_3</wsdl4j-bundle-version>
      <wss4j-version>1.6.1</wss4j-version>
      <rhino.bundle.version>1.7R1_3</rhino.bundle.version>
      <scriptengines.version>1.1</scriptengines.version>
      <asm2.bundle.version>2.2.3_4</asm2.bundle.version>
    </properties>
    
    <!-- The validate plugin will export these provided dependencies bundles' export packages first -->  
    <dependencies>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>4.2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.ops4j.pax.logging</groupId>
            <artifactId>pax-logging-api</artifactId>
            <version>${pax-logging-version}</version>
            <scope>provided</scope>
        </dependency>        
        <dependency>
            <groupId>org.ops4j.pax.logging</groupId>
            <artifactId>pax-logging-service</artifactId>
            <version>${pax-logging-version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.framework</artifactId>
            <version>${felix.framework.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.configadmin</artifactId>
            <version>${felix.configadmin.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.aries.blueprint</groupId>
            <artifactId>org.apache.aries.blueprint</artifactId>
            <version>${aries-blueprint-version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.karaf.shell</groupId>
            <artifactId>org.apache.karaf.shell.console</artifactId>
            <version>${karaf-version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
      <resources>
        <resource>
          <directory>src/main/resources</directory>
          <filtering>true</filtering>
        </resource>
      </resources>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <executions>
             <execution>
                <id>filter</id>
                <phase>generate-resources</phase>
                <goals>
                  <goal>resources</goal>
                </goals>
             </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-artifacts</id>
                <phase>package</phase>
                <goals>
                  <goal>attach-artifact</goal>
                </goals>
                <configuration>
                  <artifacts>
                    <artifact>
                      <file>target/classes/features.xml</file>
                       <type>xml</type>
                       <classifier>features</classifier>
                     </artifact>
                   </artifacts>
                 </configuration>
               </execution>
           </executions>
         </plugin>
      </plugins>
    </build>
 
    <profiles>
       <profile>
          <id>snapshot</id>
          <repositories>
            <repository>
              <id>pax.snapshot.repo</id>
              <name>PAX SNAPSHOT Deploy Repository </name>
              <url>https://oss.sonatype.org/content/repositories/ops4j-snapshots/</url>
              <releases>
                <enabled>false</enabled>
              </releases>
              <snapshots>
                <enabled>true</enabled>
              </snapshots>
            </repository>
          </repositories>
       </profile>
       <profile>
          <id>validate</id>
          <build>
             <plugins>
                <plugin>
                   <groupId>org.apache.karaf.tooling</groupId>
                   <artifactId>features-maven-plugin</artifactId>
                   <version>${karaf-version}</version>
                   <configuration>
                       <file>${project.build.directory}/classes/${features.file}</file>
                       <karafConfig>${project.build.directory}/classes/config.properties</karafConfig>
                       <jreVersion>jre-1.6</jreVersion>
                   </configuration>
                   <executions>
                     <execution>
                       <id>validate</id>
                       <phase>process-resources</phase>
                       <goals>
                         <goal>validate</goal>
                       </goals>
                     </execution>
                   </executions>
                   <dependencies>
                    <dependency>
                     <groupId>org.slf4j</groupId>
                     <artifactId>slf4j-jdk14</artifactId>
                     <version>${slf4j-version}</version>
                    </dependency>
                 </dependencies>
               </plugin>
              </plugins>
           </build>
        </profile>
     </profiles>

</project>
