You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/08/31 13:55:14 UTC

[camel] branch main updated: (chores) camel-core: replace duplicated code (#11256)

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 8a5b7e6733d (chores) camel-core: replace duplicated code (#11256)
8a5b7e6733d is described below

commit 8a5b7e6733d7f0bd6a818bd363796a55c9dee5ef
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Thu Aug 31 15:55:05 2023 +0200

    (chores) camel-core: replace duplicated code (#11256)
    
    Use the StringHelper before method as it avoids traversing the string twice and is already defined on StringHelper
---
 .../org/apache/camel/component/seda/SedaComponent.java  |  7 ++-----
 .../src/main/java/org/apache/camel/Endpoint.java        |  8 +++-----
 .../camel/impl/engine/BasePackageScanResolver.java      |  6 ++----
 .../apache/camel/catalog/impl/AbstractCamelCatalog.java |  5 +----
 .../apache/camel/builder/xml/XPathTransformTest.java    | 12 +++---------
 .../management/DefaultManagementObjectNameStrategy.java |  4 ++--
 .../org/apache/camel/converter/stream/CipherPair.java   | 10 +++-------
 .../java/org/apache/camel/support/DefaultEndpoint.java  |  6 +-----
 .../apache/camel/support/PropertyBindingSupport.java    | 13 +++----------
 .../support/component/SendDynamicAwareSupport.java      | 11 +++--------
 .../java/org/apache/camel/util/InetAddressUtil.java     |  5 +----
 .../src/main/java/org/apache/camel/util/OgnlHelper.java |  6 +-----
 .../main/java/org/apache/camel/util/StringHelper.java   | 17 +++++++++++++++--
 .../src/main/java/org/apache/camel/util/URISupport.java | 12 ++----------
 14 files changed, 42 insertions(+), 80 deletions(-)

diff --git a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaComponent.java b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaComponent.java
index 3fc483236d6..00677198df5 100644
--- a/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaComponent.java
+++ b/components/camel-seda/src/main/java/org/apache/camel/component/seda/SedaComponent.java
@@ -25,6 +25,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -284,11 +285,7 @@ public class SedaComponent extends DefaultComponent {
     }
 
     public String getQueueKey(String uri) {
-        if (uri.contains("?")) {
-            // strip parameters
-            uri = uri.substring(0, uri.indexOf('?'));
-        }
-        return uri;
+        return StringHelper.before(uri, "?", uri);
     }
 
     @Override
diff --git a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
index e7cd23e4aaf..b2685be0f9f 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
@@ -19,6 +19,7 @@ package org.apache.camel;
 import java.util.Map;
 
 import org.apache.camel.support.service.ServiceSupport;
+import org.apache.camel.util.StringHelper;
 
 /**
  * An <a href="http://camel.apache.org/endpoint.html">endpoint</a> implements the
@@ -47,11 +48,8 @@ public interface Endpoint extends IsSingleton, Service, ComponentAware {
      */
     default String getEndpointBaseUri() {
         String value = getEndpointUri();
-        int pos = value.indexOf('?');
-        if (pos > 0) {
-            value = value.substring(0, pos);
-        }
-        return value;
+
+        return StringHelper.before(value, "?", value);
     }
 
     /**
diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
index af27b193f02..b15780b2b41 100644
--- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
+++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/BasePackageScanResolver.java
@@ -30,6 +30,7 @@ import java.util.Set;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 import org.apache.camel.support.service.ServiceSupport;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -178,10 +179,7 @@ public abstract class BasePackageScanResolver extends ServiceSupport implements
         }
 
         // Else it's in a JAR, grab the path to the jar
-        if (urlPath.indexOf('!') > 0) {
-            urlPath = urlPath.substring(0, urlPath.indexOf('!'));
-        }
-        return urlPath;
+        return StringHelper.before(urlPath, "!", urlPath);
     }
 
     protected Enumeration<URL> getUrls(String packageName, ClassLoader loader) {
diff --git a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
index f808d6bad47..4b141027d7b 100644
--- a/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
+++ b/core/camel-core-catalog/src/main/java/org/apache/camel/catalog/impl/AbstractCamelCatalog.java
@@ -813,10 +813,7 @@ public abstract class AbstractCamelCatalog {
 
     public String endpointComponentName(String uri) {
         if (uri != null) {
-            int idx = uri.indexOf(':');
-            if (idx > 0) {
-                return uri.substring(0, idx);
-            }
+            return StringHelper.before(uri, ":");
         }
         return null;
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTransformTest.java b/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTransformTest.java
index 4a7ccdb9305..6d1733cb8c6 100644
--- a/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTransformTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTransformTest.java
@@ -24,6 +24,7 @@ import org.w3c.dom.NodeList;
 
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.language.xpath.XPathBuilder;
+import org.apache.camel.util.StringHelper;
 import org.hamcrest.Matchers;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
@@ -117,15 +118,8 @@ public class XPathTransformTest extends ContextTestSupport {
         if (version.startsWith("1.")) {
             version = version.substring(2, 3);
         } else {
-            int pos = version.indexOf('.');
-            if (pos != -1) {
-                version = version.substring(0, pos);
-            }
-            pos = version.indexOf('-');
-            if (pos != -1) {
-                version = version.substring(0, pos);
-            }
-
+            version = StringHelper.before(version, ".", version);
+            version = StringHelper.before(version, "-", version);
         }
         return Integer.parseInt(version);
     }
diff --git a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java
index 5d6aae5d2bc..80f1be099f9 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/DefaultManagementObjectNameStrategy.java
@@ -59,6 +59,7 @@ import org.apache.camel.spi.ManagementObjectNameStrategy;
 import org.apache.camel.spi.RouteController;
 import org.apache.camel.util.InetAddressUtil;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 
 /**
@@ -476,8 +477,7 @@ public class DefaultManagementObjectNameStrategy implements ManagementObjectName
         } else {
             // non singleton then add hashcoded id
             String uri = ep.getEndpointKey();
-            int pos = uri.indexOf('?');
-            String id = (pos == -1) ? uri : uri.substring(0, pos);
+            String id = StringHelper.before(uri, "?", uri);
             id += "?id=" + ObjectHelper.getIdentityHashCode(ep);
             return id;
         }
diff --git a/core/camel-support/src/main/java/org/apache/camel/converter/stream/CipherPair.java b/core/camel-support/src/main/java/org/apache/camel/converter/stream/CipherPair.java
index b961292256b..4a8cf319767 100644
--- a/core/camel-support/src/main/java/org/apache/camel/converter/stream/CipherPair.java
+++ b/core/camel-support/src/main/java/org/apache/camel/converter/stream/CipherPair.java
@@ -24,6 +24,8 @@ import javax.crypto.Cipher;
 import javax.crypto.KeyGenerator;
 import javax.crypto.spec.IvParameterSpec;
 
+import org.apache.camel.util.StringHelper;
+
 /**
  * A class to hold a pair of encryption and decryption ciphers.
  */
@@ -36,13 +38,7 @@ public class CipherPair {
     public CipherPair(String transformation) throws GeneralSecurityException {
         this.transformation = transformation;
 
-        int d = transformation.indexOf('/');
-        String a;
-        if (d > 0) {
-            a = transformation.substring(0, d);
-        } else {
-            a = transformation;
-        }
+        String a = StringHelper.before(transformation, "/", transformation);
 
         KeyGenerator keygen = KeyGenerator.getInstance(a);
         keygen.init(new SecureRandom());
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
index 0871a893e2d..f21d6159cf9 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultEndpoint.java
@@ -176,11 +176,7 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
         if (isLenientProperties()) {
             // only use the endpoint uri without parameters as the properties are lenient
             String uri = getEndpointUri();
-            if (uri.indexOf('?') != -1) {
-                return StringHelper.before(uri, "?");
-            } else {
-                return uri;
-            }
+            return StringHelper.before(uri, "?", uri);
         } else {
             // use the full endpoint uri
             return getEndpointUri();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PropertyBindingSupport.java b/core/camel-support/src/main/java/org/apache/camel/support/PropertyBindingSupport.java
index 3f2617fd6c2..fcee3ae44ee 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PropertyBindingSupport.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PropertyBindingSupport.java
@@ -382,11 +382,8 @@ public final class PropertyBindingSupport {
                 // now lets update the target/name/class before next iterator (next part)
                 if (configurer instanceof PropertyConfigurerGetter) {
                     // lets see if we have a specialized configurer
-                    String key = part;
-                    int pos = part.indexOf('[');
-                    if (pos != -1) {
-                        key = part.substring(0, pos);
-                    }
+                    String key = StringHelper.before(part, "[", part);
+
                     // if its a map/list/array type then find out what type the collection uses
                     // so we can use that to lookup as configurer
                     Class<?> collectionType = (Class<?>) ((PropertyConfigurerGetter) configurer)
@@ -451,11 +448,7 @@ public final class PropertyBindingSupport {
             boolean ignoreCase, PropertyConfigurer configurer) {
 
         // if the name has collection lookup then ignore that as we want to create the instance
-        String key = name;
-        int pos = name.indexOf('[');
-        if (pos != -1) {
-            key = name.substring(0, pos);
-        }
+        String key = StringHelper.before(name, "[", name);
 
         Object answer = null;
         Class<?> parameterType = null;
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/component/SendDynamicAwareSupport.java b/core/camel-support/src/main/java/org/apache/camel/support/component/SendDynamicAwareSupport.java
index 93a8459a191..0d09f8f776e 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/component/SendDynamicAwareSupport.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/component/SendDynamicAwareSupport.java
@@ -25,6 +25,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.spi.EndpointUriFactory;
 import org.apache.camel.spi.SendDynamicAware;
 import org.apache.camel.support.service.ServiceSupport;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 
 /**
@@ -136,15 +137,9 @@ public abstract class SendDynamicAwareSupport extends ServiceSupport implements
     }
 
     public String asEndpointUri(Exchange exchange, String uri, Map<String, Object> properties) throws Exception {
-        String answer;
         String query = URISupport.createQueryString(properties, false);
-        int pos = uri.indexOf('?');
-        if (pos != -1) {
-            answer = uri.substring(0, pos) + "?" + query;
-        } else {
-            answer = uri + "?" + query;
-        }
-        return answer;
+
+        return StringHelper.before(uri, "?", uri) + "?" + query;
     }
 
 }
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java b/core/camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java
index b1e41ed07ce..97b74dbb16b 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/InetAddressUtil.java
@@ -51,10 +51,7 @@ public final class InetAddressUtil {
         } catch (UnknownHostException uhe) {
             String host = uhe.getMessage(); // host = "hostname: hostname"
             if (host != null) {
-                int colon = host.indexOf(':');
-                if (colon > 0) {
-                    return host.substring(0, colon);
-                }
+                return StringHelper.before(host, ":");
             }
             throw uhe;
         }
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java
index d97d8b5a600..d196b35e47f 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/OgnlHelper.java
@@ -139,11 +139,7 @@ public final class OgnlHelper {
      * @return                the Camel OGNL expression without any trailing operators.
      */
     public static String removeTrailingOperators(String ognlExpression) {
-        int pos = ognlExpression.indexOf('[');
-        if (pos != -1) {
-            return ognlExpression.substring(0, pos);
-        }
-        return ognlExpression;
+        return StringHelper.before(ognlExpression, "[", ognlExpression);
     }
 
     public static String removeOperators(String ognlExpression) {
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
index 6ceb325801e..f74ccf2e6de 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/StringHelper.java
@@ -655,8 +655,21 @@ public final class StringHelper {
      * @return              the text before the token, or the supplied defaultValue if text does not contain the token
      */
     public static String before(String text, String before, String defaultValue) {
-        String answer = before(text, before);
-        return answer != null ? answer : defaultValue;
+        int pos = text.indexOf(before);
+        return pos == -1 ? defaultValue : text.substring(0, pos);
+    }
+
+    /**
+     * Returns the string before the given token, or the default value
+     *
+     * @param  text         the text
+     * @param  before       the token
+     * @param  defaultValue the value to return if text does not contain the token
+     * @return              the text before the token, or the supplied defaultValue if text does not contain the token
+     */
+    public static String before(String text, char before, String defaultValue) {
+        int pos = text.indexOf(before);
+        return pos == -1 ? defaultValue : text.substring(0, pos);
     }
 
     /**
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
index faba4a36f35..76478f0ebdd 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/URISupport.java
@@ -115,12 +115,8 @@ public final class URISupport {
         if (path.startsWith("//")) {
             path = path.substring(2);
         }
-        int idx = path.indexOf('?');
-        if (idx > -1) {
-            path = path.substring(0, idx);
-        }
 
-        return path;
+        return StringHelper.before(path, "?", path);
     }
 
     /**
@@ -148,11 +144,7 @@ public final class URISupport {
      * @return     the uri without the query parameter
      */
     public static String stripQuery(String uri) {
-        int idx = uri.indexOf('?');
-        if (idx > -1) {
-            uri = uri.substring(0, idx);
-        }
-        return uri;
+        return StringHelper.before(uri, "?", uri);
     }
 
     /**