Repository: camel Updated Branches: refs/heads/boot2 36220ef46 -> 251be6e48
http://git-wip-us.apache.org/repos/asf/camel/blob/52e53f11/platforms/spring-boot/spring-boot-dm/pom.xml ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/spring-boot-dm/pom.xml b/platforms/spring-boot/spring-boot-dm/pom.xml index 9dcf0f9..e384a53 100644 --- a/platforms/spring-boot/spring-boot-dm/pom.xml +++ b/platforms/spring-boot/spring-boot-dm/pom.xml @@ -41,123 +41,4 @@ <module>camel-starter-parent</module> </modules> - <properties> - <!-- Spring-Boot target version --> - <spring-boot-version>1.5.6.RELEASE</spring-boot-version> - - <!-- The following dependencies should be aligned with the ones in standard camel parent --> - <avro-version>1.8.1</avro-version> - <cassandra-driver-guava-version>18.0</cassandra-driver-guava-version> - <jackson-version>1.9.12</jackson-version> - - <egit-github-core-version>2.1.5</egit-github-core-version> - <google-guava-version>19.0</google-guava-version> - <lucene3-version>3.6.0</lucene3-version> - <scala-version>2.11.7</scala-version> - <scalaxml-version>1.0.4</scalaxml-version> - - <maven-checkstyle-plugin-version>2.17</maven-checkstyle-plugin-version> - <maven-checkstyle-version>7.6.1</maven-checkstyle-version> - - <arquillian-version>1.1.13.Final</arquillian-version> - <hadoop2-version>2.7.2</hadoop2-version> - - <!-- Custom dependency required by some modules --> - <ahc-netty-version>4.0.46.Final</ahc-netty-version> - <cassandra-netty-version-testing>4.0.44.Final</cassandra-netty-version-testing> - <infinispan-spring-boot-version>1.0.0.Final</infinispan-spring-boot-version> - <groovy-version>2.4.10</groovy-version> - - <!-- The following versions should be aligned with the ones in spring-boot-repo/spring-boot-dependencies/pom.xml (for the targeted version of spring-boot) --> - <!-- for example: https://github.com/spring-projects/spring-boot/blob/v1.5.6.RELEASE/spring-boot-dependencies/pom.xml --> - <jackson2-version>2.8.8</jackson2-version> - <scala-jackson2-version>2.8.9</scala-jackson2-version> - <jetty9-version>9.4.6.v20170531</jetty9-version> - <jetty-version>${jetty9-version}</jetty-version> - <jna-version>4.2.2</jna-version> - <hazelcast-version>3.7.8</hazelcast-version> - <htmlunit-version>2.21</htmlunit-version> - <log4j2-version>2.7</log4j2-version> - <slf4j-version>1.7.25</slf4j-version> - <spring-version>4.3.10.RELEASE</spring-version> - <spring-data-releasetrain-version>Ingalls-SR6</spring-data-releasetrain-version> - <spring-integration-version>4.3.11.RELEASE</spring-integration-version> - <spring-security-version>4.2.3.RELEASE</spring-security-version> - </properties> - - <build> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-checkstyle-plugin</artifactId> - <version>${maven-checkstyle-plugin-version}</version> - <dependencies> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-buildtools</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.puppycrawl.tools</groupId> - <artifactId>checkstyle</artifactId> - <version>${maven-checkstyle-version}</version> - </dependency> - </dependencies> - <executions> - <execution> - <id>default-cli</id> - <phase>validate</phase> - <configuration> - <includeResources>false</includeResources> - <configLocation>camel-checkstyle.xml</configLocation> - <consoleOutput>true</consoleOutput> - <failsOnError>true</failsOnError> - <linkXRef>false</linkXRef> - <suppressionsLocation>camel-checkstyle-suppressions.xml</suppressionsLocation> - <encoding>UTF-8</encoding> - <sourceDirectory>${basedir}/src</sourceDirectory> - <excludes>**/archetype-resources/**/*.java</excludes> - </configuration> - <goals> - <goal>checkstyle</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>${maven-compiler-plugin-version}</version> - <configuration> - <source>${jdk.version}</source> - <target>${jdk.version}</target> - <maxmem>512M</maxmem> - <fork>${compiler.fork}</fork> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <configuration> - <attach>true</attach> - <source>${jdk.version}</source> - <quiet>true</quiet> - <bottom>Apache Camel</bottom> - <detectOfflineLinks>false</detectOfflineLinks> - <javadocVersion>${jdk.version}</javadocVersion> - <encoding>UTF-8</encoding> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <configuration> - <encoding>UTF-8</encoding> - </configuration> - </plugin> - - </plugins> - </build> - </project> http://git-wip-us.apache.org/repos/asf/camel/blob/52e53f11/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java index 9bfcb2a..3f47f15 100644 --- a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java +++ b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java @@ -385,21 +385,50 @@ public class BomGeneratorMojo extends AbstractMojo { } private Set<String> getProvidedDependencyManagement(String groupId, String artifactId, String version) throws Exception { + return getProvidedDependencyManagement(groupId, artifactId, version, new TreeSet<>()); + } + + private Set<String> getProvidedDependencyManagement(String groupId, String artifactId, String version, Set<String> gaChecked) throws Exception { + String ga = groupId + ":" + artifactId; + gaChecked.add(ga); Artifact bom = resolveArtifact(groupId, artifactId, version, "pom"); MavenProject bomProject = loadExternalProjectPom(bom.getFile()); Set<String> provided = new HashSet<>(); if (bomProject.getDependencyManagement() != null && bomProject.getDependencyManagement().getDependencies() != null) { for (Dependency dep : bomProject.getDependencyManagement().getDependencies()) { - provided.add(comparisonKey(dep)); + if ("pom".equals(dep.getType()) && "import".equals(dep.getScope())) { + String subGa = dep.getGroupId() + ":" + dep.getArtifactId(); + if (!gaChecked.contains(subGa)) { + Set<String> sub = getProvidedDependencyManagement(dep.getGroupId(), dep.getArtifactId(), resolveVersion(bomProject, dep.getVersion()), gaChecked); + provided.addAll(sub); + } + } else { + provided.add(comparisonKey(dep)); + } } } return provided; } + private String resolveVersion(MavenProject project, String version) { + if (version.contains("${")) { + int start = version.indexOf("${"); + int end = version.indexOf("}"); + if (end > start) { + String prop = version.substring(start + 2, end); + String resolved = project.getProperties().getProperty(prop); + if (resolved != null) { + version = version.substring(0, start) + resolved + version.substring(end + 1); + } + } + } + return version; + } + private String comparisonKey(Dependency dependency) { - return dependency.getGroupId() + ":" + dependency.getArtifactId(); + return dependency.getGroupId() + ":" + dependency.getArtifactId() + ":" + (dependency.getType() != null ? dependency.getType() : "jar"); } private Artifact resolveArtifact(String groupId, String artifactId, String version, String type) throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/52e53f11/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java index ac480d6..3879f1c 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java +++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java @@ -222,6 +222,13 @@ public class SpringBootStarterMojo extends AbstractMojo { } } + Set<String> optionalProps = csvToSet(properties.getProperty("optional")); + for (String gp : optionalProps) { + String[] comps = gp.split("\\:"); + String stdName = (comps[0] + ":" + comps[1]); + optionalProps.add(stdName); + } + if (!inGlobal) { // add global properties for all modules not in global properties deps.addAll(globalProps); @@ -243,6 +250,7 @@ public class SpringBootStarterMojo extends AbstractMojo { String groupIdStr = comps[0]; String artifactIdStr = comps[1]; String versionStr = comps.length > 2 ? comps[2] : null; + boolean optionalDep = optionalProps.contains(groupIdStr + ":" + artifactIdStr); Element groupId = pom.createElement("groupId"); groupId.setTextContent(groupIdStr); @@ -258,6 +266,12 @@ public class SpringBootStarterMojo extends AbstractMojo { dependency.appendChild(version); } + if (optionalDep) { + Element optional = pom.createElement("optional"); + optional.setTextContent("true"); + dependency.appendChild(optional); + } + } dependencies.appendChild(pom.createComment(GENERATED_SECTION_END)); } http://git-wip-us.apache.org/repos/asf/camel/blob/52e53f11/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties ---------------------------------------------------------------------- diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties b/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties index 47472e8..5d1e8c6 100644 --- a/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties +++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties @@ -19,49 +19,54 @@ # Global dependencies included in all modules (except the ones in the list) -global=org.apache.camel:camel-core-starter,org.apache.camel:camel-spring-boot-starter - -camel-ahc=io.netty:netty-all:${ahc-netty-version} -camel-ahc-ws=io.netty:netty-all:${ahc-netty-version} - -camel-bam=org.hibernate:hibernate-entitymanager,org.apache.geronimo.specs:geronimo-jta_1.1_spec - -# we need spring-boot in camel-core-starter -camel-core=org.apache.camel:camel-spring-boot - -camel-cassandraql=com.google.guava:guava:${cassandra-driver-guava-version} - -camel-github=org.eclipse.mylyn.github:org.eclipse.egit.github.core:${egit-github-core-version} -camel-guava-eventbus=com.google.guava:guava:${google-guava-version} - -# Defaulting to netty4 in the starter -camel-hl7=org.apache.camel:camel-netty4:${project.version} - -# Camel Core requires on APT for the usage of CollectionStringBuffer. -# Remove this dependency if it was a mistake -camel-jetty9=org.apache.camel:apt:${project.version} -camel-jbpm=org.apache.geronimo.specs:geronimo-jms_1.1_spec -camel-jcr=org.apache.lucene:lucene-core:${lucene3-version} -camel-jira=com.atlassian.jira:jira-rest-java-client -camel-jms=org.apache.geronimo.specs:geronimo-jms_1.1_spec -camel-jpa=org.apache.geronimo.specs:geronimo-jpa_2.1_spec -camel-kubernetes=org.hibernate:hibernate-validator - -camel-scala=org.scala-lang:scala-library:${scala-version},org.scala-lang.modules:scala-xml_2.11:${scalaxml-version} - -camel-sjms=org.apache.geronimo.specs:geronimo-jms_1.1_spec -camel-sjms2=org.apache.geronimo.specs:geronimo-jms_2.0_spec -camel-spring-boot=org.apache.camel:camel-core-starter -camel-spring-boot2=org.apache.camel:camel-core-starter -camel-spring-ws=org.springframework.boot:spring-boot-starter-web:${spring-boot-version} - -# Force the spring-boot version of jetty -camel-salesforce=org.eclipse.jetty:jetty-client,org.eclipse.jetty:jetty-util,org.eclipse.jetty:jetty-util-ajax,org.eclipse.jetty:jetty-io - -camel-servletlistener=javax.servlet:javax.servlet-api - -camel-swagger-java=org.hibernate:hibernate-validator - - -# Existed for Netty 3 -exclude_camel-hbase=io.netty:netty +global=org.apache.camel:camel-core-starter,org.apache.camel:camel-spring-boot +optional=org.apache.camel:camel-spring-boot + +# Specific configurations should be done in the starters + + +## we need spring-boot in camel-core-starter +#camel-core=org.apache.camel:camel-spring-boot +# +#camel-ahc=io.netty:netty-all:${ahc-netty-version} +#camel-ahc-ws=io.netty:netty-all:${ahc-netty-version} +# +#camel-bam=org.hibernate:hibernate-entitymanager,org.apache.geronimo.specs:geronimo-jta_1.1_spec +# +# +#camel-cassandraql=com.google.guava:guava:${cassandra-driver-guava-version} +# +#camel-github=org.eclipse.mylyn.github:org.eclipse.egit.github.core:${egit-github-core-version} +#camel-guava-eventbus=com.google.guava:guava:${google-guava-version} +# +## Defaulting to netty4 in the starter +#camel-hl7=org.apache.camel:camel-netty4:${project.version} +# +## Camel Core requires on APT for the usage of CollectionStringBuffer. +## Remove this dependency if it was a mistake +#camel-jetty9=org.apache.camel:apt:${project.version} +#camel-jbpm=org.apache.geronimo.specs:geronimo-jms_1.1_spec +#camel-jcr=org.apache.lucene:lucene-core:${lucene3-version} +#camel-jira=com.atlassian.jira:jira-rest-java-client +#camel-jms=org.apache.geronimo.specs:geronimo-jms_1.1_spec +#camel-jpa=org.apache.geronimo.specs:geronimo-jpa_2.1_spec +#camel-kubernetes=org.hibernate:hibernate-validator +# +#camel-scala=org.scala-lang:scala-library:${scala-version},org.scala-lang.modules:scala-xml_2.11:${scalaxml-version} +# +#camel-sjms=org.apache.geronimo.specs:geronimo-jms_1.1_spec +#camel-sjms2=org.apache.geronimo.specs:geronimo-jms_2.0_spec +#camel-spring-boot=org.apache.camel:camel-core-starter +#camel-spring-boot2=org.apache.camel:camel-core-starter +#camel-spring-ws=org.springframework.boot:spring-boot-starter-web:${spring-boot-version} +# +## Force the spring-boot version of jetty +#camel-salesforce=org.eclipse.jetty:jetty-client,org.eclipse.jetty:jetty-util,org.eclipse.jetty:jetty-util-ajax,org.eclipse.jetty:jetty-io +# +#camel-servletlistener=javax.servlet:javax.servlet-api +# +#camel-swagger-java=org.hibernate:hibernate-validator +# +# +## Existed for Netty 3 +#exclude_camel-hbase=io.netty:netty
