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

Reply via email to