<?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.0</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.0</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:svn:https://svn.apache.org/repos/asf/camel/tags/camel-2.10.0</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/camel/tags/camel-2.10.0</developerConnection>
    <url>http://svn.apache.org/viewvc/camel/tags/camel-2.10.0</url>
  </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</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.7</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.7</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>
          <version>2.2.1</version>
          <configuration>
            <tagBase>https://svn.apache.org/repos/asf/camel/tags</tagBase>
            <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.4.1</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>
          </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.7</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>rat</id>
      <!-- The profile for Apache Release Audit Tool http://incubator.apache.org/rat/ -->
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>rat-maven-plugin</artifactId>
            <version>1.0-alpha-3</version>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
              <excludes>
                <exclude>**/target/**/*</exclude>

                <!-- left around after creating the site -->
                <exclude>**/cobertura.ser</exclude>

                <!-- left around after some unit tests -->
                <exclude>**/derby.log</exclude>
                <exclude>**/camel-ftp/res/**/*</exclude>

                <!-- IDEA files -->
                <exclude>**/*.iml</exclude>
                <exclude>**/*.ipr</exclude>
                <exclude>**/*.iws</exclude>

                <!-- Eclipse files -->
                <exclude>**/.*</exclude>
                <exclude>**/eclipse-classes/**/*</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <!--
            TODO this barfs

            <reporting>
              <plugins>
                <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>rat-maven-plugin</artifactId>
                  <version>1.0-alpha-3</version>
                </plugin>
              </plugins>
            </reporting>
      -->
      <repositories>
        <repository>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots />
          <id>Codehaus Snapshots</id>
          <url>http://snapshots.repository.codehaus.org/</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots />
          <id>Codehaus Snapshots</id>
          <url>http://snapshots.repository.codehaus.org/</url>
        </pluginRepository>
      </pluginRepositories>
    </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>
            <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>
