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 2016/12/01 11:24:44 UTC

[1/4] camel git commit: CAMEL-10509: Fixed model helper to work without camel context which was optiona. Such as camel-swagger-java uses that.

Repository: camel
Updated Branches:
  refs/heads/camel-2.18.x ba7fa060d -> 6cb200c09
  refs/heads/master 0da97136b -> 371a22e39


CAMEL-10509: Fixed model helper to work without camel context which was optiona. Such as camel-swagger-java uses that.


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

Branch: refs/heads/master
Commit: 371a22e39c7ed7f78444d46a77b8d0768d3bcd88
Parents: 9e685b1
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Dec 1 11:35:36 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 1 12:23:22 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/model/ModelHelper.java     | 58 ++++++++++++++++----
 1 file changed, 48 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/371a22e3/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java b/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
index a1d30fd..db40f63 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
@@ -38,6 +38,7 @@ import org.w3c.dom.Node;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Expression;
 import org.apache.camel.NamedNode;
+import org.apache.camel.TypeConversionException;
 import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.spi.NamespaceAware;
@@ -83,7 +84,14 @@ public final class ModelHelper {
         StringWriter buffer = new StringWriter();
         marshaller.marshal(definition, buffer);
 
-        Document dom = context.getTypeConverter().convertTo(Document.class, buffer.toString());
+        XmlConverter xmlConverter = newXmlConverter(context);
+        String xml = buffer.toString();
+        Document dom;
+        try {
+            dom = xmlConverter.toDOMDocument(xml, null);
+        } catch (Exception e) {
+            throw new TypeConversionException(xml, Document.class, e);
+        }
 
         // Add additional namespaces to the document root element
         Element documentElement = dom.getDocumentElement();
@@ -92,9 +100,6 @@ public final class ModelHelper {
         }
 
         // We invoke the type converter directly because we need to pass some custom XML output options
-        TypeConverterRegistry registry = context.getTypeConverterRegistry();
-        XmlConverter xmlConverter = registry.getInjector().newInstance(XmlConverter.class);
-
         Properties outputProperties = new Properties();
         outputProperties.put(OutputKeys.INDENT, "yes");
         outputProperties.put(OutputKeys.STANDALONE, "yes");
@@ -103,7 +108,6 @@ public final class ModelHelper {
         } catch (TransformerException e) {
             throw new IllegalStateException("Failed converting document object to string", e);
         }
-
     }
 
     /**
@@ -116,7 +120,7 @@ public final class ModelHelper {
      * @throws javax.xml.bind.JAXBException is thrown if error unmarshalling from xml to model
      */
     public static <T extends NamedNode> T createModelFromXml(CamelContext context, String xml, Class<T> type) throws JAXBException {
-        return modelToXml(context, xml, type);
+        return modelToXml(context, null, xml, type);
     }
 
     /**
@@ -129,7 +133,7 @@ public final class ModelHelper {
      * @throws javax.xml.bind.JAXBException is thrown if error unmarshalling from xml to model
      */
     public static <T extends NamedNode> T createModelFromXml(CamelContext context, InputStream stream, Class<T> type) throws JAXBException {
-        return modelToXml(context, stream, type);
+        return modelToXml(context, stream, null, type);
     }
 
     /**
@@ -142,8 +146,10 @@ public final class ModelHelper {
     public static RoutesDefinition loadRoutesDefinition(CamelContext context, InputStream inputStream) throws Exception {
         JAXBContext jaxbContext = getJAXBContext(context);
 
+        XmlConverter xmlConverter = newXmlConverter(context);
+        Document dom = xmlConverter.toDOMDocument(inputStream, null);
+
         Map<String, String> namespaces = new LinkedHashMap<>();
-        Document dom = context.getTypeConverter().mandatoryConvertTo(Document.class, inputStream);
         extractNamespaces(dom, namespaces);
 
         Binder<Node> binder = jaxbContext.createBinder();
@@ -172,11 +178,25 @@ public final class ModelHelper {
         return answer;
     }
 
-    private static <T extends NamedNode> T modelToXml(CamelContext context, Object object, Class<T> type) throws JAXBException {
+    private static <T extends NamedNode> T modelToXml(CamelContext context, InputStream is, String xml, Class<T> type) throws JAXBException {
         JAXBContext jaxbContext = getJAXBContext(context);
 
+        XmlConverter xmlConverter = newXmlConverter(context);
+        Document dom = null;
+        try {
+            if (is != null) {
+                dom = xmlConverter.toDOMDocument(is, null);
+            } else if (xml != null) {
+                dom = xmlConverter.toDOMDocument(xml, null);
+            }
+        } catch (Exception e) {
+            throw new TypeConversionException(xml, Document.class, e);
+        }
+        if (dom == null) {
+            throw new IllegalArgumentException("InputStream and XML is both null");
+        }
+
         Map<String, String> namespaces = new LinkedHashMap<>();
-        Document dom = context.getTypeConverter().convertTo(Document.class, object);
         extractNamespaces(dom, namespaces);
 
         Binder<Node> binder = jaxbContext.createBinder();
@@ -284,4 +304,22 @@ public final class ModelHelper {
             }
         }
     }
+
+    /**
+     * Creates a new {@link XmlConverter}
+     *
+     * @param context CamelContext if provided
+     * @return a new XmlConverter instance
+     */
+    private static XmlConverter newXmlConverter(CamelContext context) {
+        XmlConverter xmlConverter;
+        if (context != null) {
+            TypeConverterRegistry registry = context.getTypeConverterRegistry();
+            xmlConverter = registry.getInjector().newInstance(XmlConverter.class);
+        } else {
+            xmlConverter = new XmlConverter();
+        }
+        return xmlConverter;
+    }
+
 }


