Optimize getEndpointUri to avoid normalizing uri 2 times

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

Branch: refs/heads/master
Commit: be41ff6716b691b980e38faae51d48e076232e05
Parents: 55af2c3
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sat May 27 12:14:17 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sat May 27 12:14:17 2017 +0200

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultCamelContext.java     | 13 ++++++++++++-
 .../main/java/org/apache/camel/impl/EndpointKey.java   |  8 ++++++++
 2 files changed, 20 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/be41ff67/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index 7ed1d10..7ed6e84 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -657,7 +657,8 @@ public class DefaultCamelContext extends ServiceSupport 
implements ModelCamelCon
 
         Endpoint answer;
         String scheme = null;
-        EndpointKey key = getEndpointKey(uri);
+        // use optimized method to get the endpoint uri
+        EndpointKey key = getEndpointKeyPreNormalized(uri);
         answer = endpoints.get(key);
         if (answer == null) {
             try {
@@ -814,6 +815,16 @@ public class DefaultCamelContext extends ServiceSupport 
implements ModelCamelCon
     /**
      * Gets the endpoint key to use for lookup or whe adding endpoints to the 
{@link DefaultEndpointRegistry}
      *
+     * @param uri the endpoint uri which is pre normalized
+     * @return the key
+     */
+    protected EndpointKey getEndpointKeyPreNormalized(String uri) {
+        return new EndpointKey(uri, true);
+    }
+
+    /**
+     * Gets the endpoint key to use for lookup or whe adding endpoints to the 
{@link DefaultEndpointRegistry}
+     *
      * @param uri      the endpoint uri
      * @param endpoint the endpoint
      * @return the key

http://git-wip-us.apache.org/repos/asf/camel/blob/be41ff67/camel-core/src/main/java/org/apache/camel/impl/EndpointKey.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/EndpointKey.java 
b/camel-core/src/main/java/org/apache/camel/impl/EndpointKey.java
index 9875491..f63477a 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/EndpointKey.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/EndpointKey.java
@@ -31,6 +31,14 @@ final class EndpointKey extends ValueHolder<String> {
         ObjectHelper.notEmpty(uri, "uri");
     }
 
+    /**
+     * Optimized when the uri is already normalized.
+     */
+    EndpointKey(String uri, boolean normalized) {
+        super(uri);
+        ObjectHelper.notEmpty(uri, "uri");
+    }
+
     @Override
     public String toString() {
         return get();

Reply via email to