<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
--><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">
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>10</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.camel</groupId>
  <artifactId>camel</artifactId>
  <version>2.10.7</version>
  <packaging>pom</packaging>
  <name>Camel</name>
  <description>Camel build POM</description>
  <url>http://camel.apache.org</url>
  <inceptionYear>2007</inceptionYear>

  <prerequisites>
    <maven>3.0.2</maven>
  </prerequisites>

  <properties>
    <!-- unify the encoding for all the modules -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <site-repo-url>scpexe://people.apache.org/www/camel.apache.org/maven/</site-repo-url>
    <jdk.version>1.6</jdk.version>
    <compiler.fork>1.6</compiler.fork>

    <!-- eclipse plugin need the jaxb in this pom.xml file -->
    <jaxb-version>2.1.13</jaxb-version>

    <maven-bundle-version>2.3.7</maven-bundle-version>
    <openjpa-version>2.2.2</openjpa-version>
  </properties>

  <mailingLists>
    <mailingList>
      <name>Development List</name>
      <subscribe>dev-subscribe@camel.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@camel.apache.org</unsubscribe>
      <post>dev@camel.apache.org</post>
    </mailingList>
    <mailingList>
      <name>User List</name>
      <subscribe>users-subscribe@camel.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@camel.apache.org</unsubscribe>
      <post>users@camel.apache.org</post>
    </mailingList>
    <mailingList>
      <name>Commits List</name>
      <subscribe>commits-subscribe@camel.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@camel.apache.org</unsubscribe>
      <post>commits@camel.apache.org</post>
    </mailingList>
  </mailingLists>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.apache.org/jira/browse/CAMEL</url>
  </issueManagement>

  <distributionManagement>
    <site>
      <id>apache.website</id>
      <url>${site-repo-url}</url>
    </site>
  </distributionManagement>

  <!-- Comment out the snapshot repositories as we don't need them now -->
  <repositories>
        <repository>
              <id>apache.snapshots</id>
              <url>http://repository.apache.org/snapshots/</url>
              <name>Apache Snapshot Repo</name>
             <snapshots>
                 <enabled>true</enabled>
             </snapshots>
             <releases>
                 <enabled>false</enabled>
             </releases>
         </repository>
  </repositories>
  <pluginRepositories>
         <pluginRepository>
             <id>apache.snapshots</id>
             <url>http://repository.apache.org/snapshots/</url>
             <snapshots>
                 <enabled>true</enabled>
             </snapshots>
             <releases>
                 <enabled>false</enabled>
             </releases>
         </pluginRepository>
  </pluginRepositories>
  <modules>
    <module>buildingtools</module>
    <module>parent</module>
    <module>camel-core</module>
    <module>components</module>
    <module>platforms</module>
    <module>tooling</module>
    <module>tests</module>
    <module>examples</module>
  </modules>

  <scm>
    <connection>scm:git:http://git-wip-us.apache.org/repos/asf/camel.git</connection>
    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/camel.git</developerConnection>
    <url>https://fisheye6.atlassian.com/browse/~br=camel-2.10.x/camel-git</url>
    <tag>camel-2.10.7</tag>
  </scm>

  <build>
    <defaultGoal>install</defaultGoal>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.5</version>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.5.1</version>
          <configuration>
            <source>1.6</source>
            <target>1.6</target>
            <maxmem>256M</maxmem>
            <fork>${compiler.fork}</fork>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <version>0.8</version>
        </plugin>
   
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.9</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-buildtools</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>false</downloadJavadocs>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-idea-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>false</downloadJavadocs>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>2.9.1</version>
          <configuration>
            <attach>true</attach>
            <source>1.6</source>
            <quiet>true</quiet>
            <bottom>Apache CAMEL</bottom>
            <detectOfflineLinks>false</detectOfflineLinks>
            <javadocVersion>1.6</javadocVersion>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <!-- see http://jira.codehaus.org/browse/MRELEASE-812 -->
          <version>2.4.1</version>
          <configuration>
	        <localCheckout>true</localCheckout>
            <pushChanges>true</pushChanges>
            <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
            <useReleaseProfile>false</useReleaseProfile>
            <preparationGoals>clean install</preparationGoals>
            <goals>deploy</goals>
            <arguments>-Papache-release,enable-schemagen,sourcecheck,validate,hibernate-derby</arguments>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>1.6</version>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.1</version>
          <configuration>
            <webResources>
              <!--
                HACK: Include legal files explicitly, otherwise they will end up in the wrong path or in another jar file in the war. NOTE: targetPath is broken
                for webResources (as documented)
              -->
              <resource>
                <directory>${project.build.outputDirectory}</directory>
                <includes>
                  <include>META-INF/LICENSE*</include>
                  <include>META-INF/NOTICE*</include>
                  <include>META-INF/DEPENDENCIES*</include>
                </includes>
              </resource>
            </webResources>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.4</version>
          <configuration>
            <check>
              <branchRate>85</branchRate>
              <lineRate>85</lineRate>
              <haltOnFailure>false</haltOnFailure>
              <totalBranchRate>85</totalBranchRate>
              <totalLineRate>85</totalLineRate>
              <packageLineRate>85</packageLineRate>
              <packageBranchRate>85</packageBranchRate>
              <regexes>
                <regex>
                  <pattern>org.apache.camel.impl.*</pattern>
                  <branchRate>90</branchRate>
                  <lineRate>80</lineRate>
                </regex>
                <regex>
                  <pattern>org.apache.camel.builder.*</pattern>
                  <branchRate>40</branchRate>
                  <lineRate>30</lineRate>
                </regex>
              </regexes>
            </check>
          </configuration>
        </plugin>
  
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.6</version>
          <dependencies>
              <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb-version}</version>
              </dependency>
              <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-xjc</artifactId>
                <version>${jaxb-version}</version>
              </dependency>
              <dependency>
                  <groupId>ant-contrib</groupId>
                  <artifactId>ant-contrib</artifactId>
                  <version>1.0b3</version>
                  <exclusions>
                      <exclusion>
                          <groupId>ant</groupId>
                          <artifactId>ant</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>
              <dependency>
                  <groupId>org.apache.ant</groupId>
                  <artifactId>ant-trax</artifactId>
                  <version>1.8.0</version>
              </dependency>
              <dependency>
                  <groupId>org.apache.ant</groupId>
                  <artifactId>ant-nodeps</artifactId>
                  <version>1.8.1</version>
              </dependency>
              <dependency>
                <groupId>org.apache.openjpa</groupId>
                <artifactId>openjpa-persistence-jdbc</artifactId>
                <version>${openjpa-version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                </exclusions>
              </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
	      <version>2.4.3</version>
	      <configuration>
                   <encoding>UTF-8</encoding>
              </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>2.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>2.5</version>
          <configuration>
            <filesets>
              <fileset>
                <!-- just delete the activemq-data directory -->
                <directory>activemq-data</directory>
                <followSymlinks>false</followSymlinks>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.3.1</version>
        </plugin>
        <plugin>
	      <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>1.3</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${maven-bundle-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>2.6</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>2.1.2</version>
          <configuration>
	         <archive>
               <manifestEntries>
                 <Bundle-SymbolicName>${project.groupId}.${project.artifactId}.source</Bundle-SymbolicName>
                 <Bundle-Version>${camel.osgi.version.clean}</Bundle-Version>
                 <Eclipse-SourceBundle>${project.groupId}.${project.artifactId};version="${camel.osgi.version.clean}"</Eclipse-SourceBundle>
               </manifestEntries>
             </archive>
          </configuration>
          <!--dependencies>
            <dependency>
              <groupId>org.apache.camel</groupId>
              <artifactId>camel-buildtools</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies-->
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>2.5</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>properties-maven-plugin</artifactId>
          <version>1.0-alpha-2</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>axistools-maven-plugin</artifactId>
          <version>1.3</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.1.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>ianal-maven-plugin</artifactId>
          <version>1.0-alpha-1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>taglist-maven-plugin</artifactId>
          <version>2.4</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>2.3.1</version>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
	    <artifactId>maven-bundle-plugin</artifactId>
	    <version>${maven-bundle-version}</version>
	    <extensions>true</extensions>
	    <configuration>
          <excludeDependencies>${camel.osgi.exclude.dependencies}</excludeDependencies>
	      <instructions>
	        <Bundle-Name>${project.artifactId}</Bundle-Name>
	        <Bundle-SymbolicName>${camel.osgi.symbolic.name}</Bundle-SymbolicName>
            <Bundle-Activator>${camel.osgi.activator}</Bundle-Activator>
	        <Export-Package>${camel.osgi.export}</Export-Package>
	        <Import-Package>${camel.osgi.import}</Import-Package>
	        <DynamicImport-Package>${camel.osgi.dynamic}</DynamicImport-Package>
	        <Private-Package>${camel.osgi.private.pkg}</Private-Package>
	        <Implementation-Title>Apache Camel</Implementation-Title>
	        <Implementation-Version>${project.version}</Implementation-Version>
            <Karaf-Info>Camel;${project.artifactId}=${project.version}</Karaf-Info>
            <_versionpolicy>${camel.osgi.import.default.version}</_versionpolicy>
            <_failok>${camel.osgi.failok}</_failok>
          </instructions>
	    </configuration>
        <executions>
            <execution>
                <id>versions</id>
                <phase>validate</phase>
                <goals>
                    <goal>cleanVersions</goal>
                </goals>
                <configuration>
                    <versions>
                        <camel.osgi.version.clean>${project.version}</camel.osgi.version.clean>
                    </versions>
                </configuration>
            </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <!--forkMode>pertest</forkMode-->
          <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
          <childDelegation>false</childDelegation>
          <useFile>true</useFile>
          <failIfNoTests>false</failIfNoTests>
          <runOrder>alphabetical</runOrder>
          <systemPropertyVariables>
              <java.awt.headless>${java.awt.headless}</java.awt.headless>
          </systemPropertyVariables>
          <includes>
             <include>**/*Test.java</include>             
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>ianal-maven-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>verify-legal-files</goal>
            </goals>
            <configuration>
              <strict>true</strict>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludeSubProjects>false</excludeSubProjects>
          <excludes>
            <exclude>**/README</exclude>
            <exclude>**/README.txt</exclude>
            <exclude>**/resources/**/*.xsd</exclude>
            <exclude>**/webapp/js/**/*</exclude>
            <exclude>**/test/resources/**/*</exclude>
            <exclude>**/test/data*/**/*</exclude>
            <exclude>.gitignore</exclude>
            <exclude>.git/**/*</exclude>
            <!-- tooling/camel-manual/src/styles/print.css use a different license -->
            <exclude>**/src/styles/print.css</exclude>
            <!-- cxf does not handle comments here -->
            <excludes>**/src/main/resources/META-INF/cxf/cxf.extension</excludes>
            <excludes>**/src/main/resources/META-INF/cxf/bus-extensions.txt</excludes>
            <!-- generated files -->
            <exclude>**/target/**/*</exclude>
            <exclude>**/eclipse-classes/**/*</exclude>
            <exclude>**/.*</exclude>
            <exclude>**/.settings/**/*</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>.idea/**/*</exclude>
            <exclude>**/avro/**/*.avpr</exclude>
            <exclude>**/OSGI-INF/bundle.info</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.5</version>
      </plugin>

      <!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
      </plugin>
      -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <version>2.4</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9.1</version>
        <configuration>
          <links>
            <link>http://download.oracle.com/javase/6/docs/api/</link>
            <link>http://download.oracle.com/javaee/6/api/</link>
            <link>http://static.springsource.org/spring/docs/3.0.5.RELEASE/api/</link>
          </links>
          <stylesheetfile>${basedir}/../../etc/css/stylesheet.css</stylesheetfile>
          <linksource>true</linksource>
          <maxmemory>500m</maxmemory>
          <source>1.6</source>

          <!-- TODO we can't aggregate as it won't find the CSS file :( -->
          <!--<aggregate>true</aggregate>-->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.3.1</version>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>assembly</id>
      <activation>
        <property>
          <name>!noassembly</name>
        </property>
      </activation>
      <modules>
        <module>apache-camel</module>
      </modules>
    </profile>
    <profile>
      <id>setup.eclipse</id>
      <!--
        set up the eclipse workspace and generate the .classpath and .project files for modules
      -->
      <properties>
        <eclipse.workspace.dir>${basedir}/../workspace</eclipse.workspace.dir>
      </properties>
      <build>
        <defaultGoal>process-test-sources</defaultGoal>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
                <maxmem>512M</maxmem>
                <fork>${compiler.fork}</fork>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <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>
                  <workspaceCodeStylesURL>file:etc/eclipse/CamelCodeFormatter.xml</workspaceCodeStylesURL>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <inherited>false</inherited>
            <dependencies>
              <dependency>
                <groupId>org.apache.camel</groupId>
                <artifactId>camel-buildtools</artifactId>
                <version>${project.version}</version>
              </dependency>
            </dependencies>
            <executions>
              <execution>
                <id>setup.workspace</id>
                <phase>validate</phase>
                <configuration>
                  <target>
                    <path id="ecp.ws.path" location="${eclipse.workspace.dir}" />
                    <property name="full.eclipse.workspace" refid="ecp.ws.path" />
                    <path path="${basedir}/etc" id="etc.path" />

                    <whichresource resource="/camel-eclipse-pmd" property="pmd.url" />
                    <whichresource resource="/camel-pmd-ruleset.xml" property="pmdruleset.url" />
                    <whichresource resource="/camel-eclipse-checkstyle" property="eclipse.checkstyle.url" />
                    <whichresource resource="/camel-checkstyle.xml" property="checkstyle.url" />

                    <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings" />
                    <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core" />
                    <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/net.sourceforge.pmd.eclipse" />

                    <get src="${checkstyle.url}" dest="${full.eclipse.workspace}/camel-checkstyle.xml" />

                    <!-- Add checkstyle config -->
                    <copy file="${basedir}/etc/eclipse/template.checkstyle-config.xml" tofile="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core/checkstyle-config.xml" overwrite="no">
                      <filterset>
                        <filter token="CHECKSTYLE_CONFIG_FILE" value="${full.eclipse.workspace}/camel-checkstyle.xml" />
                        <filter token="APACHE_HEADER_FILE" value="${full.eclipse.workspace}/apache-header.txt" />
                      </filterset>
                    </copy>

                    <xslt style="${basedir}/etc/eclipse/addcheckstyle.xsl" in="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core/checkstyle-config.xml" out="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core/checkstyle-config.xml.new">
                      <param name="checkstyleconfig" expression="${full.eclipse.workspace}/camel-checkstyle.xml" />
                    </xslt>
                    <copy file="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core/checkstyle-config.xml.new" tofile="${full.eclipse.workspace}/.metadata/.plugins/net.sf.eclipsecs.core/checkstyle-config.xml" overwrite="yes" />


                    <!-- Add code format rules -->
                    <concat destfile="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs" append="true" fixlastline="true">
                      <filelist dir="${basedir}/etc/eclipse" files="org.eclipse.jdt.core.prefs" />
                    </concat>
                    <loadfile property="eclipse.code.format" srcFile="${basedir}/etc/eclipse/CamelCodeFormatter.xml" />
                    <loadfile property="eclipse.code.templates" srcFile="${basedir}/etc/eclipse/codetemplates.xml" />
                    <loadfile property="eclipse.camel.java.code.templates" srcFile="${basedir}/etc/eclipse/camel_java_templates.xml" />
                    <loadfile property="eclipse.camel.xml.code.templates" srcFile="${basedir}/etc/eclipse/camel_xml_templates.xml" />  
                    <propertyfile file="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs">
                      <entry key="formatter_profile" value="Camel Java Conventions" />
                      <entry key="org.eclipse.jdt.ui.formatterprofiles" value="${eclipse.code.format}" />
                      <entry key="org.eclipse.jdt.ui.text.custom_code_templates" value="${eclipse.code.templates}" />
                      
                      <!-- Add Camel templates for Java DSL -->
                      <entry key="org.eclipse.jdt.ui.text.custom_templates" value="${eclipse.camel.java.code.templates}" />

                      <!-- Add import order -->
                      <entry key="org.eclipse.jdt.ui.importorder" value="java;javax;org.w3c;org.xml;w3c;" />
                      <!-- Sort order -->
                      <entry key="org.eclipse.jdt.ui.visibility.order" value="B,R,D,V," />
                      <entry key="outlinesortoption" value="T,SF,F,SI,I,C,SM,M," />
                      <entry key="org.eclipse.jdt.ui.enable.visibility.order" value="true" />
                    </propertyfile>
                    <propertyfile file="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.xml.ui.prefs">
                      <entry key="eclipse.preferences.version" value="1" />
                       <!-- Add Camel templates for Spring DSL -->
                      <entry key="org.eclipse.wst.sse.ui.custom_templates" value="${eclipse.camel.xml.code.templates}" /> 
                    </propertyfile>
                  </target>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
     <profile>
      <!-- When not on the Mac, we need to add tools.jar to the antrun plugin for schemagen to work -->
      <id>not-mac</id>
      <activation>
        <os>
          <family>!mac</family>
        </os>
      </activation>
      <build>
          <pluginManagement>
              <plugins>
                  <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>1.6</version>
                    <dependencies>
                        <dependency>
                          <groupId>com.sun.xml.bind</groupId>
                          <artifactId>jaxb-impl</artifactId>
                          <version>${jaxb-version}</version>
                        </dependency>
                        <dependency>
                          <groupId>com.sun.xml.bind</groupId>
                          <artifactId>jaxb-xjc</artifactId>
                          <version>${jaxb-version}</version>
                        </dependency>
                        <dependency>
                            <groupId>ant-contrib</groupId>
                            <artifactId>ant-contrib</artifactId>
                            <version>1.0b3</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>ant</groupId>
                                    <artifactId>ant</artifactId>
                                </exclusion>
                            </exclusions>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-trax</artifactId>
                            <version>1.8.0</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.ant</groupId>
                            <artifactId>ant-nodeps</artifactId>
                            <version>1.8.1</version>
                        </dependency>
                        <dependency>
                          <groupId>org.apache.openjpa</groupId>
                          <artifactId>openjpa-persistence-jdbc</artifactId>
                          <version>${openjpa-version}</version>
                          <exclusions>
                              <exclusion>
                                  <groupId>ant</groupId>
                                  <artifactId>ant</artifactId>
                              </exclusion>
                          </exclusions>
                        </dependency>
                        <dependency>
                          <groupId>com.sun</groupId>
                          <artifactId>tools</artifactId>
                          <version>1.5.0</version>
                          <scope>system</scope>
                          <systemPath>${java.home}/../lib/tools.jar</systemPath>
                        </dependency>
                    </dependencies>
                  </plugin>
              </plugins>
          </pluginManagement>
      </build>
    </profile>

    <profile>
      <id>integration</id>
      <!--The profile for running the unit and integration test-->
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <forkedProcessTimeoutInSeconds>300</forkedProcessTimeoutInSeconds>
              <childDelegation>false</childDelegation>
              <useFile>true</useFile>
              <includes>
                <include>**/*Test.*</include>
                <include>**/*Integration.*</include>
              </includes>
            </configuration>
          </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>
            <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>
            <version>2.9.1</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>source-jar</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
	
    <profile>
        <id>apache-release</id>
        <activation>
          <property>
            <name>apache-release</name>
          </property>
        </activation>
        <build>
          <plugins>
            <!-- waiting for release -->
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-assembly-plugin</artifactId>
              <executions>
                <execution>
                  <goals>
                    <goal>single</goal>
                  </goals>
                  <phase>package</phase>
                  <configuration>
                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                    <descriptorRefs>
                      <descriptorRef>source-release</descriptorRef>
                    </descriptorRefs>
                  </configuration>
                </execution>
              </executions>
              <dependencies>
                <dependency>
                  <!-- apache version not yet released -->
                  <!--<groupId>org.apache</groupId>-->
                  <groupId>org.apache.geronimo.genesis</groupId>
                  <artifactId>apache-source-release-assembly-descriptor</artifactId>
                  <!-- apache version not yet known -->
                  <version>2.0</version>
                </dependency>
              </dependencies>
            </plugin>
          </plugins>
        </build>
    </profile>
  </profiles>
</project>
