<?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.6-SNAPSHOT</version>
    </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>
      <abdera-bundle-version>0.4.0-incubating_3</abdera-bundle-version>
      <ant-bundle-version>1.7.0_3</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>2.2.3_3</asm-bundle-version>
      <aws-java-sdk-bundle-version>1.1.1_1</aws-java-sdk-bundle-version>
      <bcel-bundle-version>5.2_2</bcel-bundle-version>
      <cglib-version>2.1_3_6</cglib-version>
      <cometd-java-server-bundle-version>1.0.1_1</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>1.4</commons-codec-version>
      <commons-codec-bundle-version>1.3_3</commons-codec-bundle-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-lang-version>2.4</commons-lang-version>
      <commons-net-version>2.0</commons-net-version>
      <commons-management-version>1.0</commons-management-version>
      <commons-pool-bundle-version>1.5.4_1</commons-pool-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_2</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.15_3</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.2</geronimo-ws-metadata-spec-version>
      <gernimo-annotation-spec-version>1.1.1</gernimo-annotation-spec-version>
      <guice-bundle-version>2.0_1</guice-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>
      <jaxb-bundle-version>2.2.1.1_1</jaxb-bundle-version>
      <jasypt-bundle-version>1.6_1</jasypt-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_2</jdom-bundle-version>
      <jettison-bundle-version>1.2</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>
      <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_1</jsmpp-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>2.0.4_2</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>1.1_3</opensaml-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.8.1_1</scala-bundle-version>
      <jaxws.api.version>2.2</jaxws.api.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>2.5.6.SEC01</spring-version>
      <spring3-version>3.0.5.RELEASE</spring3-version>
      <spring-osgi-version>1.2.0</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_1</velocity-bundle-version>
      <xalan-bundle-version>2.7.1_2</xalan-bundle-version>
      <xerces-bundle-version>2.9.1_3</xerces-bundle-version>
      <xmlbeans-bundle-version>2.5.0_1</xmlbeans-bundle-version>
      <xmlschema-version>1.4.5</xmlschema-version>
      <xmlsec-bundle-version>1.4.4_1</xmlsec-bundle-version>
      <xmlresolver-bundle-version>1.2_2</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>4.0.7</woodstox-core-bundle-version>
      <stax2-api-bundle-version>3.0.1</stax2-api-bundle-version>
      <saaj-impl-version>1.3.2_1</saaj-impl-version>
      <wsdl4j-bundle-version>1.6.2_2</wsdl4j-bundle-version>
      <wss4j-version>1.5.8</wss4j-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>
    </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>
		     <artifact>
                       <file>target/classes/features-spring2.xml</file>
                       <type>xml</type>
                       <classifier>features-spring2</classifier>
                     </artifact>
                   </artifacts>
                 </configuration>
               </execution>
           </executions>
         </plugin>
      </plugins>
    </build>

    <profiles>
       <profile>
         <id>spring-2.x</id>      
         <properties>
           <features.file>features-spring2.xml</features.file>
         </properties>     
       </profile>	 
       <profile>
          <id>validate</id>
          <build>
             <plugins>
                <plugin>
                   <groupId>org.apache.karaf.tooling</groupId>
                   <artifactId>features-maven-plugin</artifactId>
		   <version>${features-maven-plugin-version}</version>
		   <configuration>
		     <file>${project.build.directory}/classes/${features.file}</file>
                     <karafConfig>${project.build.directory}/classes/config.properties</karafConfig> 
		   </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-simple</artifactId>
                     <version>1.4.3</version>
	            </dependency>
                 </dependencies>
               </plugin> 
              </plugins>
           </build>
        </profile>
     </profiles>
</project>
