| <?xml version="1.0" encoding="UTF-8"?> | |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |
| <modelVersion>4.0.0</modelVersion> | |
| <groupId>org.apache.camel</groupId> | |
| <artifactId>camel-kit</artifactId> | |
| <version>0.4.2-SNAPSHOT</version> | |
| <packaging>pom</packaging> | |
| <name>Camel Kit</name> | |
| <description>Design Apache Camel Integrations with AI</description> | |
| <url>https://github.com/luigidemasi/camel-kit</url> | |
| <licenses> | |
| <license> | |
| <name>Apache License, Version 2.0</name> | |
| <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url> | |
| <distribution>repo</distribution> | |
| </license> | |
| </licenses> | |
| <properties> | |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |
| <jdk.version>17</jdk.version> | |
| <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> | |
| <picocli.version>4.7.7</picocli.version> | |
| <ascii-table.version>1.9.0</ascii-table.version> | |
| <jackson.version>${ship.evidence.jackson-yaml.version}</jackson.version> | |
| <jline.version>3.30.6</jline.version> | |
| <tamboui.version>0.1.0</tamboui.version> | |
| <tomlj.version>1.1.1</tomlj.version> | |
| <quarkus.version>3.20.2.2</quarkus.version> | |
| <quarkus-mcp.version>1.6.1</quarkus-mcp.version> | |
| <camel.version>${camel.main.version}</camel.version> | |
| <!-- BEGIN distribution property mirrors | |
| distribution.properties is the packaged runtime source of truth. | |
| These literals must also exist here because Maven builds its model | |
| and resolves dependency/plugin versions before a lifecycle plugin | |
| can read that file. Run tools/sync_distribution_mirrors.py after | |
| changing the source; DistributionVersionMirrorTest prevents drift. --> | |
| <camel.main.version>4.22.1</camel.main.version> | |
| <ship.evidence.jackson-yaml.version>2.19.2</ship.evidence.jackson-yaml.version> | |
| <maven.resolver.version>1.9.27</maven.resolver.version> | |
| <maven.provider.version>3.9.12</maven.provider.version> | |
| <maven.jar.plugin.version>3.5.0</maven.jar.plugin.version> | |
| <maven.shade.plugin.version>3.6.1</maven.shade.plugin.version> | |
| <maven.surefire.plugin.version>3.5.4</maven.surefire.plugin.version> | |
| <maven.failsafe.plugin.version>3.5.4</maven.failsafe.plugin.version> | |
| <slf4j.version>1.7.36</slf4j.version> | |
| <json.schema.validator.version>2.0.4</json.schema.validator.version> | |
| <!-- END distribution property mirrors --> | |
| <!-- Code quality --> | |
| <impsort-maven-plugin.version>1.13.0</impsort-maven-plugin.version> | |
| <formatter-maven-plugin.version>2.29.0</formatter-maven-plugin.version> | |
| <error-prone.version>2.36.0</error-prone.version> | |
| <forbiddenapis.version>3.10</forbiddenapis.version> | |
| <format.skip>false</format.skip> | |
| </properties> | |
| <developers> | |
| <developer> | |
| <name>Luigi De Masi</name> | |
| <email>luigidemasi@gmail.com</email> | |
| </developer> | |
| </developers> | |
| <scm> | |
| <connection>scm:git:https://github.com/luigidemasi/camel-kit.git</connection> | |
| <developerConnection>scm:git:https://github.com/luigidemasi/camel-kit.git</developerConnection> | |
| <url>https://github.com/luigidemasi/camel-kit</url> | |
| <tag>HEAD</tag> | |
| </scm> | |
| <issueManagement> | |
| <system>GitHub Issues</system> | |
| <url>https://github.com/luigidemasi/camel-kit/issues</url> | |
| </issueManagement> | |
| <distributionManagement> | |
| <snapshotRepository> | |
| <id>central</id> | |
| <url>https://central.sonatype.com/repository/maven-snapshots/</url> | |
| </snapshotRepository> | |
| </distributionManagement> | |
| <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> | |
| <repository> | |
| <id>apache-snapshots</id> | |
| <name>Apache Snapshot Repository</name> | |
| <url>https://repository.apache.org/snapshots</url> | |
| <releases> | |
| <enabled>false</enabled> | |
| </releases> | |
| <snapshots> | |
| <enabled>true</enabled> | |
| <updatePolicy>always</updatePolicy> | |
| </snapshots> | |
| </repository> | |
| </repositories> | |
| <pluginRepositories> | |
| <pluginRepository> | |
| <id>apache-snapshots</id> | |
| <name>Apache Snapshot Repository</name> | |
| <url>https://repository.apache.org/snapshots</url> | |
| <releases> | |
| <enabled>false</enabled> | |
| </releases> | |
| <snapshots> | |
| <enabled>true</enabled> | |
| <updatePolicy>always</updatePolicy> | |
| </snapshots> | |
| </pluginRepository> | |
| </pluginRepositories> | |
| <modules> | |
| <module>camel-kit-main</module> | |
| <module>camel-kit-core</module> | |
| <module>camel-kit-graph</module> | |
| <module>camel-kit-ship-resolver</module> | |
| <module>camel-jbang-plugin-kit</module> | |
| </modules> | |
| <dependencyManagement> | |
| <dependencies> | |
| <dependency> | |
| <groupId>info.picocli</groupId> | |
| <artifactId>picocli</artifactId> | |
| <version>${picocli.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.github.freva</groupId> | |
| <artifactId>ascii-table</artifactId> | |
| <version>${ascii-table.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.fasterxml.jackson.core</groupId> | |
| <artifactId>jackson-databind</artifactId> | |
| <version>${jackson.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.fasterxml.jackson.dataformat</groupId> | |
| <artifactId>jackson-dataformat-yaml</artifactId> | |
| <version>${jackson.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>com.networknt</groupId> | |
| <artifactId>json-schema-validator</artifactId> | |
| <version>${json.schema.validator.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.jline</groupId> | |
| <artifactId>jline</artifactId> | |
| <version>${jline.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>dev.tamboui</groupId> | |
| <artifactId>tamboui-image</artifactId> | |
| <version>${tamboui.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>dev.tamboui</groupId> | |
| <artifactId>tamboui-core</artifactId> | |
| <version>${tamboui.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>dev.tamboui</groupId> | |
| <artifactId>tamboui-tui</artifactId> | |
| <version>${tamboui.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>dev.tamboui</groupId> | |
| <artifactId>tamboui-widgets</artifactId> | |
| <version>${tamboui.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>dev.tamboui</groupId> | |
| <artifactId>tamboui-jline3-backend</artifactId> | |
| <version>${tamboui.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>io.quarkus.qute</groupId> | |
| <artifactId>qute-core</artifactId> | |
| <version>${quarkus.version}</version> | |
| </dependency> | |
| <dependency> | |
| <groupId>org.tomlj</groupId> | |
| <artifactId>tomlj</artifactId> | |
| <version>${tomlj.version}</version> | |
| </dependency> | |
| </dependencies> | |
| </dependencyManagement> | |
| <build> | |
| <pluginManagement> | |
| <plugins> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-compiler-plugin</artifactId> | |
| <version>3.13.0</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-source-plugin</artifactId> | |
| <version>3.3.1</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-javadoc-plugin</artifactId> | |
| <version>3.11.2</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-gpg-plugin</artifactId> | |
| <version>3.2.7</version> | |
| </plugin> | |
| <plugin> | |
| <groupId>de.thetaphi</groupId> | |
| <artifactId>forbiddenapis</artifactId> | |
| <version>${forbiddenapis.version}</version> | |
| <configuration> | |
| <bundledSignatures> | |
| <bundledSignature>jdk-deprecated</bundledSignature> | |
| <bundledSignature>jdk-unsafe</bundledSignature> | |
| <bundledSignature>jdk-internal</bundledSignature> | |
| <bundledSignature>jdk-non-portable</bundledSignature> | |
| <bundledSignature>jdk-reflection</bundledSignature> | |
| </bundledSignatures> | |
| </configuration> | |
| <executions> | |
| <execution> | |
| <id>check</id> | |
| <goals> | |
| <goal>check</goal> | |
| </goals> | |
| </execution> | |
| <execution> | |
| <id>testCheck</id> | |
| <goals> | |
| <goal>testCheck</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>net.revelc.code</groupId> | |
| <artifactId>impsort-maven-plugin</artifactId> | |
| <version>${impsort-maven-plugin.version}</version> | |
| <configuration> | |
| <groups>java.,jakarta.,javax.,org.w3c.,org.xml.,org.apache.camel.,io.github.luigidemasi.,*</groups> | |
| <staticAfter>true</staticAfter> | |
| <removeUnused>true</removeUnused> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <groupId>net.revelc.code.formatter</groupId> | |
| <artifactId>formatter-maven-plugin</artifactId> | |
| <version>${formatter-maven-plugin.version}</version> | |
| <configuration> | |
| <configFile>${maven.multiModuleProjectDirectory}/camel-kit-formatter-config.xml</configFile> | |
| <skip>${format.skip}</skip> | |
| <lineEnding>KEEP</lineEnding> | |
| </configuration> | |
| </plugin> | |
| </plugins> | |
| </pluginManagement> | |
| <plugins> | |
| <plugin> | |
| <groupId>org.codehaus.mojo</groupId> | |
| <artifactId>properties-maven-plugin</artifactId> | |
| <version>1.2.1</version> | |
| <executions> | |
| <execution> | |
| <phase>initialize</phase> | |
| <goals> | |
| <goal>read-project-properties</goal> | |
| </goals> | |
| <configuration> | |
| <files> | |
| <file>${maven.multiModuleProjectDirectory}/distribution.properties</file> | |
| </files> | |
| <quiet>true</quiet> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <artifactId>maven-antrun-plugin</artifactId> | |
| <inherited>false</inherited> | |
| <executions> | |
| <execution> | |
| <id>sync-jbang-launcher-versions</id> | |
| <goals> | |
| <goal>run</goal> | |
| </goals> | |
| <configuration> | |
| <target> | |
| <replaceregexp | |
| file="${maven.multiModuleProjectDirectory}/camel-kit-main/src/main/jbang/main/CamelKit.java" | |
| match="(camel[.]kit[.]version:)[^}]+" | |
| replace="\1${project.version}" | |
| byline="true" | |
| encoding="UTF-8" /> | |
| <replaceregexp | |
| file="${maven.multiModuleProjectDirectory}/camel-kit-main/dist/CamelKit.java" | |
| match="(camel[.]kit[.]version:)[^}]+" | |
| replace="\1${project.version}" | |
| byline="true" | |
| encoding="UTF-8" /> | |
| <chmod | |
| file="${maven.multiModuleProjectDirectory}/camel-kit-main/dist/CamelKit.java" | |
| perm="u+x" /> | |
| <fail message="JBang launcher fallbacks do not match Maven project version ${project.version}"> | |
| <condition> | |
| <not> | |
| <and> | |
| <resourcecontains | |
| resource="${maven.multiModuleProjectDirectory}/camel-kit-main/src/main/jbang/main/CamelKit.java" | |
| substring="camel.kit.version:${project.version}}" /> | |
| <resourcecontains | |
| resource="${maven.multiModuleProjectDirectory}/camel-kit-main/dist/CamelKit.java" | |
| substring="camel.kit.version:${project.version}}" /> | |
| </and> | |
| </not> | |
| </condition> | |
| </fail> | |
| </target> | |
| </configuration> | |
| </execution> | |
| <!-- Maven Release commits its POM file set plus files already staged in Git. --> | |
| <execution> | |
| <id>stage-jbang-launcher-versions</id> | |
| <goals> | |
| <goal>run</goal> | |
| </goals> | |
| <configuration> | |
| <target> | |
| <exec executable="git" dir="${maven.multiModuleProjectDirectory}" failonerror="true"> | |
| <arg value="add" /> | |
| <arg value="-f" /> | |
| <arg value="--" /> | |
| <arg value="camel-kit-main/src/main/jbang/main/CamelKit.java" /> | |
| <arg value="camel-kit-main/dist/CamelKit.java" /> | |
| </exec> | |
| </target> | |
| </configuration> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-release-plugin</artifactId> | |
| <version>3.2.0</version> | |
| <configuration> | |
| <useReleaseProfile>false</useReleaseProfile> | |
| <releaseProfiles>release</releaseProfiles> | |
| <preparationGoals>antrun:run@sync-jbang-launcher-versions clean verify antrun:run@stage-jbang-launcher-versions</preparationGoals> | |
| <completionGoals>-N antrun:run@sync-jbang-launcher-versions antrun:run@stage-jbang-launcher-versions</completionGoals> | |
| </configuration> | |
| </plugin> | |
| <plugin> | |
| <groupId>de.thetaphi</groupId> | |
| <artifactId>forbiddenapis</artifactId> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| <profiles> | |
| <!-- Default profile: auto-format code and sort imports --> | |
| <profile> | |
| <id>format</id> | |
| <activation> | |
| <activeByDefault>true</activeByDefault> | |
| </activation> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <groupId>net.revelc.code</groupId> | |
| <artifactId>impsort-maven-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>sort-imports</id> | |
| <goals> | |
| <goal>sort</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>net.revelc.code.formatter</groupId> | |
| <artifactId>formatter-maven-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>format</id> | |
| <goals> | |
| <goal>format</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| <!-- CI profile: check formatting and imports without modifying code --> | |
| <profile> | |
| <id>sourcecheck</id> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <groupId>net.revelc.code</groupId> | |
| <artifactId>impsort-maven-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>sort-imports</id> | |
| <phase>none</phase> | |
| </execution> | |
| <execution> | |
| <id>check-imports</id> | |
| <phase>validate</phase> | |
| <goals> | |
| <goal>check</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <plugin> | |
| <groupId>net.revelc.code.formatter</groupId> | |
| <artifactId>formatter-maven-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>format</id> | |
| <phase>none</phase> | |
| </execution> | |
| <execution> | |
| <id>validate-format</id> | |
| <phase>validate</phase> | |
| <goals> | |
| <goal>validate</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| <!-- Error Prone: compile-time bug detection --> | |
| <profile> | |
| <id>errorprone</id> | |
| <build> | |
| <plugins> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-compiler-plugin</artifactId> | |
| <configuration> | |
| <compilerArgs> | |
| <arg>-XDcompilePolicy=simple</arg> | |
| <arg>-Xplugin:ErrorProne</arg> | |
| </compilerArgs> | |
| <annotationProcessorPaths> | |
| <path> | |
| <groupId>com.google.errorprone</groupId> | |
| <artifactId>error_prone_core</artifactId> | |
| <version>${error-prone.version}</version> | |
| </path> | |
| </annotationProcessorPaths> | |
| </configuration> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| <profile> | |
| <id>release</id> | |
| <build> | |
| <plugins> | |
| <!-- Attach source JARs --> | |
| <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> | |
| <!-- Attach Javadoc JARs --> | |
| <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> | |
| <doclint>none</doclint> | |
| <quiet>true</quiet> | |
| <failOnError>false</failOnError> | |
| <failOnWarnings>false</failOnWarnings> | |
| </configuration> | |
| </plugin> | |
| <!-- Sign artifacts with GPG --> | |
| <plugin> | |
| <groupId>org.apache.maven.plugins</groupId> | |
| <artifactId>maven-gpg-plugin</artifactId> | |
| <executions> | |
| <execution> | |
| <id>sign-artifacts</id> | |
| <phase>verify</phase> | |
| <goals> | |
| <goal>sign</goal> | |
| </goals> | |
| </execution> | |
| </executions> | |
| </plugin> | |
| <!-- Central Publishing Maven Plugin --> | |
| <plugin> | |
| <groupId>org.sonatype.central</groupId> | |
| <artifactId>central-publishing-maven-plugin</artifactId> | |
| <version>0.9.0</version> | |
| <extensions>true</extensions> | |
| <configuration> | |
| <publishingServerId>central</publishingServerId> | |
| <autoPublish>true</autoPublish> | |
| <waitUntil>published</waitUntil> | |
| </configuration> | |
| </plugin> | |
| </plugins> | |
| </build> | |
| </profile> | |
| </profiles> | |
| </project> |