[4/4] camel git commit: CAMEL-10509: Fixed model helper to work without camel context which was optiona. Such as camel-swagger-java uses that.

Posted by da...@apache.org.
CAMEL-10509: Fixed model helper to work without camel context which was optiona. Such as camel-swagger-java uses that.


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

Branch: refs/heads/camel-2.18.x
Commit: 6cb200c09b20a9ac2919c17f747d6f0243601531
Parents: ba7fa06
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Dec 1 11:35:36 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 1 12:24:34 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/model/ModelHelper.java     | 58 ++++++++++++++++----
 1 file changed, 48 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6cb200c0/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java b/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
index a1d30fd..db40f63 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ModelHelper.java
@@ -38,6 +38,7 @@ import org.w3c.dom.Node;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Expression;
 import org.apache.camel.NamedNode;
+import org.apache.camel.TypeConversionException;
 import org.apache.camel.converter.jaxp.XmlConverter;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.spi.NamespaceAware;
@@ -83,7 +84,14 @@ public final class ModelHelper {
         StringWriter buffer = new StringWriter();
         marshaller.marshal(definition, buffer);
 
-        Document dom = context.getTypeConverter().convertTo(Document.class, buffer.toString());
+        XmlConverter xmlConverter = newXmlConverter(context);
+        String xml = buffer.toString();
+        Document dom;
+        try {
+            dom = xmlConverter.toDOMDocument(xml, null);
+        } catch (Exception e) {
+            throw new TypeConversionException(xml, Document.class, e);
+        }
 
         // Add additional namespaces to the document root element
         Element documentElement = dom.getDocumentElement();
@@ -92,9 +100,6 @@ public final class ModelHelper {
         }
 
         // We invoke the type converter directly because we need to pass some custom XML output options
-        TypeConverterRegistry registry = context.getTypeConverterRegistry();
-        XmlConverter xmlConverter = registry.getInjector().newInstance(XmlConverter.class);
-
         Properties outputProperties = new Properties();
         outputProperties.put(OutputKeys.INDENT, "yes");
         outputProperties.put(OutputKeys.STANDALONE, "yes");
@@ -103,7 +108,6 @@ public final class ModelHelper {
         } catch (TransformerException e) {
             throw new IllegalStateException("Failed converting document object to string", e);
         }
-
     }
 
     /**
@@ -116,7 +120,7 @@ public final class ModelHelper {
      * @throws javax.xml.bind.JAXBException is thrown if error unmarshalling from xml to model
      */
     public static <T extends NamedNode> T createModelFromXml(CamelContext context, String xml, Class<T> type) throws JAXBException {
-        return modelToXml(context, xml, type);
+        return modelToXml(context, null, xml, type);
     }
 
     /**
@@ -129,7 +133,7 @@ public final class ModelHelper {
      * @throws javax.xml.bind.JAXBException is thrown if error unmarshalling from xml to model
      */
     public static <T extends NamedNode> T createModelFromXml(CamelContext context, InputStream stream, Class<T> type) throws JAXBException {
-        return modelToXml(context, stream, type);
+        return modelToXml(context, stream, null, type);
     }
 
     /**
@@ -142,8 +146,10 @@ public final class ModelHelper {
     public static RoutesDefinition loadRoutesDefinition(CamelContext context, InputStream inputStream) throws Exception {
         JAXBContext jaxbContext = getJAXBContext(context);
 
+        XmlConverter xmlConverter = newXmlConverter(context);
+        Document dom = xmlConverter.toDOMDocument(inputStream, null);
+
         Map<String, String> namespaces = new LinkedHashMap<>();
-        Document dom = context.getTypeConverter().mandatoryConvertTo(Document.class, inputStream);
         extractNamespaces(dom, namespaces);
 
         Binder<Node> binder = jaxbContext.createBinder();
@@ -172,11 +178,25 @@ public final class ModelHelper {
         return answer;
     }
 
-    private static <T extends NamedNode> T modelToXml(CamelContext context, Object object, Class<T> type) throws JAXBException {
+    private static <T extends NamedNode> T modelToXml(CamelContext context, InputStream is, String xml, Class<T> type) throws JAXBException {
         JAXBContext jaxbContext = getJAXBContext(context);
 
+        XmlConverter xmlConverter = newXmlConverter(context);
+        Document dom = null;
+        try {
+            if (is != null) {
+                dom = xmlConverter.toDOMDocument(is, null);
+            } else if (xml != null) {
+                dom = xmlConverter.toDOMDocument(xml, null);
+            }
+        } catch (Exception e) {
+            throw new TypeConversionException(xml, Document.class, e);
+        }
+        if (dom == null) {
+            throw new IllegalArgumentException("InputStream and XML is both null");
+        }
+
         Map<String, String> namespaces = new LinkedHashMap<>();
-        Document dom = context.getTypeConverter().convertTo(Document.class, object);
         extractNamespaces(dom, namespaces);
 
         Binder<Node> binder = jaxbContext.createBinder();
@@ -284,4 +304,22 @@ public final class ModelHelper {
             }
         }
     }
+
+    /**
+     * Creates a new {@link XmlConverter}
+     *
+     * @param context CamelContext if provided
+     * @return a new XmlConverter instance
+     */
+    private static XmlConverter newXmlConverter(CamelContext context) {
+        XmlConverter xmlConverter;
+        if (context != null) {
+            TypeConverterRegistry registry = context.getTypeConverterRegistry();
+            xmlConverter = registry.getInjector().newInstance(XmlConverter.class);
+        } else {
+            xmlConverter = new XmlConverter();
+        }
+        return xmlConverter;
+    }
+
 }


