You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/02/13 12:33:21 UTC

[1/2] camel git commit: CAMEL-10819: Generate list of examples to keep it up to date always.

Repository: camel
Updated Branches:
  refs/heads/master 5f0b1f41e -> 590a8c3db


http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring/src/main/java/org/apache/camel/example/spring/MyRouteBuilder.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring/src/main/java/org/apache/camel/example/spring/MyRouteBuilder.java b/examples/camel-example-spring/src/main/java/org/apache/camel/example/spring/MyRouteBuilder.java
index 0921ec7..877807b 100644
--- a/examples/camel-example-spring/src/main/java/org/apache/camel/example/spring/MyRouteBuilder.java
+++ b/examples/camel-example-spring/src/main/java/org/apache/camel/example/spring/MyRouteBuilder.java
@@ -39,7 +39,7 @@ public class MyRouteBuilder extends RouteBuilder {
                 to("jms:test.MyQueue");
 
         from("jms:test.MyQueue").
-                to("file://target/test?noop=true");
+                to("file://target/test");
 
         // set up a listener on the file component
         from("file://target/test?noop=true").

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-sql-blueprint/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-sql-blueprint/pom.xml b/examples/camel-example-sql-blueprint/pom.xml
index 84acacd..b6f9c30 100644
--- a/examples/camel-example-sql-blueprint/pom.xml
+++ b/examples/camel-example-sql-blueprint/pom.xml
@@ -32,6 +32,9 @@
   <description>An example for showing Camel using SQL component with blueprint</description>
 
   <properties>
+    <category>OSGi</category>
+    <title>SQL Blueprint</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.sql.*</camel.osgi.export.pkg>
     <!-- dynamic import for the Derby JDBC driver -->
     <camel.osgi.dynamic>*</camel.osgi.dynamic>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-sql/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-sql/pom.xml b/examples/camel-example-sql/pom.xml
index 791bd86..0d478c6 100644
--- a/examples/camel-example-sql/pom.xml
+++ b/examples/camel-example-sql/pom.xml
@@ -32,6 +32,9 @@
   <description>An example for showing Camel using SQL component</description>
 
   <properties>
+    <category>Database</category>
+    <title>SQL</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.sql.*</camel.osgi.export.pkg>
     <!-- dynamic import for the Derby JDBC driver -->
     <camel.osgi.dynamic>*</camel.osgi.dynamic>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-ssh-security/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-ssh-security/pom.xml b/examples/camel-example-ssh-security/pom.xml
index 637fd8b..9cb21f1 100644
--- a/examples/camel-example-ssh-security/pom.xml
+++ b/examples/camel-example-ssh-security/pom.xml
@@ -33,6 +33,9 @@
   </description>
 
   <properties>
+    <category>OSGi</category>
+    <title>SSH Security</title>
+
     <camel.osgi.export.pkg/>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-ssh/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-ssh/pom.xml b/examples/camel-example-ssh/pom.xml
index 1dc634d..5735194 100644
--- a/examples/camel-example-ssh/pom.xml
+++ b/examples/camel-example-ssh/pom.xml
@@ -32,6 +32,9 @@
   <description>A simple SSH example which creates a bundle that can be dropped into any OSGi container</description>
 
   <properties>
+    <category>OSGi</category>
+    <title>SSH</title>
+
     <camel.osgi.export.pkg/>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-swagger-cdi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-swagger-cdi/pom.xml b/examples/camel-example-swagger-cdi/pom.xml
index 68b19c8..19bb1f0 100644
--- a/examples/camel-example-swagger-cdi/pom.xml
+++ b/examples/camel-example-swagger-cdi/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Swagger :: CDI</name>
   <description>An example using REST DSL and Swagger Java with CDI</description>
 
+  <properties>
+    <category>Rest</category>
+    <title>Swagger CDI</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-swagger-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-swagger-osgi/pom.xml b/examples/camel-example-swagger-osgi/pom.xml
index d8254bd..69b1e05 100755
--- a/examples/camel-example-swagger-osgi/pom.xml
+++ b/examples/camel-example-swagger-osgi/pom.xml
@@ -31,6 +31,11 @@
   <description>An example using REST DSL in XML and Swagger API</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>OSGi</category>
+    <title>Swagger OSGi</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-swagger-xml/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-swagger-xml/pom.xml b/examples/camel-example-swagger-xml/pom.xml
index 3c0f600..3c2ad0c 100755
--- a/examples/camel-example-swagger-xml/pom.xml
+++ b/examples/camel-example-swagger-xml/pom.xml
@@ -32,6 +32,9 @@
   <packaging>war</packaging>
 
   <properties>
+    <category>Rest</category>
+    <title>Swagger XML</title>
+
     <swagger-ui.version>2.2.6</swagger-ui.version>
     <swagger.url>https://github.com/swagger-api/swagger-ui/archive</swagger.url>
     <destDir>target/swagger-ui</destDir>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-tracer/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-tracer/pom.xml b/examples/camel-example-tracer/pom.xml
index 1ec4f7f..978d123 100644
--- a/examples/camel-example-tracer/pom.xml
+++ b/examples/camel-example-tracer/pom.xml
@@ -32,6 +32,8 @@
   <description>An example showing how to persist Camel trace event messages using JPA</description>
 
   <properties>
+    <category>Management and Monitoring</category>
+
     <camel.osgi.export.pkg>org.apache.camel.example.tracer</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-transformer-blueprint/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-transformer-blueprint/pom.xml b/examples/camel-example-transformer-blueprint/pom.xml
index 48015ea..a74cc08 100644
--- a/examples/camel-example-transformer-blueprint/pom.xml
+++ b/examples/camel-example-transformer-blueprint/pom.xml
@@ -28,7 +28,12 @@
   <artifactId>camel-example-transformer-blueprint</artifactId>
   <packaging>bundle</packaging>
   <name>Camel :: Example :: Transformer :: Blueprint</name>
-  <description>An example demonstrating declarative transformation along data type declaration using Blueprint DSL</description>
+  <description>An example demonstrating declarative transformation along data type declaration using OSGi Blueprint XML</description>
+
+  <properties>
+    <category>Input/Output Type Contract</category>
+    <title>Transformer OSGi Blueprint</title>
+  </properties>
 
   <dependencies>
     <!-- START SNIPPET: e1 -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-transformer-cdi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-transformer-cdi/pom.xml b/examples/camel-example-transformer-cdi/pom.xml
index 10c178d..48861ba 100644
--- a/examples/camel-example-transformer-cdi/pom.xml
+++ b/examples/camel-example-transformer-cdi/pom.xml
@@ -31,6 +31,11 @@
   <description>An example demonstrating declarative transformation along data type declaration using Java DSL and CDI
   </description>
 
+  <properties>
+    <category>Input/Output Type Contract</category>
+    <title>Transformer CDI</title>
+  </properties>
+
   <dependencies>
     <!-- START SNIPPET: e1 -->
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-transformer-demo/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-transformer-demo/pom.xml b/examples/camel-example-transformer-demo/pom.xml
index df6e1dd..af3759c 100644
--- a/examples/camel-example-transformer-demo/pom.xml
+++ b/examples/camel-example-transformer-demo/pom.xml
@@ -30,6 +30,11 @@
   <description>An example demonstrating declarative transformation along data type declaration using Spring DSL</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Input/Output Type Contract</category>
+    <title>Transformer Spring XML</title>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-twitter-salesforce/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-twitter-salesforce/pom.xml b/examples/camel-example-twitter-salesforce/pom.xml
index 701be62..641dd9a 100644
--- a/examples/camel-example-twitter-salesforce/pom.xml
+++ b/examples/camel-example-twitter-salesforce/pom.xml
@@ -32,6 +32,8 @@
   <description>Twitter mentions is created as contacts in Salesforce</description>
 
   <properties>
+    <category>Social</category>
+
     <spring.boot-version>${spring-boot-version}</spring.boot-version>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-twitter-websocket-blueprint/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-twitter-websocket-blueprint/pom.xml b/examples/camel-example-twitter-websocket-blueprint/pom.xml
index 9465d63..0659d9b 100644
--- a/examples/camel-example-twitter-websocket-blueprint/pom.xml
+++ b/examples/camel-example-twitter-websocket-blueprint/pom.xml
@@ -32,6 +32,8 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>Social</category>
+
     <camel.osgi.import.pkg>
       *
     </camel.osgi.import.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-twitter-websocket/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-twitter-websocket/pom.xml b/examples/camel-example-twitter-websocket/pom.xml
index 199a4dd..5bbf57d 100644
--- a/examples/camel-example-twitter-websocket/pom.xml
+++ b/examples/camel-example-twitter-websocket/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Twitter WebSocket</name>
   <description>An example that pushes new tweets to a web page using web-socket</description>
 
+  <properties>
+    <category>Social</category>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-widget-gadget-cdi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-widget-gadget-cdi/pom.xml b/examples/camel-example-widget-gadget-cdi/pom.xml
index ffeeb0c..22fbd1b 100755
--- a/examples/camel-example-widget-gadget-cdi/pom.xml
+++ b/examples/camel-example-widget-gadget-cdi/pom.xml
@@ -31,6 +31,11 @@
   <description>The widget and gadget example from the EIP book</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Widget Gadget CDI</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-widget-gadget-java/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-widget-gadget-java/pom.xml b/examples/camel-example-widget-gadget-java/pom.xml
index 0faf6bd..762ebca 100755
--- a/examples/camel-example-widget-gadget-java/pom.xml
+++ b/examples/camel-example-widget-gadget-java/pom.xml
@@ -31,6 +31,11 @@
   <description>The widget and gadget example from the EIP book</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Widget Gadget Java</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-widget-gadget-xml/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-widget-gadget-xml/pom.xml b/examples/camel-example-widget-gadget-xml/pom.xml
index ed91220..fbc25c6 100755
--- a/examples/camel-example-widget-gadget-xml/pom.xml
+++ b/examples/camel-example-widget-gadget-xml/pom.xml
@@ -31,6 +31,11 @@
   <description>The widget and gadget example from the EIP book</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Widget Gadget XML</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-zipkin/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-zipkin/pom.xml b/examples/camel-example-zipkin/pom.xml
index e8c83e2..a6c1389 100644
--- a/examples/camel-example-zipkin/pom.xml
+++ b/examples/camel-example-zipkin/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Zipkin</name>
   <description>An example showing how to trace incoming and outgoing messages from Camel with Zipkin</description>
 
+  <properties>
+    <category>Management and Monitoring</category>
+  </properties>
+
   <modules>
     <module>client</module>
     <module>service1</module>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index afb9008..62d922c 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -62,7 +62,7 @@
     <module>camel-example-jdbc</module>
     <module>camel-example-jmx</module>
     <module>camel-example-jms-file</module>
-	<module>camel-example-kafka</module>
+	  <module>camel-example-kafka</module>
     <module>camel-example-loadbalancing</module>
     <module>camel-example-loan-broker-cxf</module>
     <module>camel-example-loan-broker-jms</module>
@@ -144,6 +144,21 @@
         </executions>
       </plugin>
 
+      <!-- update readme file -->
+      <plugin>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-package-maven-plugin</artifactId>
+        <version>${project.version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>prepare-example</goal>
+            </goals>
+            <phase>process-resources</phase>
+          </execution>
+        </executions>
+      </plugin>
+
       <!-- to validate Camel endpoints: mvn camel:validate -->
       <plugin>
         <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java
new file mode 100644
index 0000000..5e05acd
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PrepareExampleMojo.java
@@ -0,0 +1,227 @@
+/**
+ * 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.
+ */
+package org.apache.camel.maven.packaging;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+import edu.emory.mathcs.backport.java.util.Collections;
+import org.apache.camel.maven.packaging.model.ExampleModel;
+import org.apache.commons.io.FileUtils;
+import org.apache.maven.plugin.AbstractMojo;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
+import org.apache.maven.project.MavenProjectHelper;
+import org.mvel2.templates.TemplateRuntime;
+
+import static org.apache.camel.maven.packaging.PackageHelper.loadText;
+import static org.apache.camel.maven.packaging.PackageHelper.writeText;
+
+/**
+ * Prepares the readme.md files content up to date with all the examples that Apache Camel ships.
+ *
+ * @goal prepare-example
+ */
+public class PrepareExampleMojo extends AbstractMojo {
+
+    /**
+     * The maven project.
+     *
+     * @parameter property="project"
+     * @required
+     * @readonly
+     */
+    protected MavenProject project;
+
+    /**
+     * Maven ProjectHelper.
+     *
+     * @component
+     * @readonly
+     */
+    private MavenProjectHelper projectHelper;
+
+    /**
+     * Execute goal.
+     *
+     * @throws MojoExecutionException execution of the main class or one of the
+     *                                                        threads it generated failed.
+     * @throws MojoFailureException   something bad happened...
+     */
+    public void execute() throws MojoExecutionException, MojoFailureException {
+        executeExamplesReadme();
+    }
+
+    protected void executeExamplesReadme() throws MojoExecutionException, MojoFailureException {
+        Set<File> examples = new TreeSet<>();
+
+        File dir = new File(".");
+        File[] files = dir.listFiles();
+        if (files != null) {
+            examples.addAll(Arrays.asList(files));
+        }
+
+        try {
+            List<ExampleModel> models = new ArrayList<>();
+
+            for (File file : examples) {
+
+                if (file.isDirectory() && file.getName().startsWith("camel-example")) {
+                    File pom = new File(file, "pom.xml");
+                    String existing = FileUtils.readFileToString(pom);
+
+                    ExampleModel model = new ExampleModel();
+                    model.setFileName(file.getName());
+
+                    String name = StringHelper.between(existing, "<name>", "</name>");
+                    String title = StringHelper.between(existing, "<title>", "</title>");
+                    String description = StringHelper.between(existing, "<description>", "</description>");
+                    String category = StringHelper.between(existing, "<category>", "</category>");
+
+                    if (title != null) {
+                        model.setTitle(title);
+                    } else {
+                        // fallback and use file name as title
+                        model.setTitle(asTitle(file.getName()));
+                    }
+                    if (description != null) {
+                        model.setDescription(description);
+                    }
+                    if (category != null) {
+                        model.setCategory(category);
+                    }
+                    if (name != null && name.contains("(deprecated)")) {
+                        model.setDeprecated("true");
+                    } else {
+                        model.setDeprecated("false");
+                    }
+
+                    // readme files is either readme.md or readme.adoc
+                    String[] readmes = new File(file, ".").list((folder, fileName) -> fileName.toLowerCase().startsWith("readme"));
+                    if (readmes != null && readmes.length == 1) {
+                        model.setReadmeFileName(readmes[0]);
+                    }
+
+                    models.add(model);
+                }
+            }
+
+            // sort the models
+            Collections.sort(models, new ExampleComparator());
+
+            // update the big readme file in the examples dir
+            File file = new File(".", "README.adoc");
+
+            // update regular components
+            boolean exists = file.exists();
+            String changed = templateExamples(models);
+            boolean updated = updateExamples(file, changed);
+
+            if (updated) {
+                getLog().info("Updated readme.adoc file: " + file);
+            } else if (exists) {
+                getLog().debug("No changes to readme.adoc file: " + file);
+            } else {
+                getLog().warn("No readme.adoc file: " + file);
+            }
+
+        } catch (IOException e) {
+            throw new MojoFailureException("Error due " + e.getMessage(), e);
+        }
+    }
+
+    private String templateExamples(List<ExampleModel> models) throws MojoExecutionException {
+        try {
+            String template = loadText(ReadmeComponentMojo.class.getClassLoader().getResourceAsStream("readme-examples.mvel"));
+            Map<String, Object> map = new HashMap<>();
+            map.put("examples", models);
+            String out = (String) TemplateRuntime.eval(template, map);
+            return out;
+        } catch (Exception e) {
+            throw new MojoExecutionException("Error processing mvel template. Reason: " + e, e);
+        }
+    }
+
+    private boolean updateExamples(File file, String changed) throws MojoExecutionException {
+        if (!file.exists()) {
+            return false;
+        }
+
+        try {
+            String text = loadText(new FileInputStream(file));
+
+            String existing = StringHelper.between(text, "// examples: START", "// examples: END");
+            if (existing != null) {
+                // remove leading line breaks etc
+                existing = existing.trim();
+                changed = changed.trim();
+                if (existing.equals(changed)) {
+                    return false;
+                } else {
+                    String before = StringHelper.before(text, "// examples: START");
+                    String after = StringHelper.after(text, "// examples: END");
+                    text = before + "// examples: START\n" + changed + "\n// examples: END" + after;
+                    writeText(file, text);
+                    return true;
+                }
+            } else {
+                getLog().warn("Cannot find markers in file " + file);
+                getLog().warn("Add the following markers");
+                getLog().warn("\t// examples: START");
+                getLog().warn("\t// examples: END");
+                return false;
+            }
+        } catch (Exception e) {
+            throw new MojoExecutionException("Error reading file " + file + " Reason: " + e, e);
+        }
+    }
+
+    private static class ExampleComparator implements Comparator<ExampleModel> {
+
+        @Override
+        public int compare(ExampleModel o1, ExampleModel o2) {
+            // lets sort by category first and then file afterwards
+            int num = o1.getCategory().compareToIgnoreCase(o2.getCategory());
+            if (num == 0) {
+                return o1.getFileName().compareToIgnoreCase(o2.getFileName());
+            } else {
+                return num;
+            }
+        }
+    }
+
+    private static String asTitle(String fileName) {
+        // skip camel-example
+        String answer = fileName.toLowerCase();
+        if (answer.startsWith("camel-example-")) {
+            answer = answer.substring(14);
+        }
+        answer = StringHelper.camelDashToTitle(answer);
+        return answer;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/ExampleModel.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/ExampleModel.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/ExampleModel.java
new file mode 100644
index 0000000..7f80fc3
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/model/ExampleModel.java
@@ -0,0 +1,79 @@
+/**
+ * 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.
+ */
+package org.apache.camel.maven.packaging.model;
+
+public class ExampleModel {
+
+    private String fileName;
+    private String title;
+    private String category = "";
+    private String description = "";
+    private String readmeFileName = "readme.md";
+    private String deprecated;
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getReadmeFileName() {
+        return readmeFileName;
+    }
+
+    public void setReadmeFileName(String readmeFileName) {
+        this.readmeFileName = readmeFileName;
+    }
+
+    public String getDeprecated() {
+        return deprecated;
+    }
+
+    public void setDeprecated(String deprecated) {
+        this.deprecated = deprecated;
+    }
+
+    public String getDocLink() {
+        return fileName + "/" + readmeFileName;
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/tooling/maven/camel-package-maven-plugin/src/main/resources/readme-examples.mvel
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/resources/readme-examples.mvel b/tooling/maven/camel-package-maven-plugin/src/main/resources/readme-examples.mvel
new file mode 100644
index 0000000..39c1ad5
--- /dev/null
+++ b/tooling/maven/camel-package-maven-plugin/src/main/resources/readme-examples.mvel
@@ -0,0 +1,12 @@
+@if{!examples.isEmpty()}
+
+Number of Examples: @{examples.size}
+
+[width="100%",cols="4,2,4",options="header"]
+|=======================================================================
+| Example | Category | Description
+@foreach{row : examples}
+| link:@{row.docLink}[@{row.title}] (@{row.fileName}) | @{row.category} | @if{row.deprecated == "true"}*deprecated* @end{}@{row.description}
+@end{}|=======================================================================
+
+@end{}
\ No newline at end of file


[2/2] camel git commit: CAMEL-10819: Generate list of examples to keep it up to date always.

Posted by da...@apache.org.
CAMEL-10819: Generate list of examples to keep it up to date always.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/590a8c3d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/590a8c3d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/590a8c3d

Branch: refs/heads/master
Commit: 590a8c3db4e46f2ba9962de67ccff9494896c784
Parents: 5f0b1f4
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Feb 13 13:33:12 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Feb 13 13:33:12 2017 +0100

----------------------------------------------------------------------
 examples/README.adoc                            | 205 +++++++++++++++++
 examples/README.md                              | 151 ------------
 examples/camel-example-activemq-tomcat/pom.xml  |   5 +
 examples/camel-example-aggregate/pom.xml        |   1 +
 examples/camel-example-bam/pom.xml              |   5 +-
 examples/camel-example-box-osgi/pom.xml         |   5 +-
 examples/camel-example-cafe/pom.xml             |   1 +
 examples/camel-example-cdi-aws-s3/pom.xml       |   5 +
 examples/camel-example-cdi-cassandraql/pom.xml  |   5 +
 examples/camel-example-cdi-kubernetes/pom.xml   |   5 +
 examples/camel-example-cdi-metrics/pom.xml      |   5 +
 examples/camel-example-cdi-osgi/pom.xml         |   5 +
 examples/camel-example-cdi-properties/pom.xml   |   3 +
 examples/camel-example-cdi-rest-servlet/pom.xml |   5 +
 examples/camel-example-cdi-test/pom.xml         |   6 +
 examples/camel-example-cdi-xml/pom.xml          |   5 +
 examples/camel-example-cdi/pom.xml              |   5 +
 examples/camel-example-console/pom.xml          |   4 +
 examples/camel-example-cxf-blueprint/pom.xml    |   3 +
 examples/camel-example-cxf-osgi/pom.xml         |   3 +
 examples/camel-example-cxf-proxy/pom.xml        |   3 +
 examples/camel-example-cxf-tomcat/pom.xml       |   5 +
 examples/camel-example-cxf/pom.xml              |   3 +
 examples/camel-example-etl/pom.xml              |   3 +
 examples/camel-example-ftp/pom.xml              |   5 +
 examples/camel-example-groovy/pom.xml           |   4 +
 examples/camel-example-guice-jms/pom.xml        |   7 +-
 examples/camel-example-hystrix/pom.xml          |   4 +
 examples/camel-example-java8-rx/pom.xml         |   5 +
 examples/camel-example-java8/pom.xml            |   4 +
 examples/camel-example-jdbc/pom.xml             |   2 +
 examples/camel-example-jms-file/pom.xml         |   5 +
 examples/camel-example-jmx/pom.xml              |   3 +
 examples/camel-example-kafka/pom.xml            | 192 ++++++++--------
 examples/camel-example-kotlin/pom.xml           |   1 +
 examples/camel-example-loadbalancing/pom.xml    |   5 +
 examples/camel-example-loan-broker-cxf/pom.xml  |   3 +
 examples/camel-example-loan-broker-jms/pom.xml  |   7 +-
 examples/camel-example-management/pom.xml       |   2 +
 examples/camel-example-mybatis/pom.xml          |   3 +
 examples/camel-example-netty-http/pom.xml       |   3 +
 examples/camel-example-osgi-rmi/pom.xml         |   3 +
 examples/camel-example-pojo-messaging/pom.xml   |   3 +
 examples/camel-example-reactive-streams/pom.xml | 196 +++++++++-------
 examples/camel-example-reload/pom.xml           |   5 +
 .../pom.xml                                     |   5 +-
 examples/camel-example-reportincident/pom.xml   |   7 +-
 examples/camel-example-restlet-jdbc/pom.xml     |   5 +
 examples/camel-example-route-throttling/pom.xml |   2 +
 examples/camel-example-scala/pom.xml            |   4 +
 .../pom.xml                                     |   3 +
 .../pom.xml                                     |   5 +
 examples/camel-example-servlet-tomcat/pom.xml   |   5 +
 examples/camel-example-simplejirabot/pom.xml    |   3 +
 examples/camel-example-spark-rest/pom.xml       |   5 +
 examples/camel-example-splunk/pom.xml           |   4 +
 .../pom.xml                                     |   3 +
 .../springboot/livereload/LiveReloadRouter.java |   6 +-
 .../camel-example-spring-boot-metrics/pom.xml   |   2 +
 .../camel-example-spring-boot-rest-jpa/pom.xml  |   8 +-
 examples/camel-example-spring-boot/pom.xml      |   2 +
 examples/camel-example-spring-dm/pom.xml        |   5 +-
 .../camel-example-spring-javaconfig/pom.xml     |   5 +
 examples/camel-example-spring-jms/pom.xml       |   7 +-
 examples/camel-example-spring-security/pom.xml  |   4 +
 examples/camel-example-spring-ws/pom.xml        |   5 +
 examples/camel-example-spring-xquery/pom.xml    |   3 +
 examples/camel-example-spring/pom.xml           |   2 +
 .../camel/example/spring/MyRouteBuilder.java    |   2 +-
 examples/camel-example-sql-blueprint/pom.xml    |   3 +
 examples/camel-example-sql/pom.xml              |   3 +
 examples/camel-example-ssh-security/pom.xml     |   3 +
 examples/camel-example-ssh/pom.xml              |   3 +
 examples/camel-example-swagger-cdi/pom.xml      |   5 +
 examples/camel-example-swagger-osgi/pom.xml     |   5 +
 examples/camel-example-swagger-xml/pom.xml      |   3 +
 examples/camel-example-tracer/pom.xml           |   2 +
 .../camel-example-transformer-blueprint/pom.xml |   7 +-
 examples/camel-example-transformer-cdi/pom.xml  |   5 +
 examples/camel-example-transformer-demo/pom.xml |   5 +
 .../camel-example-twitter-salesforce/pom.xml    |   2 +
 .../pom.xml                                     |   2 +
 .../camel-example-twitter-websocket/pom.xml     |   4 +
 .../camel-example-widget-gadget-cdi/pom.xml     |   5 +
 .../camel-example-widget-gadget-java/pom.xml    |   5 +
 .../camel-example-widget-gadget-xml/pom.xml     |   5 +
 examples/camel-example-zipkin/pom.xml           |   4 +
 examples/pom.xml                                |  17 +-
 .../maven/packaging/PrepareExampleMojo.java     | 227 +++++++++++++++++++
 .../maven/packaging/model/ExampleModel.java     |  79 +++++++
 .../src/main/resources/readme-examples.mvel     |  12 +
 91 files changed, 1065 insertions(+), 351 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/README.adoc
----------------------------------------------------------------------
diff --git a/examples/README.adoc b/examples/README.adoc
new file mode 100644
index 0000000..554dfe4
--- /dev/null
+++ b/examples/README.adoc
@@ -0,0 +1,205 @@
+# Welcome to the Apache Camel Examples
+
+### Introduction
+
+This directory contains the various examples for working with Apache
+Camel. The examples can be run using Maven. When using the Maven
+command, Maven will attempt to download the required dependencies from a
+central repository to your local repository.
+View the individual example READMEs for details.
+
+### Examples
+
+// examples: START
+Number of Examples: 83
+
+[width="100%",cols="4,2,4",options="header"]
+|=======================================================================
+| Example | Category | Description
+
+| link:camel-example-cdi/README.md[CDI] (camel-example-cdi) | Beginner | An example showing how to work with Camel and CDI for dependency injection
+
+| link:camel-example-cdi-properties/README.md[CDI Properties] (camel-example-cdi-properties) | Beginner | DeltaSpike configuration properties CDI example
+
+| link:camel-example-cdi-xml/README.md[CDI Camel XML] (camel-example-cdi-xml) | Beginner | CDI and Camel XML example
+
+| link:camel-example-console/README.md[Console] (camel-example-console) | Beginner | An example that reads input from the console
+
+| link:camel-example-ftp/README.md[FTP] (camel-example-ftp) | Beginner | An example for showing Camel FTP integration
+
+| link:camel-example-java8/readme.md[Java8] (camel-example-java8) | Beginner | An example for showing Camel DSL for Java 8
+
+| link:camel-example-pojo-messaging/README.md[POJO Routing] (camel-example-pojo-messaging) | Beginner | An example showing how to produce and consume messages from Camel endpoints using annotated POJOs
+  
+
+| link:camel-example-reload/Readme.md[Reload] (camel-example-reload) | Beginner | An example that live reloads routes when the XML file is updated
+
+| link:camel-example-servlet-tomcat/README.md[Servlet Tomcat] (camel-example-servlet-tomcat) | Beginner | An example using Camel Servlet with Apache Tomcat
+
+| link:camel-example-servlet-tomcat-no-spring/README.md[Servlet Tomcat without Spring] (camel-example-servlet-tomcat-no-spring) | Beginner | An example using Camel Servlet with Apache Tomcat without using Spring
+
+| link:camel-example-spring/README.md[Spring] (camel-example-spring) | Beginner | An example showing how to work with Camel and Spring
+
+| link:camel-example-spring-boot/readme.adoc[Spring Boot] (camel-example-spring-boot) | Beginner | An example showing how to work with Camel and Spring Boot
+
+| link:camel-example-spring-boot-live-reload/readme.adoc[Spring Boot Live Reload] (camel-example-spring-boot-live-reload) | Beginner | An example showing how to use the live reload feature of Spring Boot with Camel
+
+| link:camel-example-spring-javaconfig/README.md[Spring Java Config] (camel-example-spring-javaconfig) | Beginner | An example showing how to work with Camel and Spring Java Config
+
+| link:camel-example-spring-xquery/README.md[Spring XQuery] (camel-example-spring-xquery) | Beginner | An example using Spring XML to transform a message using XQuery
+
+| link:camel-example-widget-gadget-cdi/README.md[Widget Gadget CDI] (camel-example-widget-gadget-cdi) | Beginner | The widget and gadget example from the EIP book
+
+| link:camel-example-widget-gadget-java/README.md[Widget Gadget Java] (camel-example-widget-gadget-java) | Beginner | The widget and gadget example from the EIP book
+
+| link:camel-example-widget-gadget-xml/README.md[Widget Gadget XML] (camel-example-widget-gadget-xml) | Beginner | The widget and gadget example from the EIP book
+
+| link:camel-example-cdi-aws-s3/README.md[CDI AWS S3] (camel-example-cdi-aws-s3) | Cloud | AWS S3 CDI example
+
+| link:camel-example-cdi-kubernetes/README.md[CDI Kubernetes] (camel-example-cdi-kubernetes) | Cloud | Kubernetes CDI example
+
+| link:camel-example-cdi-cassandraql/README.md[CDI Cassandra] (camel-example-cdi-cassandraql) | Database | Cassandraql CDI example
+
+| link:camel-example-jdbc/README.md[JDBC] (camel-example-jdbc) | Database | An example for showing Camel using JDBC component
+
+| link:camel-example-mybatis/README.md[MyBatis] (camel-example-mybatis) | Database | An example for showing Camel using MyBatis SQL mapper component
+
+| link:camel-example-spring-boot-rest-jpa/README.md[Spring Boot REST JPA] (camel-example-spring-boot-rest-jpa) | Database | An example demonstrating how to use Camel REST DSL with JPA to expose a RESTful API that performs CRUD operations on a database
+
+| link:camel-example-sql/README.md[SQL] (camel-example-sql) | Database | An example for showing Camel using SQL component
+
+| link:camel-example-aggregate/README.md[Aggregate] (camel-example-aggregate) | EIP | Demonstrates the persistent support for the Camel aggregator
+
+| link:camel-example-cafe/README.md[Cafe] (camel-example-cafe) | EIP | A cafe example showing how to work with Camel
+
+| link:camel-example-etl/README.md[ETL] (camel-example-etl) | EIP | An example showing how to use Camel as an Extract Transform and Load (ETL) tool
+
+| link:camel-example-hystrix/README.md[Hystrix] (camel-example-hystrix) | EIP | An example showing how to use Hystrix EIP as circuit breaker in Camel routes
+
+| link:camel-example-loadbalancing/README.md[Load Balancing] (camel-example-loadbalancing) | EIP | An example that demonstrate load balancing messaging with mina servers (TCP/IP)
+
+| link:camel-example-loan-broker-cxf/README.md[Loan Broker WebService] (camel-example-loan-broker-cxf) | EIP | An example that shows the EIP's loan broker demo
+
+| link:camel-example-loan-broker-jms/README.md[Loan Broker JMS] (camel-example-loan-broker-jms) | EIP | An example that shows the EIP's loan broker demo using JMS
+
+| link:camel-example-route-throttling/README.md[Route Throttling] (camel-example-route-throttling) | EIP | A client-server example using JMS transport where we on the server side can throttle the Camel
+    route dynamically based on the flow of messages
+  
+
+| link:camel-example-transformer-blueprint/README.md[Transformer OSGi Blueprint] (camel-example-transformer-blueprint) | Input/Output Type Contract | An example demonstrating declarative transformation along data type declaration using OSGi Blueprint XML
+
+| link:camel-example-transformer-cdi/README.md[Transformer CDI] (camel-example-transformer-cdi) | Input/Output Type Contract | An example demonstrating declarative transformation along data type declaration using Java DSL and CDI
+  
+
+| link:camel-example-transformer-demo/README.md[Transformer Spring XML] (camel-example-transformer-demo) | Input/Output Type Contract | An example demonstrating declarative transformation along data type declaration using Spring DSL
+
+| link:camel-example-bam/README.md[BAM (deprecated)] (camel-example-bam) | Management and Monitoring | *deprecated* An example showing how to use Camel as a Business Activity Monitoring tool
+
+| link:camel-example-cdi-metrics/README.md[CDI Metrics] (camel-example-cdi-metrics) | Management and Monitoring | Dropwizard Metrics CDI example
+
+| link:camel-example-jmx/README.md[JMX] (camel-example-jmx) | Management and Monitoring | An example showing how to work with Camel and JMX
+
+| link:camel-example-management/README.md[Management] (camel-example-management) | Management and Monitoring | An example for showing Camel JMX management
+
+| link:camel-example-splunk/README.md[Splunk] (camel-example-splunk) | Management and Monitoring | An example using Splunk
+
+| link:camel-example-spring-boot-metrics/README.md[Spring Boot Metrics] (camel-example-spring-boot-metrics) | Management and Monitoring | An example showing how to work with Camel and Spring Boot and report metrics to Graphite
+
+| link:camel-example-tracer/README.md[Tracer] (camel-example-tracer) | Management and Monitoring | An example showing how to persist Camel trace event messages using JPA
+
+| link:camel-example-zipkin/README.md[Zipkin] (camel-example-zipkin) | Management and Monitoring | An example showing how to trace incoming and outgoing messages from Camel with Zipkin
+
+| link:camel-example-activemq-tomcat/README.md[ActiveMQ Tomcat] (camel-example-activemq-tomcat) | Messaging | An example using ActiveMQ Broker and Camel with Apache Tomcat
+
+| link:camel-example-guice-jms/README.md[Guice JMS] (camel-example-guice-jms) | Messaging | *deprecated* An example showing how to work with Camel, Guice and JMS
+
+| link:camel-example-jms-file/README.md[JMS-File] (camel-example-jms-file) | Messaging | An example that persists messages from JMS to files
+
+| link:camel-example-kafka/README.md[Kafka] (camel-example-kafka) | Messaging | An example for Kafka
+
+| link:camel-example-spring-jms/README.md[Spring JMS] (camel-example-spring-jms) | Messaging | An example using Spring XML to talk to the JMS server from different kind of client techniques
+
+| link:camel-example-box-osgi/README.md[Box OSGi] (camel-example-box-osgi) | OSGi | An example which use a Box Endpoint in OSGi
+
+| link:camel-example-cdi-osgi/README.md[CDI OSGi] (camel-example-cdi-osgi) | OSGi | PAX CDI example
+
+| link:camel-example-cxf-blueprint/README.md[CXF Blueprint] (camel-example-cxf-blueprint) | OSGi | An example which use a CXF consumer and the OSGI HTTP Service
+
+| link:camel-example-cxf-osgi/README.md[CXF OSGi] (camel-example-cxf-osgi) | OSGi | An example which use a CXF consumer and the OSGI HTTP Service
+
+| link:camel-example-netty-http/README.md[Netty HTTP] (camel-example-netty-http) | OSGi | An example showing how to use a shared Netty HTTP server with multiple Camel applications in OSGi container
+
+| link:camel-example-osgi-rmi/README.md[OSGi RMI] (camel-example-osgi-rmi) | OSGi | A OSGi example which exposes a RMI service.
+
+| link:camel-example-servlet-rest-blueprint/README.md[Servlet REST Blueprint] (camel-example-servlet-rest-blueprint) | OSGi | An example using Servlet REST with OSGi Blueprint
+
+| link:camel-example-spring-dm/README.md[Spring DM] (camel-example-spring-dm) | OSGi | *deprecated* A simple OSGi Spring DM example which creates a bundle that can be dropped into any OSGi container
+
+| link:camel-example-sql-blueprint/README.md[SQL Blueprint] (camel-example-sql-blueprint) | OSGi | An example for showing Camel using SQL component with blueprint
+
+| link:camel-example-ssh/README.md[SSH] (camel-example-ssh) | OSGi | A simple SSH example which creates a bundle that can be dropped into any OSGi container
+
+| link:camel-example-ssh-security/README.md[SSH Security] (camel-example-ssh-security) | OSGi | A Certificate secured SSH example that creates a bundle that can be dropped into any OSGi container
+  
+
+| link:camel-example-swagger-osgi/README.md[Swagger OSGi] (camel-example-swagger-osgi) | OSGi | An example using REST DSL in XML and Swagger API
+
+| link:camel-example-groovy/ReadMe.md[Groovy] (camel-example-groovy) | Other Languages | A Camel route using Groovy
+
+| link:camel-example-kotlin/ReadMe.md[Kotlin] (camel-example-kotlin) | Other Languages | A Camel route using Kotlin
+
+| link:camel-example-scala/ReadMe.md[Scala] (camel-example-scala) | Other Languages | A Camel route using Scala
+
+| link:camel-example-java8-rx/readme.md[Java8 RX] (camel-example-java8-rx) | Reactive | An example for showing Camel RX for Java 8
+
+| link:camel-example-reactive-streams/readme.md[Reactive Streams] (camel-example-reactive-streams) | Reactive | An example that shows how Camel can exchange data using reactive streams with Spring Boot reactor
+
+| link:camel-example-cdi-rest-servlet/README.md[CDI Rest] (camel-example-cdi-rest-servlet) | Rest | REST DSL / Servlet with CDI example
+
+| link:camel-example-restlet-jdbc/README.md[Restlet JDBC] (camel-example-restlet-jdbc) | Rest | An example showing how to create REST API with Camel Restlet and JDBC components
+
+| link:camel-example-spark-rest/README.md[Spark REST] (camel-example-spark-rest) | Rest | An example using Spark REST
+
+| link:camel-example-swagger-cdi/README.md[Swagger CDI] (camel-example-swagger-cdi) | Rest | An example using REST DSL and Swagger Java with CDI
+
+| link:camel-example-swagger-xml/README.md[Swagger XML] (camel-example-swagger-xml) | Rest | An example using REST DSL in XML and Swagger with Swagger UI (web console)
+
+| link:camel-example-spring-security/README.md[Spring Security] (camel-example-spring-security) | Security | An example showing how to work with Camel and Spring Security
+
+| link:camel-example-simplejirabot/README.md[JIRA Bot] (camel-example-simplejirabot) | Social | An example showing how to work with RSS and IRC endpoints
+
+| link:camel-example-twitter-salesforce/README.md[Twitter Salesforce] (camel-example-twitter-salesforce) | Social | Twitter mentions is created as contacts in Salesforce
+
+| link:camel-example-twitter-websocket/README.md[Twitter Websocket] (camel-example-twitter-websocket) | Social | An example that pushes new tweets to a web page using web-socket
+
+| link:camel-example-twitter-websocket-blueprint/README.md[Twitter Websocket Blueprint] (camel-example-twitter-websocket-blueprint) | Social | An example that pushes new tweets to a web page using web-socket
+
+| link:camel-example-cdi-test/README.md[CDI Test] (camel-example-cdi-test) | Testing | An example illustrating Camel CDI testing features
+
+| link:camel-example-reportincident/README.md[Report Incident] (camel-example-reportincident) | Tutorial | *deprecated* An example based on real life use case for reporting incidents using webservice that are transformed
+    and send as emails to a backing system
+  
+
+| link:camel-example-reportincident-wssecurity/README.md[Report Incident WS-Security] (camel-example-reportincident-wssecurity) | Tutorial | *deprecated* An example based on real life use case for reporting incidents using webservice that are transformed
+    and send as emails to a backing system. Client calling the WebService is authentified through WS-Security
+  
+
+| link:camel-example-cxf/README.md[CXF] (camel-example-cxf) | WebService | An example which demonstrates the use of the Camel CXF component
+
+| link:camel-example-cxf-proxy/README.md[CXF Proxy] (camel-example-cxf-proxy) | WebService | An example which uses Camel to proxy a web service
+
+| link:camel-example-cxf-tomcat/README.md[CXF Tomcat] (camel-example-cxf-tomcat) | WebService | An example using Camel CXF (code first) with Apache Tomcat
+
+| link:camel-example-spring-ws/README.md[Spring WebService] (camel-example-spring-ws) | WebService | An example showing how to work with Camel and Spring Web Services
+|=======================================================================
+// examples: END
+
+
+### Forum, Help, etc
+
+If you hit an problems please let us know on the Camel Forums <http://camel.apache.org/discussion-forums.html>
+
+Please help us make Apache Camel better - we appreciate any feedback you may
+have.  Enjoy!
+
+The Camel riders!

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/README.md
----------------------------------------------------------------------
diff --git a/examples/README.md b/examples/README.md
deleted file mode 100644
index 50d8733..0000000
--- a/examples/README.md
+++ /dev/null
@@ -1,151 +0,0 @@
-# Welcome to the Apache Camel Examples!
-
-### Introduction
-
-This directory contains the various examples for working with Apache
-Camel. The examples can be run using Maven. When using the Maven
-command, Maven will attempt to download the required dependencies from a
-central repository to your local repository.
-View the individual example READMEs for details.
-
-### List of all examples
-
-All examples have been sort by type/category
-
-
-##### Easy
-
-* [camel-example-cdi](camel-example-cdi/README.md)
-* [camel-example-console](camel-example-console/README.md)
-* [camel-example-jmx](camel-example-jmx/README.md)
-* [camel-example-ftp](camel-example-ftp/README.md)
-* [camel-example-reload](camel-example-reload/Readme.md)
-* [camel-example-ssh](camel-example-ssh/README.md)
-* [camel-example-ssh-security](camel-example-ssh-security/README.md)
-
-##### EIP
-
-* [camel-example-widget-gadget-cdi](camel-example-widget-gadget-cdi/README.md)
-* [camel-example-widget-gadget-java](camel-example-widget-gadget-java/README.md)
-* [camel-example-widget-gadget-xml](camel-example-widget-gadget-xml/README.md)
-* [camel-example-tracer](camel-example-tracer/README.md)
-* [camel-example-route-throttling](camel-example-route-throttling/README.md)
-* [camel-example-aggregate](camel-example-aggregate/README.md)
-* [camel-example-etl](camel-example-etl/README.md)
-* [camel-example-loadbalancing](camel-example-loadbalancing/README.md)
-* [camel-example-hystrix](camel-example-hystrix/README.md)
-
-##### Tutorials
-
-* [camel-example-loan-broker-cxf](camel-example-loan-broker-cxf/README.md)
-* [camel-example-loan-broker-jms](camel-example-loan-broker-jms/README.md)
-* [camel-example-reportincident](camel-example-reportincident/README.md)
-* [camel-example-reportincident-wssecurity](camel-example-reportincident-wssecurity/README.md)
-* [camel-example-cafe](camel-example-cafe/README.md)
-
-##### Other Languages
-
-* [camel-example-groovy](camel-example-groovy/ReadMe.md)
-* [camel-example-kotlin](camel-example-kotlin/ReadMe.md)
-* [camel-example-scala](camel-example-scala/ReadMe.md)
-
-##### CDI
-
-* [camel-example-cdi](camel-example-cdi/README.md)
-* [camel-example-cdi-metrics](camel-example-cdi-metrics/README.md)
-* [camel-example-cdi-properties](camel-example-cdi-properties/README.md)
-* [camel-example-cdi-rest-servlet](camel-example-cdi-rest-servlet/README.md)
-* [camel-example-cdi-test](camel-example-cdi-test/README.md)
-* [camel-example-cdi-xml](camel-example-cdi-xml/README.md)
-* [camel-example-widget-gadget-cdi](camel-example-widget-gadget-cdi/README.md)
-
-##### OSGi
-
-* [camel-example-osgi](camel-example-osgi/README.md)
-* [camel-example-osgi-rmi](camel-example-osgi-rmi/README.md)
-* [camel-example-sql-blueprint](camel-example-sql-blueprint/README.md)
-* [camel-example-servlet-rest-blueprint](camel-example-servlet-rest-blueprint/README.md)
-
-##### Database
-
-* [camel-example-restlet-jdbc](camel-example-restlet-jdbc/README.md)
-* [camel-example-mybatis](camel-example-mybatis/README.md)
-* [camel-example-jdbc](camel-example-jdbc/README.md)
-* [camel-example-restlet-jdbc](camel-example-restlet-jdbc/README.md)
-* [camel-example-sql](camel-example-sql/README.md)
-
-##### Messaging 
-
-* [camel-example-activemq-tomcat](camel-example-activemq-tomcat/README.md)
-* [camel-example-jms-file](camel-example-jms-file/README.md)
-* [camel-example-kafka](camel-example-kafka/README.md)
-* [camel-example-guice-jms](camel-example-guice-jms/README.md)
-* [camel-example-pojo-messaging](camel-example-pojo-messaging/README.md)
-
-##### Social
-
-* [camel-example-box-osgi](camel-example-box-osgi/README.md)
-* [camel-example-simplejirabot](camel-example-simplejirabot/README.md)
-* [camel-example-twitter-salesforce](camel-example-twitter-salesforce/README.md)
-* [camel-example-twitter-websocket](camel-example-twitter-websocket/README.md)
-* [camel-example-twitter-websocket-blueprint](camel-example-twitter-websocket-blueprint/README.md)
-
-##### Spring
-
-* [camel-example-spring](camel-example-spring/README.md)
-* [camel-example-spring-boot](camel-example-spring-boot/README.adoc)
-* [camel-example-spring-boot-live-reload](camel-example-spring-boot-live-reload/readme.adoc)
-* [camel-example-spring-boot-metrics](camel-example-spring-boot-metrics/README.md)
-* [camel-example-spring-boot-rest-jpa](camel-example-spring-boot-rest-jpa/README.md)
-* [camel-example-spring-javaconfig](camel-example-spring-javaconfig/README.md)
-* [camel-example-spring-jms](camel-example-spring-jms/README.md)
-* [camel-example-spring-security](camel-example-spring-security/README.md)
-* [camel-example-spring-ws](camel-example-spring-ws/README.md)
-* [camel-example-spring-xquery](camel-example-spring-xquery/README.md)
-
-##### Rest & Swagger
-
-* [camel-example-spark-rest](camel-example-spark-rest/README.md)
-* [camel-example-swagger-cdi](camel-example-swagger-cdi/README.md)
-* [camel-example-swagger-xml](camel-example-swagger-xml/README.md)
-
-##### Management & Monitoring
-
-* [camel-example-bam](camel-example-bam/README.md)
-* [camel-example-management](camel-example-management/README.md)
-* [camel-example-splunk](camel-example-splunk/README.md)
-* [camel-example-zipkin](camel-example-zipkin/README.md)
-
-##### Miscellaneous
-
-* [camel-example-servlet-tomcat](camel-example-servlet-tomcat/README.md)
-* [camel-example-servlet-tomcat-no-spring](camel-example-servlet-tomcat-no-spring/README.md)
-* [camel-example-netty-http](camel-example-netty-http/README.md)
-
-##### WebService SOAP
-
-* [camel-example-cxf](camel-example-cxf/README.md)
-* [camel-example-cxf-blueprint](camel-example-cxf-blueprint/README.md)
-* [camel-example-cxf-osgi](camel-example-cxf-osgi/README.md)
-* [camel-example-cxf-proxy](camel-example-cxf-proxy/README.md)
-* [camel-example-cxf-tomcat](camel-example-cxf-tomcat/README.md)
-
-##### Input/Output type contract
-* [camel-example-transformer-blueprint](camel-example-transformer-blueprint/README.md)
-* [camel-example-transformer-cdi](camel-example-transformer-cdi/README.md)
-* [camel-example-transformer-demo](camel-example-transformer-demo/README.md)
-
-### Documentation
-
-They are described in detail here <http://camel.apache.org/examples.html>
-
-Before you start we recommend you install a recent distribution of Maven, which we use to run our examples <http://maven.apache.org/>
-
-### Forum, Help, etc
-
-If you hit an problems please let us know on the Camel Forums <http://camel.apache.org/discussion-forums.html>
-
-Please help us make Apache Camel better - we appreciate any feedback you may
-have.  Enjoy!
-
-The Camel riders!

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-activemq-tomcat/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-activemq-tomcat/pom.xml b/examples/camel-example-activemq-tomcat/pom.xml
index 0d9b87d..79b0227 100755
--- a/examples/camel-example-activemq-tomcat/pom.xml
+++ b/examples/camel-example-activemq-tomcat/pom.xml
@@ -31,6 +31,11 @@
   <description>An example using ActiveMQ Broker and Camel with Apache Tomcat</description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>Messaging</category>
+    <title>ActiveMQ Tomcat</title>
+  </properties>
+
   <build>
     <plugins>
       <plugin>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-aggregate/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-aggregate/pom.xml b/examples/camel-example-aggregate/pom.xml
index 8a43cf3..bdf49d8 100644
--- a/examples/camel-example-aggregate/pom.xml
+++ b/examples/camel-example-aggregate/pom.xml
@@ -31,6 +31,7 @@
   <description>Demonstrates the persistent support for the Camel aggregator</description>
 
   <properties>
+    <category>EIP</category>
     <camel.osgi.export.pkg>org.apache.camel.example.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-bam/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-bam/pom.xml b/examples/camel-example-bam/pom.xml
index aa1ddcc..9013355 100644
--- a/examples/camel-example-bam/pom.xml
+++ b/examples/camel-example-bam/pom.xml
@@ -28,10 +28,13 @@
 
   <artifactId>camel-example-bam</artifactId>
   <packaging>jar</packaging>
-  <name>Camel :: Example :: BAM</name>
+  <name>Camel :: Example :: BAM (deprecated)</name>
   <description>An example showing how to use Camel as a Business Activity Monitoring tool</description>
 
   <properties>
+    <category>Management and Monitoring</category>
+    <title>BAM (deprecated)</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.example.bam.*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-box-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-box-osgi/pom.xml b/examples/camel-example-box-osgi/pom.xml
index 7d95c6b..5c12f27 100644
--- a/examples/camel-example-box-osgi/pom.xml
+++ b/examples/camel-example-box-osgi/pom.xml
@@ -27,11 +27,14 @@
   </parent>
 
   <artifactId>camel-example-box-osgi</artifactId>
-  <name>Camel :: Example :: Box :: OSGI</name>
+  <name>Camel :: Example :: Box :: OSGi</name>
   <description>An example which use a Box Endpoint in OSGi</description>
   <packaging>jar</packaging>
 
   <properties>
+    <category>OSGi</category>
+    <title>Box OSGi</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.example*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cafe/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cafe/pom.xml b/examples/camel-example-cafe/pom.xml
index b4e529f..3255469 100755
--- a/examples/camel-example-cafe/pom.xml
+++ b/examples/camel-example-cafe/pom.xml
@@ -32,6 +32,7 @@
   <description>A cafe example showing how to work with Camel</description>
 
   <properties>
+    <category>EIP</category>
     <camel.osgi.export.pkg>org.apache.camel.example.cafe.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-aws-s3/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-aws-s3/pom.xml b/examples/camel-example-cdi-aws-s3/pom.xml
index 034328b..59f1ece 100755
--- a/examples/camel-example-cdi-aws-s3/pom.xml
+++ b/examples/camel-example-cdi-aws-s3/pom.xml
@@ -31,6 +31,11 @@
   <description>AWS S3 CDI example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Cloud</category>
+    <title>CDI AWS S3</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-cassandraql/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-cassandraql/pom.xml b/examples/camel-example-cdi-cassandraql/pom.xml
index c37226c..1268a72 100755
--- a/examples/camel-example-cdi-cassandraql/pom.xml
+++ b/examples/camel-example-cdi-cassandraql/pom.xml
@@ -31,6 +31,11 @@
   <description>Cassandraql CDI example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Database</category>
+    <title>CDI Cassandra</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-kubernetes/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-kubernetes/pom.xml b/examples/camel-example-cdi-kubernetes/pom.xml
index 66748e7..b6117cc 100755
--- a/examples/camel-example-cdi-kubernetes/pom.xml
+++ b/examples/camel-example-cdi-kubernetes/pom.xml
@@ -31,6 +31,11 @@
   <description>Kubernetes CDI example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Cloud</category>
+    <title>CDI Kubernetes</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-metrics/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-metrics/pom.xml b/examples/camel-example-cdi-metrics/pom.xml
index 52b1da8..08401f7 100755
--- a/examples/camel-example-cdi-metrics/pom.xml
+++ b/examples/camel-example-cdi-metrics/pom.xml
@@ -31,6 +31,11 @@
   <description>Dropwizard Metrics CDI example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Management and Monitoring</category>
+    <title>CDI Metrics</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-osgi/pom.xml b/examples/camel-example-cdi-osgi/pom.xml
index b841f32..4af73d8 100755
--- a/examples/camel-example-cdi-osgi/pom.xml
+++ b/examples/camel-example-cdi-osgi/pom.xml
@@ -31,6 +31,11 @@
   <description>PAX CDI example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>OSGi</category>
+    <title>CDI OSGi</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-properties/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-properties/pom.xml b/examples/camel-example-cdi-properties/pom.xml
index 97d7311..24adc77 100755
--- a/examples/camel-example-cdi-properties/pom.xml
+++ b/examples/camel-example-cdi-properties/pom.xml
@@ -32,6 +32,9 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>Beginner</category>
+    <title>CDI Properties</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.example.cdi.properties*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-rest-servlet/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-rest-servlet/pom.xml b/examples/camel-example-cdi-rest-servlet/pom.xml
index b8cf5ee..260d778 100755
--- a/examples/camel-example-cdi-rest-servlet/pom.xml
+++ b/examples/camel-example-cdi-rest-servlet/pom.xml
@@ -31,6 +31,11 @@
   <description>REST DSL / Servlet with CDI example</description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>Rest</category>
+    <title>CDI Rest</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-test/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-test/pom.xml b/examples/camel-example-cdi-test/pom.xml
index 41cfc6e..d1b5765 100644
--- a/examples/camel-example-cdi-test/pom.xml
+++ b/examples/camel-example-cdi-test/pom.xml
@@ -30,6 +30,12 @@
   <name>Camel :: Example :: CDI :: Testing</name>
   <description>An example illustrating Camel CDI testing features</description>
 
+  <properties>
+    <category>Testing</category>
+    <title>CDI Test</title>
+  </properties>
+
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi-xml/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi-xml/pom.xml b/examples/camel-example-cdi-xml/pom.xml
index 34c12bd..e365cc2 100755
--- a/examples/camel-example-cdi-xml/pom.xml
+++ b/examples/camel-example-cdi-xml/pom.xml
@@ -31,6 +31,11 @@
   <description>CDI and Camel XML example</description>
   <packaging>jar</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>CDI Camel XML</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cdi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cdi/pom.xml b/examples/camel-example-cdi/pom.xml
index 648475f..03a0807 100644
--- a/examples/camel-example-cdi/pom.xml
+++ b/examples/camel-example-cdi/pom.xml
@@ -30,6 +30,11 @@
   <name>Camel :: Example :: CDI</name>
   <description>An example showing how to work with Camel and CDI for dependency injection</description>
 
+  <properties>
+    <category>Beginner</category>
+    <title>CDI</title>
+  </properties>
+
   <dependencies>
 
     <!-- CDI API -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-console/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-console/pom.xml b/examples/camel-example-console/pom.xml
index 352dc15..9b538de 100644
--- a/examples/camel-example-console/pom.xml
+++ b/examples/camel-example-console/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Console</name>
   <description>An example that reads input from the console</description>
 
+  <properties>
+    <category>Beginner</category>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cxf-blueprint/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cxf-blueprint/pom.xml b/examples/camel-example-cxf-blueprint/pom.xml
index 4cc2cc7..0292da4 100644
--- a/examples/camel-example-cxf-blueprint/pom.xml
+++ b/examples/camel-example-cxf-blueprint/pom.xml
@@ -32,6 +32,9 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>OSGi</category>
+    <title>CXF Blueprint</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.example.reportincident*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cxf-osgi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cxf-osgi/pom.xml b/examples/camel-example-cxf-osgi/pom.xml
index ed1fdc1..06b4337 100644
--- a/examples/camel-example-cxf-osgi/pom.xml
+++ b/examples/camel-example-cxf-osgi/pom.xml
@@ -32,6 +32,9 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>OSGi</category>
+    <title>CXF OSGi</title>
+
     <camel.osgi.import.pkg>
       org.apache.cxf,
       org.apache.cxf.binding,

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cxf-proxy/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cxf-proxy/pom.xml b/examples/camel-example-cxf-proxy/pom.xml
index 6a7d3b4..6ac65fd 100755
--- a/examples/camel-example-cxf-proxy/pom.xml
+++ b/examples/camel-example-cxf-proxy/pom.xml
@@ -32,6 +32,9 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>WebService</category>
+    <title>CXF Proxy</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.example.*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cxf-tomcat/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cxf-tomcat/pom.xml b/examples/camel-example-cxf-tomcat/pom.xml
index fad4e4a..8f1c898 100755
--- a/examples/camel-example-cxf-tomcat/pom.xml
+++ b/examples/camel-example-cxf-tomcat/pom.xml
@@ -31,6 +31,11 @@
   <description>An example using Camel CXF (code first) with Apache Tomcat</description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>WebService</category>
+    <title>CXF Tomcat</title>
+  </properties>
+
   <build>
     <plugins>
       <plugin>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-cxf/pom.xml b/examples/camel-example-cxf/pom.xml
index f1413f3..aa32ed0 100644
--- a/examples/camel-example-cxf/pom.xml
+++ b/examples/camel-example-cxf/pom.xml
@@ -31,6 +31,9 @@
   <description>An example which demonstrates the use of the Camel CXF component</description>
 
   <properties>
+    <category>WebService</category>
+    <title>CXF</title>
+
     <jetty9-version>${jetty92-version}</jetty9-version>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-etl/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-etl/pom.xml b/examples/camel-example-etl/pom.xml
index 8f0b4a8..4720287 100644
--- a/examples/camel-example-etl/pom.xml
+++ b/examples/camel-example-etl/pom.xml
@@ -32,6 +32,9 @@
   <description>An example showing how to use Camel as an Extract Transform and Load (ETL) tool</description>
 
   <properties>
+    <category>EIP</category>
+    <title>ETL</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.etl.*</camel.osgi.export.pkg>
     <!-- to avoid us import bunch other package -->
     <camel.osgi.dynamic>*</camel.osgi.dynamic>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-ftp/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-ftp/pom.xml b/examples/camel-example-ftp/pom.xml
index 0ba5a8c..243629e 100644
--- a/examples/camel-example-ftp/pom.xml
+++ b/examples/camel-example-ftp/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: FTP</name>
   <description>An example for showing Camel FTP integration</description>
 
+  <properties>
+    <category>Beginner</category>
+    <title>FTP</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-groovy/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-groovy/pom.xml b/examples/camel-example-groovy/pom.xml
index 07dd07d..a050ce6 100644
--- a/examples/camel-example-groovy/pom.xml
+++ b/examples/camel-example-groovy/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Groovy</name>
   <description>A Camel route using Groovy</description>
 
+  <properties>
+    <category>Other Languages</category>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-guice-jms/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-guice-jms/pom.xml b/examples/camel-example-guice-jms/pom.xml
index 4d1a0ad..8c5431b 100644
--- a/examples/camel-example-guice-jms/pom.xml
+++ b/examples/camel-example-guice-jms/pom.xml
@@ -27,9 +27,14 @@
   </parent>
 
   <artifactId>camel-example-guice-jms</artifactId>
-  <name>Camel :: Example :: Guice :: JMS</name>
+  <name>Camel :: Example :: Guice :: JMS (deprecated)</name>
   <description>An example showing how to work with Camel, Guice and JMS</description>
 
+  <properties>
+    <category>Messaging</category>
+    <title>Guice JMS</title>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-hystrix/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-hystrix/pom.xml b/examples/camel-example-hystrix/pom.xml
index 03d0064..2fd771f 100644
--- a/examples/camel-example-hystrix/pom.xml
+++ b/examples/camel-example-hystrix/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Hystrix</name>
   <description>An example showing how to use Hystrix EIP as circuit breaker in Camel routes</description>
 
+  <properties>
+    <category>EIP</category>
+  </properties>
+
   <modules>
     <module>client</module>
     <module>service1</module>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-java8-rx/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-java8-rx/pom.xml b/examples/camel-example-java8-rx/pom.xml
index e8e02f4..8afc486 100644
--- a/examples/camel-example-java8-rx/pom.xml
+++ b/examples/camel-example-java8-rx/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Java8 :: RX</name>
   <description>An example for showing Camel RX for Java 8</description>
 
+  <properties>
+    <category>Reactive</category>
+    <title>Java8 RX</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-java8/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-java8/pom.xml b/examples/camel-example-java8/pom.xml
index 9bb9ae9..8d0b3f4 100644
--- a/examples/camel-example-java8/pom.xml
+++ b/examples/camel-example-java8/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Java8</name>
   <description>An example for showing Camel DSL for Java 8</description>
 
+  <properties>
+    <category>Beginner</category>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-jdbc/pom.xml b/examples/camel-example-jdbc/pom.xml
index fae3dd6..03c4ded 100644
--- a/examples/camel-example-jdbc/pom.xml
+++ b/examples/camel-example-jdbc/pom.xml
@@ -32,6 +32,8 @@
   <description>An example for showing Camel using JDBC component</description>
 
   <properties>
+    <category>Database</category>
+    <title>JDBC</title>
     <camel.osgi.export.pkg>org.apache.camel.example.jdbc.*</camel.osgi.export.pkg>
     <!-- dynamic import for the Derby JDBC driver -->
     <camel.osgi.dynamic>*</camel.osgi.dynamic>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-jms-file/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-jms-file/pom.xml b/examples/camel-example-jms-file/pom.xml
index 852a78c..19228e7 100755
--- a/examples/camel-example-jms-file/pom.xml
+++ b/examples/camel-example-jms-file/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: JMS-File</name>
   <description>An example that persists messages from JMS to files</description>
 
+  <properties>
+    <category>Messaging</category>
+    <title>JMS-File</title>
+  </properties>
+
   <dependencies>
 
     <!-- Camel dependencies -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-jmx/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-jmx/pom.xml b/examples/camel-example-jmx/pom.xml
index c51413f..306bf6a 100644
--- a/examples/camel-example-jmx/pom.xml
+++ b/examples/camel-example-jmx/pom.xml
@@ -32,6 +32,9 @@
   <description>An example showing how to work with Camel and JMX</description>
 
   <properties>
+    <category>Management and Monitoring</category>
+    <title>JMX</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.jmx.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-kafka/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-kafka/pom.xml b/examples/camel-example-kafka/pom.xml
index 18f4a26..6ec71c31 100644
--- a/examples/camel-example-kafka/pom.xml
+++ b/examples/camel-example-kafka/pom.xml
@@ -1,97 +1,103 @@
 <?xml version="1.0"?>
-<!-- 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. -->
+<!--
+    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>examples</artifactId>
-		<version>2.19.0-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>camel-example-kafka</artifactId>
-	<name>Camel :: Example :: Kafka</name>
-	<description>An example for Kafka </description>
-
-	<dependencies>
-
-		<dependency>
-			<groupId>org.apache.camel</groupId>
-			<artifactId>camel-core</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.camel</groupId>
-			<artifactId>camel-kafka</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.camel</groupId>
-			<artifactId>camel-stream</artifactId>
-		</dependency>
-
-
-		<!-- logging -->
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-api</artifactId>
-			<version>2.7</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-core</artifactId>
-			<version>2.7</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.logging.log4j</groupId>
-			<artifactId>log4j-slf4j-impl</artifactId>
-			<version>2.7</version>
-		</dependency>
-	</dependencies>
-
-	<profiles>
-
-		<profile>
-			<id>kafka-producer</id>
-			<properties>
-				<target.main.class>org.apache.camel.example.kafka.MessagePublisherClient</target.main.class>
-			</properties>
-		</profile>
-
-		<profile>
-			<id>kafka-consumer</id>
-			<properties>
-				<target.main.class>org.apache.camel.example.kafka.MessageConsumerClient</target.main.class>
-			</properties>
-		</profile>
-
-
-	</profiles>
-
-	<build>
-		<plugins>
-			<!-- Allows the example to be run via 'mvn compile exec:java' -->
-			<plugin>
-				<groupId>org.codehaus.mojo</groupId>
-				<artifactId>exec-maven-plugin</artifactId>
-				<configuration>
-					<mainClass>${target.main.class}</mainClass>
-					<includePluginDependencies>false</includePluginDependencies>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-
+         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>examples</artifactId>
+    <version>2.19.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>camel-example-kafka</artifactId>
+  <name>Camel :: Example :: Kafka</name>
+  <description>An example for Kafka</description>
+
+  <properties>
+    <category>Messaging</category>
+  </properties>
+
+  <dependencies>
+
+    <!-- camel -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-kafka</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-stream</artifactId>
+    </dependency>
+
+    <!-- logging -->
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-api</artifactId>
+      <version>2.7</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-core</artifactId>
+      <version>2.7</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.logging.log4j</groupId>
+      <artifactId>log4j-slf4j-impl</artifactId>
+      <version>2.7</version>
+    </dependency>
+  </dependencies>
+
+  <profiles>
+
+    <profile>
+      <id>kafka-producer</id>
+      <properties>
+        <target.main.class>org.apache.camel.example.kafka.MessagePublisherClient</target.main.class>
+      </properties>
+    </profile>
+
+    <profile>
+      <id>kafka-consumer</id>
+      <properties>
+        <target.main.class>org.apache.camel.example.kafka.MessageConsumerClient</target.main.class>
+      </properties>
+    </profile>
+
+  </profiles>
+
+  <build>
+    <plugins>
+      <!-- Allows the example to be run via 'mvn compile exec:java' -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>exec-maven-plugin</artifactId>
+        <configuration>
+          <mainClass>${target.main.class}</mainClass>
+          <includePluginDependencies>false</includePluginDependencies>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
 
 </project>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-kotlin/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-kotlin/pom.xml b/examples/camel-example-kotlin/pom.xml
index 2474700..dd0f86b 100644
--- a/examples/camel-example-kotlin/pom.xml
+++ b/examples/camel-example-kotlin/pom.xml
@@ -32,6 +32,7 @@
   <description>A Camel route using Kotlin</description>
 
   <properties>
+    <category>Other Languages</category>
     <kotlin.version>1.0.6</kotlin.version>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-loadbalancing/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-loadbalancing/pom.xml b/examples/camel-example-loadbalancing/pom.xml
index 62abb19..0b2c116 100644
--- a/examples/camel-example-loadbalancing/pom.xml
+++ b/examples/camel-example-loadbalancing/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Load Balancing</name>
   <description>An example that demonstrate load balancing messaging with mina servers (TCP/IP)</description>
 
+  <properties>
+    <category>EIP</category>
+    <title>Load Balancing</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-loan-broker-cxf/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-loan-broker-cxf/pom.xml b/examples/camel-example-loan-broker-cxf/pom.xml
index 662a676..b5180c5 100644
--- a/examples/camel-example-loan-broker-cxf/pom.xml
+++ b/examples/camel-example-loan-broker-cxf/pom.xml
@@ -32,6 +32,9 @@
   <description>An example that shows the EIP's loan broker demo</description>
 
   <properties>
+    <category>EIP</category>
+    <title>Loan Broker WebService</title>
+
     <camel.osgi.export.pkg>
       org.apache.camel.loanbroker.*
     </camel.osgi.export.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-loan-broker-jms/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-loan-broker-jms/pom.xml b/examples/camel-example-loan-broker-jms/pom.xml
index 1b694e8..186036b 100644
--- a/examples/camel-example-loan-broker-jms/pom.xml
+++ b/examples/camel-example-loan-broker-jms/pom.xml
@@ -31,7 +31,12 @@
   <name>Camel :: Example :: Loan-Broker :: JMS</name>
   <description>An example that shows the EIP's loan broker demo using JMS</description>
 
-   <dependencies>
+  <properties>
+    <category>EIP</category>
+    <title>Loan Broker JMS</title>
+  </properties>
+
+  <dependencies>
 
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-management/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-management/pom.xml b/examples/camel-example-management/pom.xml
index a31d1be..66f0b1f 100644
--- a/examples/camel-example-management/pom.xml
+++ b/examples/camel-example-management/pom.xml
@@ -32,6 +32,8 @@
   <description>An example for showing Camel JMX management</description>
 
   <properties>
+    <category>Management and Monitoring</category>
+
     <camel.osgi.export.pkg>org.apache.camel.example.management.*</camel.osgi.export.pkg>
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-mybatis/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-mybatis/pom.xml b/examples/camel-example-mybatis/pom.xml
index 6ef683f..51bf2e1 100644
--- a/examples/camel-example-mybatis/pom.xml
+++ b/examples/camel-example-mybatis/pom.xml
@@ -32,6 +32,9 @@
   <description>An example for showing Camel using MyBatis SQL mapper component</description>
 
   <properties>
+    <category>Database</category>
+    <title>MyBatis</title>
+    
     <camel.osgi.export.pkg>org.apache.camel.example.mybatis.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-netty-http/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-netty-http/pom.xml b/examples/camel-example-netty-http/pom.xml
index f7df7e7..0804cc5 100644
--- a/examples/camel-example-netty-http/pom.xml
+++ b/examples/camel-example-netty-http/pom.xml
@@ -32,6 +32,9 @@
   <description>An example showing how to use a shared Netty HTTP server with multiple Camel applications in OSGi container</description>
 
   <properties>
+    <category>OSGi</category>
+    <title>Netty HTTP</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.netty.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-osgi-rmi/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-osgi-rmi/pom.xml b/examples/camel-example-osgi-rmi/pom.xml
index 3018e81..2dfeec0 100644
--- a/examples/camel-example-osgi-rmi/pom.xml
+++ b/examples/camel-example-osgi-rmi/pom.xml
@@ -32,6 +32,9 @@
   <description>A OSGi example which exposes a RMI service.</description>
 
   <properties>
+    <category>OSGi</category>
+    <title>OSGi RMI</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.osgi.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-pojo-messaging/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-pojo-messaging/pom.xml b/examples/camel-example-pojo-messaging/pom.xml
index 799d34a..f71b3b7 100644
--- a/examples/camel-example-pojo-messaging/pom.xml
+++ b/examples/camel-example-pojo-messaging/pom.xml
@@ -33,6 +33,9 @@
   </description>
 
   <properties>
+    <category>Beginner</category>
+    <title>POJO Routing</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.pojo_messaging.*</camel.osgi.export.pkg>
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-reactive-streams/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-reactive-streams/pom.xml b/examples/camel-example-reactive-streams/pom.xml
index de9e4a7..b45d258 100644
--- a/examples/camel-example-reactive-streams/pom.xml
+++ b/examples/camel-example-reactive-streams/pom.xml
@@ -1,99 +1,119 @@
 <?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">
-    <parent>
-        <artifactId>examples</artifactId>
-        <groupId>org.apache.camel</groupId>
-        <version>2.19.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>camel-example-reactive-streams</artifactId>
-    <packaging>jar</packaging>
-    <name>Camel :: Example :: Reactive Streams</name>
-    <description>An example that shows how Camel can exchange data using reactive streams with spring-boot reactor</description>
-
-    <properties>
-        <spring.boot-version>${spring-boot-version}</spring.boot-version>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring.boot-version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-spring-boot-dependencies</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
 
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>examples</artifactId>
+    <version>2.19.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>camel-example-reactive-streams</artifactId>
+  <packaging>jar</packaging>
+  <name>Camel :: Example :: Reactive Streams</name>
+  <description>An example that shows how Camel can exchange data using reactive streams with Spring Boot reactor</description>
+
+  <properties>
+    <category>Reactive</category>
+
+    <spring.boot-version>${spring-boot-version}</spring.boot-version>
+  </properties>
+
+  <dependencyManagement>
     <dependencies>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-spring-boot-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-reactive-streams-starter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
-            <artifactId>camel-servlet-starter</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-actuator</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>io.projectreactor</groupId>
-            <artifactId>reactor-core</artifactId>
-            <version>${reactor-version}</version>
-        </dependency>
-
-        <!-- testing -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-test</artifactId>
-            <scope>test</scope>
-        </dependency>
+      <dependency>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-dependencies</artifactId>
+        <version>${spring.boot-version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-spring-boot-dependencies</artifactId>
+        <version>${project.version}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
     </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-spring-boot-starter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-reactive-streams-starter</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-servlet-starter</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-web</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-actuator</artifactId>
+    </dependency>
+
+    <dependency>
+      <groupId>io.projectreactor</groupId>
+      <artifactId>reactor-core</artifactId>
+      <version>${reactor-version}</version>
+    </dependency>
+
+    <!-- testing -->
+    <dependency>
+      <groupId>org.springframework.boot</groupId>
+      <artifactId>spring-boot-starter-test</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+
+    <!-- we do not want version in the JAR name -->
+    <finalName>${project.artifactId}</finalName>
 
-    <build>
-
-        <!-- we do not want version in the JAR name -->
-        <finalName>${project.artifactId}</finalName>
-
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring.boot-version}</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <version>${spring.boot-version}</version>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
 
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-reload/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-reload/pom.xml b/examples/camel-example-reload/pom.xml
index 4c951fc..424aa96 100644
--- a/examples/camel-example-reload/pom.xml
+++ b/examples/camel-example-reload/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Reload</name>
   <description>An example that live reloads routes when the XML file is updated</description>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Reload</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-reportincident-wssecurity/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-reportincident-wssecurity/pom.xml b/examples/camel-example-reportincident-wssecurity/pom.xml
index e48fbd2..4651b77 100644
--- a/examples/camel-example-reportincident-wssecurity/pom.xml
+++ b/examples/camel-example-reportincident-wssecurity/pom.xml
@@ -27,13 +27,16 @@
   </parent>
 
   <artifactId>camel-example-reportincident-wssecurity</artifactId>
-  <name>Camel :: Example :: Report Incident :: WS-Security</name>
+  <name>Camel :: Example :: Report Incident :: WS-Security (deprecated)</name>
   <description>An example based on real life use case for reporting incidents using webservice that are transformed
     and send as emails to a backing system. Client calling the WebService is authentified through WS-Security
   </description>
   <packaging>jar</packaging>
 
   <properties>
+    <category>Tutorial</category>
+    <title>Report Incident WS-Security</title>
+
     <camel.osgi.import.pkg>
       META-INF.cxf,
       org.apache.cxf,

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-reportincident/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-reportincident/pom.xml b/examples/camel-example-reportincident/pom.xml
index 73ca36b..e988f40 100755
--- a/examples/camel-example-reportincident/pom.xml
+++ b/examples/camel-example-reportincident/pom.xml
@@ -27,12 +27,17 @@
   </parent>
 
   <artifactId>camel-example-reportincident</artifactId>
-  <name>Camel :: Example :: Report Incident</name>
+  <name>Camel :: Example :: Report Incident (deprecated)</name>
   <description>An example based on real life use case for reporting incidents using webservice that are transformed
     and send as emails to a backing system
   </description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>Tutorial</category>
+    <title>Report Incident</title>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-restlet-jdbc/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-restlet-jdbc/pom.xml b/examples/camel-example-restlet-jdbc/pom.xml
index a99a6a0..503b9c8 100755
--- a/examples/camel-example-restlet-jdbc/pom.xml
+++ b/examples/camel-example-restlet-jdbc/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Restlet :: JDBC</name>
   <description>An example showing how to create REST API with Camel Restlet and JDBC components</description>
 
+  <properties>
+    <category>Rest</category>
+    <title>Restlet JDBC</title>
+  </properties>
+
   <repositories>
     <repository>
       <id>maven-restlet</id>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-route-throttling/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-route-throttling/pom.xml b/examples/camel-example-route-throttling/pom.xml
index e1ad17b..218255e 100644
--- a/examples/camel-example-route-throttling/pom.xml
+++ b/examples/camel-example-route-throttling/pom.xml
@@ -34,6 +34,8 @@
   </description>
 
   <properties>
+    <category>EIP</category>
+
     <camel.osgi.export.pkg>org.apache.camel.example.client.*</camel.osgi.export.pkg>
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-scala/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-scala/pom.xml b/examples/camel-example-scala/pom.xml
index 7883b7a..40eec57 100644
--- a/examples/camel-example-scala/pom.xml
+++ b/examples/camel-example-scala/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Scala</name>
   <description>A Camel route using Scala</description>
 
+  <properties>
+    <category>Other Languages</category>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-servlet-rest-blueprint/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-servlet-rest-blueprint/pom.xml b/examples/camel-example-servlet-rest-blueprint/pom.xml
index 4281e6d..f234071 100755
--- a/examples/camel-example-servlet-rest-blueprint/pom.xml
+++ b/examples/camel-example-servlet-rest-blueprint/pom.xml
@@ -32,6 +32,9 @@
   <packaging>jar</packaging>
 
   <properties>
+    <category>OSGi</category>
+    <title>Servlet REST Blueprint</title>
+
     <camel.osgi.import.pkg>
       *
     </camel.osgi.import.pkg>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-servlet-tomcat-no-spring/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-servlet-tomcat-no-spring/pom.xml b/examples/camel-example-servlet-tomcat-no-spring/pom.xml
index 961664a..be1a0c7 100755
--- a/examples/camel-example-servlet-tomcat-no-spring/pom.xml
+++ b/examples/camel-example-servlet-tomcat-no-spring/pom.xml
@@ -31,6 +31,11 @@
   <description>An example using Camel Servlet with Apache Tomcat without using Spring</description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Servlet Tomcat without Spring</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-servlet-tomcat/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-servlet-tomcat/pom.xml b/examples/camel-example-servlet-tomcat/pom.xml
index edf2612..612cd90 100755
--- a/examples/camel-example-servlet-tomcat/pom.xml
+++ b/examples/camel-example-servlet-tomcat/pom.xml
@@ -31,6 +31,11 @@
   <description>An example using Camel Servlet with Apache Tomcat</description>
   <packaging>war</packaging>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Servlet Tomcat</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-simplejirabot/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-simplejirabot/pom.xml b/examples/camel-example-simplejirabot/pom.xml
index 5035229..9082aa7 100644
--- a/examples/camel-example-simplejirabot/pom.xml
+++ b/examples/camel-example-simplejirabot/pom.xml
@@ -32,6 +32,9 @@
   <description>An example showing how to work with RSS and IRC endpoints</description>
 
   <properties>
+    <category>Social</category>
+    <title>JIRA Bot</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.rss.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spark-rest/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spark-rest/pom.xml b/examples/camel-example-spark-rest/pom.xml
index 954e569..7fd62e2 100755
--- a/examples/camel-example-spark-rest/pom.xml
+++ b/examples/camel-example-spark-rest/pom.xml
@@ -30,6 +30,11 @@
   <name>Camel :: Example :: Spark REST</name>
   <description>An example using Spark REST</description>
 
+  <properties>
+    <category>Rest</category>
+    <title>Spark REST</title>
+  </properties>
+
   <dependencies>
 
     <!-- camel -->

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-splunk/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-splunk/pom.xml b/examples/camel-example-splunk/pom.xml
index 7d6ae02..e5d263e 100644
--- a/examples/camel-example-splunk/pom.xml
+++ b/examples/camel-example-splunk/pom.xml
@@ -30,6 +30,10 @@
   <name>Camel :: Example :: Splunk</name>
   <description>An example using Splunk</description>
 
+  <properties>
+    <category>Management and Monitoring</category>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-boot-live-reload/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-live-reload/pom.xml b/examples/camel-example-spring-boot-live-reload/pom.xml
index 4cc43cd..f0d4d09 100644
--- a/examples/camel-example-spring-boot-live-reload/pom.xml
+++ b/examples/camel-example-spring-boot-live-reload/pom.xml
@@ -31,6 +31,8 @@
   <description>An example showing how to use the live reload feature of Spring Boot with Camel</description>
 
   <properties>
+    <category>Beginner</category>
+
     <spring.boot-version>${spring-boot-version}</spring.boot-version>
   </properties>
 
@@ -61,6 +63,7 @@
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter</artifactId>
     </dependency>
+    <!-- devtools enables the live reload functionality -->
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-devtools</artifactId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-boot-live-reload/src/main/java/org/apache/camel/example/springboot/livereload/LiveReloadRouter.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-live-reload/src/main/java/org/apache/camel/example/springboot/livereload/LiveReloadRouter.java b/examples/camel-example-spring-boot-live-reload/src/main/java/org/apache/camel/example/springboot/livereload/LiveReloadRouter.java
index 3c77e02..7fc38cb 100644
--- a/examples/camel-example-spring-boot-live-reload/src/main/java/org/apache/camel/example/springboot/livereload/LiveReloadRouter.java
+++ b/examples/camel-example-spring-boot-live-reload/src/main/java/org/apache/camel/example/springboot/livereload/LiveReloadRouter.java
@@ -36,9 +36,9 @@ public class LiveReloadRouter extends RouteBuilder {
 
         restConfiguration().port(port);
 
-        rest().get("/")
-                .produces("text/plain")
-                .route()
+        rest()
+            .get("/").produces("text/plain")
+            .route()
                 .transform().constant("Change me");
 
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-boot-metrics/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-metrics/pom.xml b/examples/camel-example-spring-boot-metrics/pom.xml
index 0a16950..5e38352 100644
--- a/examples/camel-example-spring-boot-metrics/pom.xml
+++ b/examples/camel-example-spring-boot-metrics/pom.xml
@@ -31,6 +31,8 @@
   <description>An example showing how to work with Camel and Spring Boot and report metrics to Graphite</description>
 
   <properties>
+    <category>Management and Monitoring</category>
+
     <spring.boot-version>${spring-boot-version}</spring.boot-version>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-boot-rest-jpa/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-rest-jpa/pom.xml b/examples/camel-example-spring-boot-rest-jpa/pom.xml
index e5b0e3d..2f956cb 100644
--- a/examples/camel-example-spring-boot-rest-jpa/pom.xml
+++ b/examples/camel-example-spring-boot-rest-jpa/pom.xml
@@ -28,12 +28,12 @@
 
   <artifactId>camel-example-spring-boot-rest-jpa</artifactId>
   <name>Camel :: Example :: Spring Boot REST / JPA</name>
-  <description>
-    An example demonstrating how to use Camel REST DSL with JPA
-    to expose a RESTful API that performs CRUD operations on a database
-  </description>
+  <description>An example demonstrating how to use Camel REST DSL with JPA to expose a RESTful API that performs CRUD operations on a database</description>
 
   <properties>
+    <category>Database</category>
+    <title>Spring Boot REST JPA</title>
+
     <spring.boot-version>${spring-boot-version}</spring.boot-version>
     <!-- Spring Boot default profile in order to use an embedded database -->
     <run.profiles>dev</run.profiles>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-boot/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot/pom.xml b/examples/camel-example-spring-boot/pom.xml
index 2af5b6a..b3153ca 100644
--- a/examples/camel-example-spring-boot/pom.xml
+++ b/examples/camel-example-spring-boot/pom.xml
@@ -31,6 +31,8 @@
   <description>An example showing how to work with Camel and Spring Boot</description>
 
   <properties>
+    <category>Beginner</category>
+
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <spring.boot-version>${spring-boot-version}</spring.boot-version>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-dm/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-dm/pom.xml b/examples/camel-example-spring-dm/pom.xml
index a5b8f20..cba2a32 100644
--- a/examples/camel-example-spring-dm/pom.xml
+++ b/examples/camel-example-spring-dm/pom.xml
@@ -28,10 +28,13 @@
 
   <artifactId>camel-example-spring-dm</artifactId>
   <packaging>jar</packaging>
-  <name>Camel :: Example :: Spring DM</name>
+  <name>Camel :: Example :: Spring DM (deprecated)</name>
   <description>A simple OSGi Spring DM example which creates a bundle that can be dropped into any OSGi container</description>
 
   <properties>
+    <category>OSGi</category>
+    <title>Spring DM</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.osgi.*</camel.osgi.export.pkg>
   </properties>
 

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-javaconfig/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-javaconfig/pom.xml b/examples/camel-example-spring-javaconfig/pom.xml
index d39ae80..5a1b469 100644
--- a/examples/camel-example-spring-javaconfig/pom.xml
+++ b/examples/camel-example-spring-javaconfig/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Spring :: JavaConfig</name>
   <description>An example showing how to work with Camel and Spring Java Config</description>
 
+  <properties>
+    <category>Beginner</category>
+    <title>Spring Java Config</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-jms/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-jms/pom.xml b/examples/camel-example-spring-jms/pom.xml
index d702cc0..da360e0 100644
--- a/examples/camel-example-spring-jms/pom.xml
+++ b/examples/camel-example-spring-jms/pom.xml
@@ -28,9 +28,12 @@
   <artifactId>camel-example-spring-jms</artifactId>
   <packaging>jar</packaging>
   <name>Camel :: Example :: Spring :: JMS</name>
-  <description>An example using Spring XML to talk to the JMS server from different kind of client techniques
-  </description>
+  <description>An example using Spring XML to talk to the JMS server from different kind of client techniques</description>
+
   <properties>
+    <category>Messaging</category>
+    <title>Spring JMS</title>
+
     <camel.osgi.export.pkg>org.apache.camel.example.server.*</camel.osgi.export.pkg>
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-security/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-security/pom.xml b/examples/camel-example-spring-security/pom.xml
index 631bf28..5e099ab 100755
--- a/examples/camel-example-spring-security/pom.xml
+++ b/examples/camel-example-spring-security/pom.xml
@@ -31,6 +31,10 @@
   <name>Camel :: Example :: Spring :: Security</name>
   <description>An example showing how to work with Camel and Spring Security</description>
 
+  <properties>
+    <category>Security</category>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.camel</groupId>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-ws/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-ws/pom.xml b/examples/camel-example-spring-ws/pom.xml
index 7dc7641..e00df30 100644
--- a/examples/camel-example-spring-ws/pom.xml
+++ b/examples/camel-example-spring-ws/pom.xml
@@ -31,6 +31,11 @@
   <name>Camel :: Example :: Spring :: Web Services</name>
   <description>An example showing how to work with Camel and Spring Web Services</description>
 
+  <properties>
+    <category>WebService</category>
+    <title>Spring WebService</title>
+  </properties>
+
   <dependencies>
 
     <dependency>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring-xquery/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-xquery/pom.xml b/examples/camel-example-spring-xquery/pom.xml
index 539ff5a..ef3f7c6 100755
--- a/examples/camel-example-spring-xquery/pom.xml
+++ b/examples/camel-example-spring-xquery/pom.xml
@@ -32,6 +32,9 @@
   <description>An example using Spring XML to transform a message using XQuery</description>
 
   <properties>
+    <category>Beginner</category>
+    <title>Spring XQuery</title>
+
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>
     <camel.osgi.export.pkg/>

http://git-wip-us.apache.org/repos/asf/camel/blob/590a8c3d/examples/camel-example-spring/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring/pom.xml b/examples/camel-example-spring/pom.xml
index bf1cc9e..920862a 100755
--- a/examples/camel-example-spring/pom.xml
+++ b/examples/camel-example-spring/pom.xml
@@ -32,6 +32,8 @@
   <description>An example showing how to work with Camel and Spring</description>
 
   <properties>
+    <category>Beginner</category>
+
     <camel.osgi.export.pkg>org.apache.camel.example.spring.*</camel.osgi.export.pkg>
     <camel.osgi.import.additional>org.apache.activemq.xbean,org.apache.activemq.broker,org.apache.activemq.pool
     </camel.osgi.import.additional>