<?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">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-parent</artifactId>
    <version>2.19.2</version>
    <relativePath>../parent</relativePath>
  </parent>

  <artifactId>camel-core</artifactId>
  <packaging>jar</packaging>
  <name>Camel :: Core</name>
  <description>The Core Camel Java DSL based router</description>

  <properties>
    <camel.osgi.export.pkg>
      !org.apache.camel.tools.*,
      org.apache.camel.*;-noimport:=true
    </camel.osgi.export.pkg>
    <camel.osgi.import>
      org.apache.camel.tools.*;resolution:=optional,
      !org.apache.camel.*,
      !com.github.benmanes.caffeine.cache,
      ${camel.osgi.import.defaults},
      org.springframework.transaction;resolution:=optional,
      org.apache.camel.spring.spi;resolution:=optional,
      org.apache.xalan.xsltc.trax;resolution:=optional,
      javax.activation;resolution:=optional,
      javax.xml.bind;resolution:=optional,
      javax.xml.bind.annotation;resolution:=optional,
      javax.xml.bind.annotation.adapters;resolution:=optional,
      javax.xml.stream;resolution:=optional,
      javax.xml.transform.stax;resolution:=optional,
      net.sf.saxon.event;resolution:=optional,
      net.sf.saxon.serialize;resolution:=optional,
      *
    </camel.osgi.import>
    <camel.osgi.export.service>
      org.apache.camel.spi.ComponentResolver;component=bean,
      org.apache.camel.spi.ComponentResolver;component=binding,
      org.apache.camel.spi.ComponentResolver;component=browse,
      org.apache.camel.spi.ComponentResolver;component=class,
      org.apache.camel.spi.ComponentResolver;component=controlbus,
      org.apache.camel.spi.ComponentResolver;component=dataformat,
      org.apache.camel.spi.ComponentResolver;component=dataset,
      org.apache.camel.spi.ComponentResolver;component=direct,
      org.apache.camel.spi.ComponentResolver;component=direct-vm,
      org.apache.camel.spi.ComponentResolver;component=file,
      org.apache.camel.spi.ComponentResolver;component=language,
      org.apache.camel.spi.ComponentResolver;component=log,
      org.apache.camel.spi.ComponentResolver;component=mock,
      org.apache.camel.spi.ComponentResolver;component=properties,
      org.apache.camel.spi.ComponentResolver;component=ref,
      org.apache.camel.spi.ComponentResolver;component=rest,
      org.apache.camel.spi.ComponentResolver;component=rest-api,
      org.apache.camel.spi.ComponentResolver;component=scheduler,
      org.apache.camel.spi.ComponentResolver;component=seda,
      org.apache.camel.spi.ComponentResolver;component=stub,
      org.apache.camel.spi.ComponentResolver;component=test,
      org.apache.camel.spi.ComponentResolver;component=timer,
      org.apache.camel.spi.ComponentResolver;component=validator,
      org.apache.camel.spi.ComponentResolver;component=vm,
      org.apache.camel.spi.ComponentResolver;component=xslt,
      org.apache.camel.spi.DataFormatResolver;dataformat=gzip,
      org.apache.camel.spi.DataFormatResolver;dataformat=serialization,
      org.apache.camel.spi.DataFormatResolver;dataformat=string,
      org.apache.camel.spi.DataFormatResolver;dataformat=zip,
      org.apache.camel.spi.LanguageResolver;language=bean,
      org.apache.camel.spi.LanguageResolver;language=constant,
      org.apache.camel.spi.LanguageResolver;language=exchangeProperty,
      org.apache.camel.spi.LanguageResolver;language=file,
      org.apache.camel.spi.LanguageResolver;language=header,
      org.apache.camel.spi.LanguageResolver;language=ref,
      org.apache.camel.spi.LanguageResolver;language=simple,
      org.apache.camel.spi.LanguageResolver;language=tokenize,
      org.apache.camel.spi.LanguageResolver;language=xpath,
      org.apache.camel.spi.LanguageResolver;language=xtokenize
    </camel.osgi.export.service>
    <camel.osgi.dynamic>
      org.apache.camel.spring.util;${camel.osgi.import.strict.version},
      org.apache.camel.spring.pollingconsumer;${camel.osgi.import.strict.version},
      org.apache.camel.processor.interceptor.jpa;${camel.osgi.import.strict.version},
      org.apache.camel.pollconsumer.quartz2;${camel.osgi.import.strict.version},
      net.sf.saxon
    </camel.osgi.dynamic>
    <camel.osgi.provide.capability>
      osgi.extender; osgi.extender="org.apache.camel"; uses:="org.apache.camel.impl.osgi";
      version:Version="$(version;==;${camel.osgi.version.clean})"
    </camel.osgi.provide.capability>
    <camel.osgi.activator>
      org.apache.camel.impl.osgi.Activator
    </camel.osgi.activator>
    <!-- do not skip any tests by default -->
    <platform.skip.tests />
  </properties>

  <dependencies>

    <!-- required dependencies by camel-core -->
    <!-- it will be shade into camel-core by bnd plugin -->
    <dependency>
      <groupId>org.apache.camel</groupId>
      <artifactId>spi-annotations</artifactId>
      <version>${project.version}</version>
      <optional>true</optional>
    </dependency>

    <!-- required dependencies by camel-core -->
    <!-- which we shade into camel-core so its available for everybody out of the box -->
    <dependency>
      <groupId>com.github.ben-manes.caffeine</groupId>
      <artifactId>caffeine</artifactId>
    </dependency>

    <!-- required dependencies by camel-core -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>

    <!-- osgi support -->
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>

    <!-- testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>java-hamcrest</artifactId>
      <version>${hamcrest-version}</version>
      <scope>test</scope>
    </dependency>

    <!-- logging -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.easymock</groupId>
      <artifactId>easymock</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- for json tests -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <scope>test</scope>
    </dependency>

    <!-- validator -->
    <dependency>
      <groupId>xml-resolver</groupId>
      <artifactId>xml-resolver</artifactId>
      <version>${xml-resolver-version}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>


  <build>
    <pluginManagement>
      <plugins>
        <!-- Eclipse m2e Lifecycle Management -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>${lifecycle-mapping-version}</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.camel</groupId>
                    <artifactId>camel-package-maven-plugin</artifactId>
                    <versionRange>${project.version}</versionRange>
                    <goals>
                      <goal>generate-eips-list</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>

      <!-- shade caffeine cache for faster Camel and spi-annotations as needed by everybody -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <includes>
                  <include>com.github.ben-manes.caffeine:caffeine</include>
                  <include>org.apache.camel:spi-annotations</include>
                </includes>
                <excludes>
                  <exclude>org.apache.camel:apt</exclude>
                </excludes>
              </artifactSet>
              <relocations>
                <relocation>
                  <pattern>com.github.benmanes.caffeine</pattern>
                  <shadedPattern>org.apache.camel.com.github.benmanes.caffeine</shadedPattern>
                </relocation>
              </relocations>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- include additional metadata from target/generated into the camel-core JAR -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>include-metadata</id>
            <phase>package</phase>
            <configuration>
              <target>
                <echo>Including metadata properties files in camel-core.jar</echo>
                <jar destfile="${project.build.directory}/${project.artifactId}-${project.version}.jar" update="true">
                  <fileset dir="${basedir}/target/generated/camel/components/" includes="**/*" />
                  <fileset dir="${basedir}/target/generated/camel/dataformats/" includes="**/*" />
                  <fileset dir="${basedir}/target/generated/camel/languages/" includes="**/*" />
                  <fileset dir="${basedir}/target/generated/camel/models/" includes="**/*" />
                </jar>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- generate the attached tests jar -->
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>log4j.properties</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <!-- skip file stress tests as they are intended to run manually -->
          <excludes>
            <exclude>org/apache/camel/component/file/stress/**.java</exclude>
            <exclude>**/DistributedCompletionIntervalTest.java</exclude>
            <exclude>**/DistributedConcurrentPerCorrelationKeyTest.java</exclude>
            <exclude>${platform.skip.tests}</exclude>
          </excludes>
          <forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
          <!-- needed for testing the properties component -->
          <environmentVariables>
            <FOO_SERVICE_HOST>myserver</FOO_SERVICE_HOST>
            <FOO_SERVICE_PORT>8081</FOO_SERVICE_PORT>
          </environmentVariables>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-package-maven-plugin</artifactId>
        <version>${project.version}</version>
        <executions>
          <execution>
            <id>components</id>
            <goals>
              <goal>generate-components-list</goal>
            </goals>
            <phase>generate-resources</phase>
          </execution>
          <execution>
            <id>eips</id>
            <goals>
              <goal>generate-eips-list</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
          <!-- camel-core needs to generate dataformats after compilation -->
          <execution>
            <id>dataformats</id>
            <goals>
              <goal>generate-dataformats-list</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
          <!-- camel-core needs to generate languages after compilation -->
          <execution>
            <id>languages</id>
            <goals>
              <goal>generate-languages-list</goal>
            </goals>
            <phase>process-classes</phase>
          </execution>
          <!-- camel-core needs to validate before packaging -->
          <execution>
            <id>validate</id>
            <goals>
              <goal>validate-components</goal>
              <goal>prepare-spring-boot-starter</goal>
              <goal>prepare-spring-boot-auto-configuration</goal>
            </goals>
            <phase>prepare-package</phase>
          </execution>
          <execution>
            <id>readme</id>
            <goals>
              <goal>update-readme</goal>
            </goals>
            <phase>package</phase>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <links>
            <link>http://download.oracle.com/javase/7/docs/api/</link>
            <link>http://download.oracle.com/javaee/7/api/</link>
          </links>
          <linksource>true</linksource>
          <maxmemory>256m</maxmemory>
          <groups>
            <group>
              <title>Camel API</title>
              <packages>org.apache.camel</packages>
            </group>
            <group>
              <title>Fluent API (DSL) for building EIP rules</title>
              <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
            </group>
            <group>
              <title>EIP model</title>
              <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
            </group>
            <group>
              <title>Camel Components</title>
              <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
            </group>
            <group>
              <title>Language APIs and plugins for Expressions and Predicates</title>
              <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
            </group>
            <group>
              <title>Processors to implement the Enterprise Integration Patterns</title>
              <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
            </group>
            <group>
              <title>Strategy APIs for implementors extending Camel</title>
              <packages>org.apache.camel.spi</packages>
            </group>
            <group>
              <title>Support APIs for implementors</title>
              <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
            </group>
            <group>
              <title>Management (JMX) API</title>
              <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
            </group>
            <group>
              <title>Camel Runtime</title>
              <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
            </group>
            <group>
              <title>Camel Main to run Camel standalone</title>
              <packages>org.apache.camel.main</packages>
            </group>
            <group>
              <title>Type conversion helper classes</title>
              <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
            </group>
            <group>
              <title>Utility classes</title>
              <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
            </group>
          </groups>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>validate</id>
      <build>
        <plugins>
          <!-- to validate Camel endpoints: mvn camel:validate -Pvalidate -->
          <plugin>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-maven-plugin</artifactId>
            <version>${project.version}</version>
            <configuration>
              <failOnError>true</failOnError>
              <includeTest>true</includeTest>
              <ignoreLenientProperties>false</ignoreLenientProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>package</id>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <links>
                <link>http://download.oracle.com/javase/7/docs/api/</link>
                <link>http://download.oracle.com/javaee/7/api/</link>
              </links>
              <linksource>true</linksource>
              <maxmemory>256m</maxmemory>
              <groups>
                <group>
                  <title>Camel API</title>
                  <packages>org.apache.camel</packages>
                </group>
                <group>
                  <title>Fluent API (DSL) for building EIP rules</title>
                  <packages>org.apache.camel.builder:org.apache.camel.builder.*</packages>
                </group>
                <group>
                  <title>EIP model</title>
                  <packages>org.apache.camel.model:org.apache.camel.model.*</packages>
                </group>
                <group>
                  <title>Camel Components</title>
                  <packages>org.apache.camel.component:org.apache.camel.component.*</packages>
                </group>
                <group>
                  <title>Language APIs and plugins for Expressions and Predicates</title>
                  <packages>org.apache.camel.language:org.apache.camel.language.*</packages>
                </group>
                <group>
                  <title>Processors to implement the Enterprise Integration Patterns</title>
                  <packages>org.apache.camel.processor:org.apache.camel.processor.*</packages>
                </group>
                <group>
                  <title>Strategy APIs for implementors extending Camel</title>
                  <packages>org.apache.camel.spi</packages>
                </group>
                <group>
                  <title>Support APIs for implementors</title>
                  <packages>org.apache.camel.support:org.apache.camel.support.*</packages>
                </group>
                <group>
                  <title>Management (JMX) API</title>
                  <packages>org.apache.camel.management:org.apache.camel.management.*:org.apache.camel.api.management.mbean</packages>
                </group>
                <group>
                  <title>Camel Runtime</title>
                  <packages>org.apache.camel.impl:org.apache.camel.impl.*</packages>
                </group>
                <group>
                  <title>Camel Main to run Camel standalone</title>
                  <packages>org.apache.camel.main</packages>
                </group>
                <group>
                  <title>Type conversion helper classes</title>
                  <packages>org.apache.camel.converter:org.apache.camel.converter.*</packages>
                </group>
                <group>
                  <title>Utility classes</title>
                  <packages>org.apache.camel.util:org.apache.camel.util.*</packages>
                </group>
              </groups>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- enables the APT dependency so that it can be disabled in IDE builds -->
    <profile>
      <id>apt</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <dependencies>

        <!-- enable the APT processor -->
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>apt</artifactId>
          <scope>provided</scope>
        </dependency>

      </dependencies>
    </profile>

    <!-- skip management tests on AIX as it hangs CI servers -->
    <profile>
      <id>aix</id>
      <activation>
        <os>
          <name>aix</name>
        </os>
      </activation>
      <properties>
        <platform.skip.tests>org/apache/camel/management/**/*.java</platform.skip.tests>
      </properties>
    </profile>
    <profile>
      <id>xalan</id>
      <dependencies>
        <!-- enable the Xalan processor -->
        <dependency>
          <groupId>xalan</groupId>
          <artifactId>xalan</artifactId>
          <version>${xalan-version}</version>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>xerces</id>
      <dependencies>
        <!-- enable the xerces processor -->
        <dependency>
          <groupId>xerces</groupId>
          <artifactId>xercesImpl</artifactId>
          <version>${xerces-version}</version>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>woodstox</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <dependencies>
        <!-- xmltokenizer using woodstox -->
        <dependency>
          <groupId>org.codehaus.woodstox</groupId>
          <artifactId>woodstox-core-asl</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>jdk9-build</id>
      <activation>
        <jdk>9</jdk>
      </activation>
      <dependencies>

        <!-- enable the APT processor -->
        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>apt</artifactId>
          <scope>provided</scope>
        </dependency>
        <!-- xmltokenizer using woodstox -->
        <dependency>
          <groupId>org.codehaus.woodstox</groupId>
          <artifactId>woodstox-core-asl</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <!-- skip file stress tests as they are intended to run manually -->
              <excludes>
              <exclude>org/apache/camel/component/file/stress/**.java</exclude>
              <exclude>**/DistributedCompletionIntervalTest.java</exclude>
              <exclude>**/DistributedConcurrentPerCorrelationKeyTest.java</exclude>
              <exclude>${platform.skip.tests}</exclude>
              </excludes>
              <forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
              <!-- needed for testing the properties component -->
              <environmentVariables>
              <FOO_SERVICE_HOST>myserver</FOO_SERVICE_HOST>
              <FOO_SERVICE_PORT>8081</FOO_SERVICE_PORT>
              </environmentVariables>
              <argLine>--add-modules java.xml.bind,java.xml.ws --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED</argLine>
            </configuration>
            <dependencies>
              <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-core</artifactId>
                <version>2.2.11</version>
              </dependency>
              <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>2.2.11</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
