blob: aaf7d6f4722affa33bf92045e8032804c9766fea [file]
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>40</version>
</parent>
<groupId>org.apache.camel</groupId>
<artifactId>camel</artifactId>
<version>4.24.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Camel</name>
<description>Camel Root POM</description>
<url>https://camel.apache.org</url>
<inceptionYear>2007</inceptionYear>
<developers>
<developer>
<name>The Apache Camel Team</name>
<email>dev@camel.apache.org</email>
<url>https://camel.apache.org</url>
<organization>Apache Software Foundation</organization>
<organizationUrl>http://apache.org/</organizationUrl>
</developer>
</developers>
<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>
<modules>
<module>parent</module>
<module>etc</module>
<module>bom</module>
<module>buildingtools</module>
<module>tooling</module>
<module>core</module>
<module>test-infra</module>
<module>components</module>
<module>catalog</module>
<module>camel-dependencies</module>
<module>dsl</module>
<module>archetypes</module>
<module>tests</module>
<module>docs</module>
<module>apache-camel</module>
<module>coverage</module>
</modules>
<scm>
<connection>scm:git:http://gitbox.apache.org/repos/asf/camel.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/camel.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=camel.git;a=summary</url>
<tag>HEAD</tag>
</scm>
<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>
<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>17</jdk.version>
<!-- These two are here only to prevent the versions for the Apache parent pom from leaking-->
<maven.compiler.source>${jdk.version}</maven.compiler.source>
<maven.compiler.target>${jdk.version}</maven.compiler.target>
<maven.compiler.release>${jdk.version}</maven.compiler.release>
<minimalJavaBuildVersion>${jdk.version}</minimalJavaBuildVersion>
<!-- reproducible builds: https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
<project.build.outputTimestamp>2026-10-15T12:33:02Z</project.build.outputTimestamp>
<sonar.java.source>${jdk.version}</sonar.java.source>
<!-- NOTE: this is required to correctly map each module coverage in Sonarqube. The ${maven.multiModuleProjectDirectory} may require some change
when upgrading to Maven 4.x, according to any of the new variables that will replace this one. -->
<sonar.coverage.jacoco.xmlReportPaths>
${maven.multiModuleProjectDirectory}/coverage/target/site/jacoco-aggregate/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
<sonar.cpd.exclusions>
components/camel-jackson3/**,components/camel-jackson3xml/**,components/camel-test/camel-test-junit6/**
</sonar.cpd.exclusions>
<cyclonedx-maven-plugin-version>2.9.3</cyclonedx-maven-plugin-version>
<flatten-maven-plugin-version>1.8.0</flatten-maven-plugin-version>
<jacoco-version>0.8.15</jacoco-version>
<license-maven-plugin-version>5.1.2</license-maven-plugin-version>
<maven-assembly-plugin-version>3.8.0</maven-assembly-plugin-version>
<maven-compiler-plugin-version>3.16.0</maven-compiler-plugin-version>
<maven-dependency-plugin-version>3.11.0</maven-dependency-plugin-version>
<maven-enforcer-plugin-version>3.6.3</maven-enforcer-plugin-version>
<maven-invoker-plugin-version>3.10.1</maven-invoker-plugin-version>
<maven-javadoc-plugin-version>3.12.0</maven-javadoc-plugin-version>
<maven-release-plugin-version>3.3.1</maven-release-plugin-version>
<maven-remote-resources-plugin-version>3.3.0</maven-remote-resources-plugin-version>
<maven-surefire-plugin-version>3.5.6</maven-surefire-plugin-version>
<templating-maven-plugin-version>3.1.1</templating-maven-plugin-version>
<versions-maven-plugin-version>2.23.0</versions-maven-plugin-version>
<camel.javadoc.offline>false</camel.javadoc.offline>
<invoker.skip>${skipTests}</invoker.skip>
<enforcer.phase>none</enforcer.phase><!-- We do not enforce with -Dquickly, the property is overridden in the full profile -->
<os.detected.classifier>${nisse.os.classifier}</os.detected.classifier>
</properties>
<!-- Comment out the snapshot repositories as we don't need them now -->
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
<name>Maven Central</name>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<build>
<defaultGoal>install</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-maven-version</id>
<phase>${enforcer.phase}</phase>
<configuration>
<rules>
<requireMavenVersion>
<!-- required maven >= 3.9.6 -->
<version>[3.9.6,)</version>
</requireMavenVersion>
<externalRules>
<location>${maven.multiModuleProjectDirectory}/tooling/enforcer-rules/src/main/resources/camel-banned-dependencies.xml</location>
</externalRules>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java-version</id>
<phase>${enforcer.phase}</phase>
<configuration>
<rules>
<requireJavaVersion>
<version>[21,)</version>
<message>JDK 21+ is required to build Apache Camel. JDK 21-specific classes (e.g., virtual thread support in camel-util) are only compiled with JDK 21+. Building with JDK 17 silently omits these classes from the resulting JARs.</message>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>process-resource-bundles</id>
<phase>none
</phase><!-- unbound here to speedup -Dquickly build; bound to a phase in the full profile -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<phase>none
</phase><!-- unbound here to speedup -Dquickly build; bound to a phase in the full profile -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<executions>
<execution>
<id>attach-descriptor</id>
<phase>none</phase><!-- skip to save time -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<configuration>
<outputDirectory>target</outputDirectory>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license-maven-plugin-version}</version>
<configuration>
<failIfUnknown>true</failIfUnknown>
<licenseSets>
<licenseSet>
<header>
${maven.multiModuleProjectDirectory}/buildingtools/src/main/resources/header.txt
</header>
<excludes>
<exclude>release.properties</exclude>
<exclude>**/pom.xml.tag</exclude>
<exclude>**/pom.xml.releaseBackup</exclude>
<exclude>**/*.MockMaker</exclude>
<exclude>**/*.adm</exclude>
<exclude>**/*.adoc.template</exclude>
<exclude>**/*.adoc</exclude>
<exclude>**/*.arff</exclude>
<exclude>**/*.asn1</exclude>
<exclude>**/*.avpr</exclude>
<exclude>**/*.avsc</exclude>
<exclude>**/*.bin</exclude>
<exclude>**/*.cat</exclude>
<exclude>**/*.cer</exclude>
<exclude>**/*.channel</exclude>
<exclude>**/*.chtml</exclude>
<exclude>**/*.crt</exclude>
<exclude>**/*.csv</exclude>
<exclude>**/*.dwl</exclude>
<exclude>**/*.event</exclude>
<exclude>**/*.gif</exclude>
<exclude>**/*.gpg</exclude>
<exclude>**/*.graphdef</exclude>
<exclude>**/*.graphql*</exclude>
<exclude>**/*.ics</exclude>
<exclude>**/*.joor</exclude>
<exclude>**/*.jpeg</exclude>
<exclude>**/*.jpg</exclude>
<exclude>**/*.jslt</exclude>
<exclude>**/*.key</exclude>
<exclude>**/*.keystore</exclude>
<exclude>**/*.mar</exclude>
<exclude>**/*.model</exclude>
<exclude>**/*.mvel</exclude>
<exclude>**/*.mp3</exclude>
<exclude>**/*.mp4</exclude>
<exclude>**/*.p12</exclude>
<exclude>**/*.params</exclude>
<exclude>**/*.parquet</exclude>
<exclude>**/*.pb</exclude>
<exclude>**/*.pbtxt</exclude>
<exclude>**/*.pem</exclude>
<exclude>**/*.pfx</exclude>
<exclude>**/*.pgp</exclude>
<exclude>**/*.tm</exclude>
<exclude>**/*.truststore</exclude>
<exclude>**/*.tt</exclude>
<exclude>**/*.txt</exclude>
<exclude>**/*.webp</exclude>
<exclude>**/*.xquery</exclude>
<exclude>**/*utf16.ftl</exclude>
<exclude>**/*utf16.vm</exclude>
<exclude>**/.eslint*</exclude>
<exclude>**/.pnp*</exclude>
<exclude>**/*.jte</exclude>
<exclude>**/CamelJBang.java</exclude>
<exclude>**/LICENSE.txt</exclude>
<exclude>**/LICENSE</exclude>
<exclude>**/META-INF/cxf/**</exclude>
<exclude>**/META-INF/groovy/**</exclude>
<exclude>**/META-INF/kotlin/**</exclude>
<exclude>**/META-INF/persistence*.xsd</exclude>
<exclude>**/MySecondBarConfigurer.java</exclude>
<exclude>**/MySecondFooConfigurer.java</exclude>
<exclude>**/NOTICE.txt</exclude>
<exclude>**/NOTICE</exclude>
<exclude>**/README</exclude>
<exclude>**/TestImpl*</exclude>
<exclude>**/archetype-resources/**</exclude>
<exclude>**/ca-openssl.cnf</exclude>
<exclude>**/openssl-ca.cnf</exclude>
<exclude>**/openssl-server.cnf</exclude>
<exclude>**/keystore</exclude>
<exclude>**/cacerts</exclude>
<exclude>**/cert_user_ca</exclude>
<exclude>**/cert_host_ca</exclude>
<exclude>**/cert_user_key</exclude>
<exclude>**/cert_host_key</exclude>
<exclude>**/cxf.extension</exclude>
<exclude>**/dhis.conf</exclude>
<exclude>**/driver.conf</exclude>
<exclude>**/expressions.spec</exclude>
<exclude>**/git.config</exclude>
<exclude>**/id_file</exclude>
<exclude>**/id_rsa</exclude>
<exclude>**/test-key-ecdsa</exclude>
<exclude>**/test-key-rsa-encrypted</exclude>
<exclude>**/test-ca-key</exclude>
<exclude>**/test-key-ed25519</exclude>
<exclude>**/test-key-rsa</exclude>
<exclude>**/ignite/**</exclude>
<exclude>**/it/resources/*.connectedApp</exclude>
<exclude>**/it/resources/salesforce/**</exclude>
<exclude>**/it/resources/sfdx-project/.sf/**</exclude>
<exclude>**/it/resources/sfdx-project/.sfdx/**</exclude>
<exclude>**/it/resources/sfdx-project/salesforce-source/**</exclude>
<exclude>**/javamail.default.*</exclude>
<exclude>**/kafka*.config</exclude>
<exclude>**/known_hosts*</exclude>
<exclude>**/mosquitto.conf</exclude>
<exclude>**/myjaas.config</exclude>
<exclude>**/node_modules/**</exclude>
<exclude>**/salesforce/dto/generated/**</exclude>
<exclude>**/src/generated/**</exclude>
<exclude>**/src/generated/**</exclude>
<exclude>**/src/main/resources/templates/*.tmpl</exclude>
<exclude>**/src/test/resources/generated/**</exclude>
<exclude>**/test-kerb5.conf</exclude>
<exclude>**/variables/variables.data-*-of-*</exclude>
<exclude>**/variables/variables.index</exclude>
<exclude>**/zkserver*.conf</exclude>
<exclude>**/*.wasm</exclude>
<exclude>**/*.lock</exclude>
<exclude>.claude/**</exclude>
<exclude>.omc/**</exclude>
<exclude>.mvn/**</exclude>
<exclude>.sdkmanrc</exclude>
<exclude>KEYS</exclude>
<exclude>camel-sbom/*.xml</exclude>
<exclude>doap.rdf</exclude>
<exclude>mvnw*</exclude>
<exclude>**/camelw</exclude>
<exclude>**/FileSplitXPathCharsetTest-input.xml</exclude>
<exclude>**/.camel-jbang-run/**</exclude>
<exclude>**/camel-jbang-run.properties</exclude>
<exclude>**/javax.annotations.processing.Processor</exclude>
<exclude>**/helm/etc/**</exclude>
<exclude>**/examples/*</exclude>
<exclude>**/examples/**/*</exclude>
<exclude>**/*.wav</exclude>
<exclude>**/*.cast</exclude>
<exclude>**/Makefile</exclude>
</excludes>
</licenseSet>
</licenseSets>
<mapping>
<Adapter>CAMEL_PROPERTIES_STYLE</Adapter>
<conf>SCRIPT_STYLE</conf>
<Dockerfile.jvm>SCRIPT_STYLE</Dockerfile.jvm>
<Dockerfile.legacy-jar>SCRIPT_STYLE</Dockerfile.legacy-jar>
<Dockerfile.native-micro>SCRIPT_STYLE</Dockerfile.native-micro>
<Dockerfile.native>SCRIPT_STYLE</Dockerfile.native>
<Dockerfile>SCRIPT_STYLE</Dockerfile>
<Jenkinsfile>SLASHSTAR_STYLE</Jenkinsfile>
<Jenkinsfile.deploy>SLASHSTAR_STYLE</Jenkinsfile.deploy>
<Jenkinsfile.dryrun>SLASHSTAR_STYLE</Jenkinsfile.dryrun>
<Jenkinsfile.jbangtest>SLASHSTAR_STYLE</Jenkinsfile.jbangtest>
<Jenkinsfile.jdk26>SLASHSTAR_STYLE</Jenkinsfile.jdk26>
<Jenkinsfile.jdk27>SLASHSTAR_STYLE</Jenkinsfile.jdk27>
<atom>XML_STYLE</atom>
<bpmn>XML_STYLE</bpmn>
<camel-eclipse-pmd>XML_STYLE</camel-eclipse-pmd>
<cql>DOUBLEDASHES_STYLE</cql>
<ds>SLASHSTAR_STYLE</ds>
<gdsl>SLASHSTAR_STYLE</gdsl>
<ini>SCRIPT_STYLE</ini>
<java>SLASHSTAR_STYLE</java>
<javamail.providers>CAMEL_PROPERTIES_STYLE</javamail.providers>
<jaxb.index>CAMEL_PROPERTIES_STYLE</jaxb.index>
<jj>DOUBLESLASH_STYLE</jj>
<jnanorc>CAMEL_PROPERTIES_STYLE</jnanorc>
<jsh>SLASHSTAR_STYLE</jsh>
<kts>SLASHSTAR_STYLE</kts>
<ldif>LDIF_STYLE</ldif>
<libsonnet>SLASHSTAR_STYLE</libsonnet>
<motd>SCRIPT_STYLE</motd>
<mvel>MVEL_STYLE</mvel>
<nanorc>CAMEL_PROPERTIES_STYLE</nanorc>
<properties>CAMEL_PROPERTIES_STYLE</properties>
<proto>SLASHSTAR_STYLE</proto>
<ps1>SCRIPT_STYLE</ps1>
<qf.cfg>CAMEL_PROPERTIES_STYLE</qf.cfg>
<robot>SCRIPT_STYLE</robot>
<rego>SCRIPT_STYLE</rego>
<rs>DOUBLESLASH_STYLE</rs>
<sch>XML_STYLE</sch>
<spring.factories>CAMEL_PROPERTIES_STYLE</spring.factories>
<spring.handlers>CAMEL_PROPERTIES_STYLE</spring.handlers>
<spring.provides>CAMEL_PROPERTIES_STYLE</spring.provides>
<spring.schemas>CAMEL_PROPERTIES_STYLE</spring.schemas>
<sql>DOUBLEDASHES_STYLE</sql>
<tape>SCRIPT_STYLE</tape>
<tcss>SLASHSTAR_STYLE</tcss>
<thrift>JAVADOC_STYLE</thrift>
<toml>SCRIPT_STYLE</toml>
<unrealircd.conf>SLASHSTAR_STYLE</unrealircd.conf>
<vm>CAMEL_PROPERTIES_STYLE</vm>
</mapping>
<headerDefinitions>
<headerDefinition>
${maven.multiModuleProjectDirectory}/buildingtools/src/main/resources/license-properties-headerdefinition.xml
</headerDefinition>
<headerDefinition>
${maven.multiModuleProjectDirectory}/buildingtools/src/main/resources/ldif-properties-headerdefinition.xml
</headerDefinition>
</headerDefinitions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-surefire-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>${maven-remote-resources-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludeSubProjects>false</excludeSubProjects>
<excludes>
<exclude>**/generated/**</exclude>
<exclude>**/generated.txt</exclude>
<exclude>**/*.json</exclude>
<exclude>**/README</exclude>
<exclude>**/README.txt</exclude>
<exclude>**/README.md</exclude>
<exclude>**/ReadMe.md</exclude>
<exclude>**/resources/**/*.xsd</exclude>
<exclude>**/webapp/js/**/*</exclude>
<exclude>**/test/resources/**/*</exclude>
<exclude>**/test/data*/**/*</exclude>
<exclude>.gitignore</exclude>
<exclude>.git/**/*</exclude>
<exclude>**/*.adoc</exclude>
<exclude>**/*.adoc.template</exclude>
<exclude>**/*.md</exclude>
<exclude>**/*.sh</exclude>
<exclude>**/*.bat</exclude>
<exclude>**/*.tmpl</exclude>
<exclude>**/java9-maven-settings</exclude>
<exclude>**/*.pfx</exclude>
<!-- tooling for component docs -->
<exclude>**/component-header.mvel</exclude>
<exclude>**/component-options.mvel</exclude>
<exclude>**/endpoint-options.mvel</exclude>
<exclude>**/dataformat-options.mvel</exclude>
<exclude>**/annotation-options.mvel</exclude>
<exclude>**/eip-options.mvel</exclude>
<exclude>**/language-options.mvel</exclude>
<exclude>**/main-options.mvel</exclude>
<exclude>**/website-components-list.mvel</exclude>
<exclude>**/website-languages-list.mvel</exclude>
<exclude>**/website-others-list.mvel</exclude>
<exclude>**/website-dataformats-list.mvel</exclude>
<exclude>**/readme-examples.mvel</exclude>
<exclude>**/camel-NOTICE.txt</exclude>
<!-- cxf does not handle comments here -->
<exclude>**/src/main/resources/META-INF/cxf/cxf.extension</exclude>
<exclude>**/src/main/resources/META-INF/cxf/bus-extensions.txt</exclude>
<!-- ignore the api signatures files -->
<exclude>**/src/signatures/*.txt</exclude>
<!-- camel-salesforce BSD license from salesforce developers -->
<exclude>**/CometDReplayExtension.java</exclude>
<exclude>**/LICENSE-SALESFORCE.txt</exclude>
<exclude>**/LICENSE-ICU4J.txt</exclude>
<exclude>**/sfdx-project/**</exclude>
<!-- camel-as2 -->
<exclude>**/mdnDescription.vm</exclude>
<!-- camel-jbpm -->
<exclude>**/src/main/resources/*.wid</exclude>
<!-- camel website and user-manual -->
<exclude>**/node/**</exclude>
<exclude>**/node_modules/**</exclude>
<exclude>**/user-manual/**</exclude>
<exclude>**/docs/**/*</exclude>
<exclude>**/build-state.yml</exclude>
<!-- 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>
<exclude>**/test_rsa*</exclude>
<exclude>**/data*/**/*.xml</exclude>
<exlucde>**/*.log</exlucde>
<exclude>**/id_file</exclude>
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/Dropbox_API_Terms_and_Conditions.txt</exclude>
<exclude>**/MerchandiseRestResource.apxc</exclude>
<exclude>**/file-sig-api.txt</exclude>
<exclude>**/Tasks__c.java</exclude>
<exclude>**/*.proto</exclude>
<exclude>**/*.pbtxt</exclude>
<exclude>
**/src/main/resources/META-INF/services/org.kie.server.services.api.KieServerExtension
</exclude>
<exclude>**/helm/etc/**/*</exclude>
<exclude>**/META-INF/MANIFEST.MF</exclude>
<exclude>**/openapi.yaml</exclude>
<exclude>**/ignite/work/**/*</exclude>
<exclude>**/MySecondFooConfigurer.java</exclude>
<exclude>**/MySecondBarConfigurer.java</exclude>
<exclude>**/stockquote-response.xml</exclude>
<exclude>**/quarkus-pom.ftl</exclude>
<exclude>**/quarkus-docker/*</exclude>
<exclude>.github/**/*</exclude>
<exclude>**/.camel-jbang-run/**/*</exclude>
<exclude>**/.camel-jbang/**/*</exclude>
<exclude>**/commands/edit/edit-help.txt</exclude>
<exclude>**/examples/*</exclude>
<exclude>**/examples/**/*</exclude>
<exclude>**/src/main/resources/testdata/**/*</exclude>
<!-- vendored third-party TUI web assets -->
<exclude>**/tui/web/vendor/*</exclude>
<!-- JReleaser templates -->
<exclude>**/jreleaser/**/*.tpl</exclude>
<!-- Claude Code / OMC worktrees -->
<exclude>.claude/**/*</exclude>
<exclude>.omc/**/*</exclude>
<!-- Maven Wrapper -->
<exclude>.mvn/**/*</exclude>
<exclude>**/maven-wrapper/*</exclude>
<exclude>**/THIRD-PARTY-NOTICES.txt</exclude>
<exclude>**/camel-shell-banner.txt</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin-version}</version>
<configuration>
<localCheckout>true</localCheckout>
<pushChanges>true</pushChanges>
<tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
<useReleaseProfile>false</useReleaseProfile>
<preparationGoals>clean install</preparationGoals>
<goals>deploy</goals>
<!--
The profile we want to use when doing the release.
camel.exe.build must be passed as a real user property: the release
profile below sets it in <properties>, but Maven's property activator
only reads user and system properties, so a profile that sets it cannot
activate the profiles that are triggered by it (include-camel-exe in
camel-launcher, build-native-exe in camel-exe). Without this, a release
build produces no native Windows executables and no WinGet payload.
-->
<arguments>-Prelease -Dcamel.exe.build=true</arguments>
<!--
After the development SNAPSHOT version is set, rebuild to regenerate
all files in src/generated/ directories that embed the project version.
Without this step, those generated metadata files (JSON descriptors,
configurer sources, endpoint-dsl, etc.) would still carry the just-
released version instead of the new SNAPSHOT, requiring a manual
"refresh" PR after every release (see CAMEL-23376).
The same <arguments> above apply here, so tests are skipped and the
release profile is active — but no artifacts are deployed; the rebuilt
jars are installed locally only, and the regenerated src/generated/
files are folded into the "prepare for next development iteration" SCM
commit by the release plugin.
-->
<completionGoals>install</completionGoals>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>templating-maven-plugin</artifactId>
<version>${templating-maven-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions-maven-plugin-version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${flatten-maven-plugin-version}</version>
<executions>
<execution>
<id>default-cli</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<flattenedPomFilename>${project.artifactId}-${project.version}.pom
</flattenedPomFilename>
<updatePomFile>true</updatePomFile>
<pomElements>
<build>keep</build>
<dependencyManagement>keep</dependencyManagement>
<description>keep</description>
<name>keep</name>
<parent>expand</parent>
<pluginManagement>keep</pluginManagement>
<profiles>remove</profiles>
<properties>keep</properties>
</pomElements>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>${maven-invoker-plugin-version}</version>
<configuration>
<skipInstallation>${invoker.skip}</skipInstallation>
<skipInvocation>${invoker.skip}</skipInvocation>
<mavenOpts>-Xmx64m -XshowSettings</mavenOpts>
<showVersion>true</showVersion>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<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-no-fork</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>
<configuration>
<source>11</source>
<doclint>none</doclint>
</configuration>
</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-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<activation>
<property>
<name>release</name>
</property>
</activation>
<properties>
<skipTests>true</skipTests>
<!--
Read by plugin configuration only. Setting it here does NOT activate the
profiles keyed on camel.exe.build; those need it as a user property, which
maven-release-plugin's <arguments> passes explicitly. A build invoked as
'mvn -Prelease' by hand must also pass -Dcamel.exe.build=true to get the
native Windows executables.
-->
<camel.exe.build>true</camel.exe.build>
</properties>
<build>
<plugins>
<!-- We want to deploy the artifact to a staging location for perusal -->
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</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>
<configuration>
<source>8</source>
<additionalOptions>${javadoc.opts}</additionalOptions>
<!-- disable Javadoc linting for buildung the release with Java 11 -->
<doclint>none</doclint>
</configuration>
</plugin>
<!-- We want to sign the artifact, the POM, and all attached artifacts -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<passphrase>${gpg.passphrase}</passphrase>
<useAgent>${gpg.useagent}</useAgent>
</configuration>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
<failIfNoTests>false</failIfNoTests>
<skipITs>true</skipITs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
<failIfNoTests>false</failIfNoTests>
<skipTests>true</skipTests>
</configuration>
<executions>
<execution>
<id>default-test</id>
<phase>none</phase><!-- No need to even load the plugin during releases -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>license-format</id>
<goals>
<goal>format</goal>
</goals>
<phase>none</phase><!-- No need to even load the plugin during releases -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<executions>
<execution>
<id>code-format</id>
<goals>
<goal>format</goal>
</goals>
<phase>none</phase><!-- No need to even load the plugin during releases -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx-maven-plugin-version}</version>
<inherited>false</inherited>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>makeAggregateBom</goal>
</goals>
</execution>
</executions>
<configuration>
<outputName>${project.artifactId}-${project.version}-sbom</outputName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-java-version</id>
<configuration>
<rules>
<requireJavaVersion>
<version>[25,)</version>
<message>JDK 25+ is required for releases to ensure all multi-release JAR layers (java-21, java-25) are compiled.</message>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>cleanrepo</id>
<build>
<defaultGoal>build-helper:remove-project-artifact</defaultGoal>
</build>
</profile>
<profile>
<id>sbom</id>
<build>
<plugins>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx-maven-plugin-version}</version>
<inherited>false</inherited>
<configuration>
<outputName>camel-sbom</outputName>
<outputDirectory>${project.basedir}/camel-sbom/</outputDirectory>
<excludeArtifactId>camel-allcomponents</excludeArtifactId>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>makeAggregateBom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>apache-snapshots</id>
<repositories>
<repository>
<id>apache.snapshots</id>
<url>https://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>https://repository.apache.org/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<!--
Opt-in dependency analysis profile.
Usage: mvn compile pilot:dependencies -Pdep-check -Dpilot.skipTestScope=true [-Dpilot.action=check]
Leverages eu.maveniverse.maven.plugins:pilot-plugin:dependencies for
bytecode-level analysis: detects unused declared and used transitive deps.
Non-blocking by default (report mode); use -Dpilot.action=check to fail
the build on findings, or -Dpilot.action=fix to apply fixes to pom.xml.
Use -Dpilot.skipTestScope=true to skip test-scoped dependency analysis.
-->
<id>dep-check</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>eu.maveniverse.maven.plugins</groupId>
<artifactId>pilot-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<ignoredUnusedDeclared>
<!-- Logging implementations are runtime deps intentionally declared at compile scope -->
<ignoredUnusedDeclared>org.apache.logging.log4j:log4j-slf4j2-impl</ignoredUnusedDeclared>
<ignoredUnusedDeclared>org.apache.logging.log4j:log4j-core</ignoredUnusedDeclared>
<!-- JUnit aggregator is declared in parent; code compiles against junit-jupiter-api -->
<ignoredUnusedDeclared>org.junit.jupiter:junit-jupiter</ignoredUnusedDeclared>
</ignoredUnusedDeclared>
<ignoredUsedTransitive>
<ignoredUsedTransitive>org.junit.jupiter:junit-jupiter-api</ignoredUsedTransitive>
<ignoredUsedTransitive>org.junit.jupiter:junit-jupiter-params</ignoredUsedTransitive>
</ignoredUsedTransitive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<!-- The full profile contains mojos *not* essential for the quick build. -->
<!-- These are typically various source checks and code generations whose result is stored in git anyway. -->
<!-- Pass -Dquickly to skip these non-essential plugin executions. -->
<!-- -Dquickly suits primarily the situation when building from a state that passed all checks on the CI. -->
<id>full</id>
<activation>
<property>
<name>!quickly</name>
</property>
</activation>
<properties>
<enforcer.phase>validate</enforcer.phase><!-- We do not enforce with -Dquickly, but we enforce otherwise -->
</properties>
<build>
<plugins>
<plugin>
<groupId>com.mycila</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>license-format</id>
<goals>
<goal>format</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<id>default-test</id>
<phase>test</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>