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

    <groupId>org.apache.camel.karaf</groupId>
    <artifactId>apache-camel</artifactId>
    <packaging>pom</packaging>
    <version>2.3.0</version>
    <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>
      <bcel-bundle-version>5.2_2</bcel-bundle-version>
      <dom4j-bundle-version>1.6.1_2</dom4j-bundle-version>
      <dozer-bundle-version>5.2.0_1</dozer-bundle-version>
      <cglib-version>2.1_3_4</cglib-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-bundle-version>1.3_2</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>
      <el-api-1.0-version>1.0.1</el-api-1.0-version>
      <features.file>features.xml</features.file>
      <flatpack-bundle-version>3.1.1_3</flatpack-bundle-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>
      <hamcrest-bundle-version>1.2-dev1_1</hamcrest-bundle-version>
      <hibernate-validator-bundle-version>4.0.2.GA_1</hibernate-validator-bundle-version>
      <ibatis-bundle-version>2.3.4.726_2</ibatis-bundle-version>
      <jackrabbit-version>1.5.3</jackrabbit-version>
      <jaxb-bundle-version>2.1.12_1</jaxb-bundle-version>
      <jetty6-bundle-version>6.1.22_1</jetty6-bundle-version>
      <jexcelapi-bundle-version>2.4.2_2</jexcelapi-bundle-version>
      <hapi-bundle-version>0.5.1_3</hapi-bundle-version>
      <hawtdb-maven-repo-url>http://hawtdb.fusesource.org/repo/snapshot</hawtdb-maven-repo-url>
      <httpcore-bundle-version>4.0-alpha6_1</httpcore-bundle-version>
      <irclib-bundle-version>1.10_2</irclib-bundle-version>
      <isorelax-bundle-version>20050913_1</isorelax-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>
      <jetty-bundle-version>7.0.1.v20091125</jetty-bundle-version>
      <cometd-java-server-bundle-version>1.0.1_1</cometd-java-server-bundle-version>
      <jing-bundle-version>20030619_1</jing-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.42_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.0_2</jsmpp-bundle-version>
      <lucene-bundle-version>3.0.1_1</lucene-bundle-version>
      <mvel-bundle-version>2.0.8_3</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>
      <oscache-bundle-version>2.4_3</oscache-bundle-version>
      <protobuf-java-bundle-version>2.2.0_1</protobuf-java-bundle-version>
      <pax.web.version>0.7.2</pax.web.version>
      <quartz-bundle-version>1.6.6_1</quartz-bundle-version>
      <qpid-bundle-version>0.5.0_2</qpid-bundle-version>
      <saxon-bundle-version>9.1.0.1_3</saxon-bundle-version>
      <servicemix-specs-version>1.5.0</servicemix-specs-version>
      <jaxws.api.version>2.1</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.2.RELEASE</spring3-version>
      <spring-osgi-version>1.2.0</spring-osgi-version>
      <spring-castor-bundle-version>1.2.0</spring-castor-bundle-version>
      <stringtemplate-bundle-version>3.2_3</stringtemplate-bundle-version>
      <tagsoup-bundle-version>1.2_3</tagsoup-bundle-version>
      <velocity-bundle-version>1.6.2_3</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.4.0_3</xmlbeans-bundle-version>
      <xmlschema-version>1.4.5</xmlschema-version>
      <xmlsec-bundle-version>1.4.3_2</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>
      <wsdl4j-bundle-version>1.6.2_2</wsdl4j-bundle-version>
    </properties>
    
    <repositories>
      <!-- ServiceMix repo (for org.osgi:org.osgi.impl.bundle.jmx) -->
      <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>   
    </repositories>
    
    <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>1.4</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-spring3.xml</file>
                       <type>xml</type>
                       <classifier>features-spring3</classifier>
                     </artifact>
                   </artifacts>
                 </configuration>
               </execution>
           </executions>
         </plugin>
      </plugins>
    </build>

    <profiles>
       <profile>
         <id>spring3</id>      
         <properties>
           <features.file>features-spring3.xml</features.file>
         </properties>     
       </profile>	 
       <profile>
          <id>validate</id>
          <build>
             <plugins>
                <plugin>
                   <groupId>org.apache.felix.karaf.tooling</groupId>
                   <artifactId>features-maven-plugin</artifactId>
		   <version>${karaf-version}</version>
		   <configuration>
		     <file>${project.build.directory}/classes/${features.file}</file>
		   </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>