[3/4] camel git commit: CAMEL-10344: RouteIdFactory for rest routes

Posted by da...@apache.org.
CAMEL-10344: RouteIdFactory for rest routes


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

Branch: refs/heads/master
Commit: b0025751386f59e7020ebd5cc19b9580eb477f46
Parents: 0da9713
Author: Tomasz Kopczynski <to...@kopczynski.net.pl>
Authored: Sun Nov 27 20:05:49 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 1 12:23:22 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/impl/RouteIdFactory.java   | 126 ++++++++++++++++---
 .../apache/camel/model/rest/RestDefinition.java |   8 +-
 .../apache/camel/model/rest/VerbDefinition.java |  10 +-
 .../apache/camel/impl/RouteIdFactoryTest.java   |  15 +++
 4 files changed, 143 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b0025751/camel-core/src/main/java/org/apache/camel/impl/RouteIdFactory.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/RouteIdFactory.java b/camel-core/src/main/java/org/apache/camel/impl/RouteIdFactory.java
index 5fdb51c..06044ea 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/RouteIdFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/RouteIdFactory.java
@@ -22,20 +22,22 @@ import java.util.Optional;
 import org.apache.camel.NamedNode;
 import org.apache.camel.model.FromDefinition;
 import org.apache.camel.model.RouteDefinition;
-import org.apache.camel.model.rest.RestBindingDefinition;
+import org.apache.camel.model.rest.RestDefinition;
+import org.apache.camel.model.rest.VerbDefinition;
 import org.apache.camel.spi.NodeIdFactory;
 
 /**
  * Factory for generating route ids based on uris.
  * <p>
  * For direct/seda routes it returns route name (direct:start -> start).
- * For rest routes it returns its context path.
+ * For rest routes it returns its method and context path formatted as one string.
  * <p>
  * When id cannot be generated, falls back to other {@link NodeIdFactory} implementation.
  * If none is passed in the constructor, then {@link DefaultNodeIdFactory} is used.
  */
 public class RouteIdFactory implements NodeIdFactory {
 
+    private static final char SEPARATOR = '-';
     private NodeIdFactory defaultNodeIdFactory;
 
     public RouteIdFactory() {
@@ -62,6 +64,14 @@ public class RouteIdFactory implements NodeIdFactory {
             }
         }
 
+        if (definition instanceof VerbDefinition) {
+            Optional<String> id = extractIdFromVerb((VerbDefinition) definition);
+
+            if (id.isPresent()) {
+                return id.get();
+            }
+        }
+
         return defaultNodeIdFactory.createId(definition);
     }
 
@@ -69,6 +79,10 @@ public class RouteIdFactory implements NodeIdFactory {
      * Extract id from routes
      */
     private Optional<String> extractId(RouteDefinition routeDefinition) {
+        if (routeDefinition.getRestDefinition() != null) {
+            return Optional.empty();
+        }
+
         List<FromDefinition> inputs = routeDefinition.getInputs();
 
         if (inputs == null || inputs.isEmpty()) {
@@ -97,27 +111,111 @@ public class RouteIdFactory implements NodeIdFactory {
     }
 
     /**
-     * Extract id from rest route.
+     * Extract id from a rest route.
      */
     private Optional<String> extractIdFromRestDefinition(RouteDefinition route) {
-        if (route.getOutputs().get(0) instanceof RestBindingDefinition) {
-            if (route.getRestDefinition() == null) {
-                return Optional.empty();
-            }
+        if (route.getRestDefinition() != null) {
+            return extractIdFromInput(route);
+        }
 
-            String path = route.getRestDefinition().getPath();
+        return Optional.empty();
+    }
 
-            if (path == null) {
-                return Optional.empty();
-            }
+    /**
+     * Extract id from a rest verb definition.
+     */
+    private Optional<String> extractIdFromVerb(VerbDefinition verb) {
+        RestDefinition restDefinition = verb.getRest();
+
+        if (restDefinition != null) {
+            StringBuilder routeId = new StringBuilder();
+            routeId.append(verb.asVerb());
+            appendWithSeparator(routeId, prepareUri(restDefinition.getPath()));
 
-            if (path.indexOf('/') > 0) {
-                return Optional.of(path.substring(0, path.indexOf('/')));
+            if (verb.getUri() != null && verb.getUri().length() > 0) {
+                appendWithSeparator(routeId, prepareUri(verb.getUri()));
             }
 
-            return Optional.of(path);
+            verb.setUsedForGeneratingNodeId(true);
+
+            return Optional.of(routeId.toString());
         }
 
         return Optional.empty();
+
+    }
+
+    /**
+     * Extract id from rest input uri.
+     */
+    private Optional<String> extractIdFromInput(RouteDefinition route) {
+        List<FromDefinition> inputs = route.getInputs();
+
+        if (inputs == null || inputs.isEmpty()) {
+            return Optional.empty();
+        }
+
+        FromDefinition from = inputs.get(0);
+        String uri = from.getUri();
+
+        String[] uriSplitted = uri.split(":");
+
+        // needs to have at least 3 fields
+        if (uriSplitted.length < 3) {
+            return Optional.empty();
+        }
+
+        String verb = uriSplitted[1];
+        String contextPath = uriSplitted[2];
+        String additionalUri = "";
+
+        if (uriSplitted.length > 3 && uriSplitted[3].startsWith("/")) {
+            additionalUri = uriSplitted[3];
+        }
+
+        StringBuilder routeId = new StringBuilder(verb.length() + contextPath.length() + additionalUri.length());
+
+        routeId.append(verb);
+        appendWithSeparator(routeId, prepareUri(contextPath));
+
+        if (additionalUri.length() > 0) {
+            appendWithSeparator(routeId, prepareUri(additionalUri));
+        }
+
+        return Optional.of(routeId.toString());
+    }
+
+    /**
+     * Prepares uri to be part of the id.
+     */
+    private String prepareUri(String uri) {
+        if (uri == null) {
+            return "";
+        }
+
+        if (uri.contains("?")) {
+            uri = uri.substring(0, uri.indexOf('?'));
+        }
+
+        return uri.replaceAll("/", String.valueOf(SEPARATOR));
+    }
+
+    /**
+     * Appends new element to the builder.
+     */
+    private void appendWithSeparator(StringBuilder builder, String str) {
+        if (builder.charAt(builder.length() - 1) == SEPARATOR) {
+            if (str.startsWith(String.valueOf(SEPARATOR))) {
+                builder.append(str.replaceFirst(String.valueOf(SEPARATOR), ""));
+            } else {
+                builder.append(str);
+            }
+        } else {
+            if (!str.startsWith(String.valueOf(SEPARATOR))) {
+                builder.append(SEPARATOR);
+            }
+
+            builder.append(str);
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/b0025751/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index c7ba4b8..68deb66 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -772,7 +772,13 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
                     route.setId(id);
                 }
             }
-            String routeId = route.idOrCreate(camelContext.getNodeIdFactory());
+
+            String routeId = verb.idOrCreate(camelContext.getNodeIdFactory());
+
+            if (!verb.getUsedForGeneratingNodeId()) {
+                routeId = route.idOrCreate(camelContext.getNodeIdFactory());
+            }
+
             verb.setRouteId(routeId);
             options.put("routeId", routeId);
             if (component != null && !component.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/camel/blob/b0025751/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
index be27799..cc6731e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
@@ -101,6 +101,9 @@ public class VerbDefinition extends OptionalIdentifiedDefinition<VerbDefinition>
     @XmlAttribute
     private Boolean apiDocs;
 
+    @XmlTransient
+    private Boolean usedForGeneratingNodeId = Boolean.FALSE;
+
     @Override
     public String getLabel() {
         if (method != null) {
@@ -406,6 +409,11 @@ public class VerbDefinition extends OptionalIdentifiedDefinition<VerbDefinition>
         }
     }
 
+    public Boolean getUsedForGeneratingNodeId() {
+        return usedForGeneratingNodeId;
+    }
 
-
+    public void setUsedForGeneratingNodeId(Boolean usedForGeneratingNodeId) {
+        this.usedForGeneratingNodeId = usedForGeneratingNodeId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/b0025751/camel-core/src/test/java/org/apache/camel/impl/RouteIdFactoryTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/RouteIdFactoryTest.java b/camel-core/src/test/java/org/apache/camel/impl/RouteIdFactoryTest.java
index d6ecb71..c74ea06 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RouteIdFactoryTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RouteIdFactoryTest.java
@@ -39,6 +39,9 @@ public class RouteIdFactoryTest extends ContextTestSupport {
                 context.setNodeIdFactory(new RouteIdFactory());
                 from("direct:start1?timeout=30000").to("mock:result");
                 from("direct:start2").to("mock:result");
+                rest("/say/hello").get("/bar").to("mock:result");
+                rest("/say/hello").get().to("mock:result");
+                rest().get("/hello").to("mock:result");
             }
         };
     }
@@ -51,4 +54,16 @@ public class RouteIdFactoryTest extends ContextTestSupport {
         assertEquals("start2", context.getRouteDefinitions().get(1).getId());
     }
 
+    public void testRestRouteIdWithVerbUri() {
+        assertEquals("get-say-hello-bar", context.getRouteDefinitions().get(2).getId());
+    }
+
+    public void testRestRouteIdWithoutVerbUri() {
+        assertEquals("get-say-hello", context.getRouteDefinitions().get(3).getId());
+    }
+
+    public void testRestRouteIdWithoutPathUri() {
+        assertEquals("get-hello", context.getRouteDefinitions().get(4).getId());
+    }
+
 }
\ No newline at end of file


[2/4] camel git commit: Polished

Posted by da...@apache.org.
Polished


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

Branch: refs/heads/master
Commit: 9e685b1993e18eee7bcd12390e1824ec7d8a58aa
Parents: b002575
Author: Claus Ibsen <da...@apache.org>
Authored: Thu Dec 1 11:05:00 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu Dec 1 12:23:22 2016 +0100

----------------------------------------------------------------------
 .../java/org/apache/camel/spring/boot/SpringTypeConverter.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/9e685b19/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/SpringTypeConverter.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/SpringTypeConverter.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/SpringTypeConverter.java
index 5f4021a..4e45c8e 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/SpringTypeConverter.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/SpringTypeConverter.java
@@ -42,7 +42,7 @@ public class SpringTypeConverter extends TypeConverterSupport {
             return null;
         }
         
-        // do not attempt to convert List -> Map. Ognl expression may use this converter  as a fallback expecting null
+        // do not attempt to convert List -> Map. Ognl expression may use this converter as a fallback expecting null
         if (type.isAssignableFrom(Map.class) && (value.getClass().isArray() || value instanceof Collection)) {
             return null;
         }