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 785dc429eab (chores) camel-components: replace duplicated code (#11258) 785dc429eab is described below commit 785dc429eabbb7084cfc4b9401fe9f55cadb9a07 Author: Otavio Rodolfo Piske <orpi...@users.noreply.github.com> AuthorDate: Thu Aug 31 17:06:31 2023 +0200 (chores) camel-components: replace duplicated code (#11258) Use the StringHelper before method as it avoids traversing the string twice and is already defined on StringHelper --- .../atmosphere/websocket/WebsocketEndpoint.java | 6 ++---- .../camel/component/aws2/s3/utils/AWS2S3Utils.java | 1 + .../component/file/azure/FilesConfiguration.java | 1 - .../camel/component/file/azure/FilesURIStrings.java | 6 ++---- .../component/disruptor/DisruptorComponent.java | 7 ++----- .../camel/component/file/remote/FtpComponent.java | 7 ++----- .../camel/component/file/remote/SftpComponent.java | 6 ++---- .../camel/component/jms/JmsSendDynamicAware.java | 21 +++++++++++---------- .../apache/camel/component/scp/ScpComponent.java | 5 +++-- .../component/kafka/KafkaSendDynamicAware.java | 8 +++----- .../camel/component/mllp/MllpTcpClientProducer.java | 9 +++------ .../mllp/internal/TcpServerAcceptThread.java | 8 ++------ .../mllp/internal/TcpServerBindThread.java | 8 ++------ .../TcpServerConsumerValidationRunnable.java | 8 ++------ .../mllp/internal/TcpSocketConsumerRunnable.java | 8 ++------ .../handlers/HttpServerMultiplexChannelHandler.java | 6 ++---- .../paho/mqtt5/PahoMqtt5SendDynamicAware.java | 8 +++----- .../camel/component/paho/PahoSendDynamicAware.java | 9 ++++----- .../camel/component/sjms/SjmsSendDynamicAware.java | 8 +++----- .../SpringRabbitMQSendDynamicAware.java | 8 +++----- .../xtokenizer/XMLTokenExpressionIterator.java | 2 +- .../apache/camel/test/junit5/CamelTestSupport.java | 6 +----- .../undertow/handlers/RestRootHandler.java | 6 ++---- 23 files changed, 58 insertions(+), 104 deletions(-) diff --git a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java index f6f40d18d79..b8e89f424e1 100644 --- a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java +++ b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java @@ -28,6 +28,7 @@ import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriPath; +import org.apache.camel.util.StringHelper; /** * Expose WebSocket endpoints using the Atmosphere framework. @@ -56,10 +57,7 @@ public class WebsocketEndpoint extends ServletEndpoint { public WebsocketEndpoint(String endPointURI, WebsocketComponent component, URI httpUri) throws URISyntaxException { super(endPointURI, component, httpUri); - //TODO find a better way of assigning the store - int idx = endPointURI.indexOf('?'); - - this.servicePath = idx > -1 ? endPointURI.substring(0, idx) : endPointURI; + this.servicePath = StringHelper.before(endPointURI, "?", endPointURI); this.store = component.getWebSocketStore(servicePath); } diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/utils/AWS2S3Utils.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/utils/AWS2S3Utils.java index fa166fdcdb8..d99e4405afa 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/utils/AWS2S3Utils.java +++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/utils/AWS2S3Utils.java @@ -26,6 +26,7 @@ import org.apache.camel.StreamCache; import org.apache.camel.component.aws2.s3.AWS2S3Configuration; import org.apache.camel.component.aws2.s3.AWS2S3Constants; import org.apache.camel.util.ObjectHelper; +import org.apache.camel.util.StringHelper; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; diff --git a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConfiguration.java b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConfiguration.java index a70eeff832a..98ada132def 100644 --- a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConfiguration.java +++ b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesConfiguration.java @@ -93,7 +93,6 @@ public class FilesConfiguration extends RemoteFileConfiguration { public void setHost(String accountOrHostname) { var dot = accountOrHostname.indexOf('.'); var hasDot = dot >= 0; - account = hasDot ? accountOrHostname.substring(0, dot) : accountOrHostname; super.setHost(hasDot ? accountOrHostname : account + '.' + DEFAULT_INTERNET_DOMAIN); } diff --git a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesURIStrings.java b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesURIStrings.java index 28c5ec65f12..27cd181a0e7 100644 --- a/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesURIStrings.java +++ b/components/camel-azure/camel-azure-files/src/main/java/org/apache/camel/component/file/azure/FilesURIStrings.java @@ -20,6 +20,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Collections; +import org.apache.camel.util.StringHelper; import org.apache.camel.util.URISupport; /** @@ -41,10 +42,7 @@ final class FilesURIStrings { * $ for the expression (file language) */ static URI getBaseURI(String uri) throws URISyntaxException { - String baseUri = uri; - if (uri.indexOf(QUERY_SEPARATOR) != -1) { - baseUri = uri.substring(0, uri.indexOf(QUERY_SEPARATOR)); - } + String baseUri = StringHelper.before(uri, QUERY_SEPARATOR, uri); return new URI(baseUri); } diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java index 62b3f567a34..13e96c65b86 100644 --- a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java +++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java @@ -23,6 +23,7 @@ import org.apache.camel.Endpoint; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.DefaultComponent; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -165,11 +166,7 @@ public class DisruptorComponent extends DefaultComponent { } public static String getDisruptorKey(String uri) { - if (uri.contains("?")) { - // strip parameters - uri = uri.substring(0, uri.indexOf('?')); - } - return uri; + return StringHelper.before(uri, "?", uri); } @Override diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpComponent.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpComponent.java index 124ea641ebf..2d05aa85ab5 100644 --- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpComponent.java +++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpComponent.java @@ -26,6 +26,7 @@ import org.apache.camel.spi.annotations.Component; import org.apache.camel.support.EndpointHelper; import org.apache.camel.support.component.PropertyConfigurerSupport; import org.apache.camel.util.PropertiesHelper; +import org.apache.camel.util.StringHelper; import org.apache.commons.net.ftp.FTPFile; /** @@ -66,11 +67,7 @@ public class FtpComponent extends RemoteFileComponent<FTPFile> { * $ for the expression (file language) */ protected String getBaseUri(String uri) { - String baseUri = uri; - if (uri.indexOf('?') != -1) { - baseUri = uri.substring(0, uri.indexOf('?')); - } - return baseUri; + return StringHelper.before(uri, "?", uri); } /** diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java index 1aca05b544f..9314b7a3f83 100644 --- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java +++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java @@ -22,6 +22,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.component.file.GenericFileEndpoint; import org.apache.camel.spi.annotations.Component; +import org.apache.camel.util.StringHelper; /** * Secure FTP Component @@ -45,10 +46,7 @@ public class SftpComponent extends RemoteFileComponent<SftpRemoteFile> { // and the URI constructor will regard $ as an illegal character and we // dont want to enforce end users to // to escape the $ for the expression (file language) - String baseUri = uri; - if (uri.contains("?")) { - baseUri = uri.substring(0, uri.indexOf('?')); - } + String baseUri = StringHelper.before(uri, "?", uri); // lets make sure we create a new configuration as each endpoint can // customize its own version diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsSendDynamicAware.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsSendDynamicAware.java index 28a5403b343..d5877c83aa9 100644 --- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsSendDynamicAware.java +++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsSendDynamicAware.java @@ -105,22 +105,23 @@ public class JmsSendDynamicAware extends ServiceSupport implements SendDynamicAw private String parseDestinationName(String uri) { // strip query uri = uri.replaceFirst(scheme + "://", ":"); - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + uri = StringHelper.before(uri, "?", uri); // destination name is after last colon (but not after double colon) String shortUri = StringHelper.before(uri, "::"); - pos = shortUri == null - ? uri.lastIndexOf(':') - : shortUri.lastIndexOf(':'); - - if (pos != -1) { - return uri.substring(pos + 1); + final int lastIdx = lastIndexOneOf(uri, shortUri); + if (lastIdx != -1) { + return uri.substring(lastIdx + 1); } else { return null; } } + private static int lastIndexOneOf(String uri, String shortUri) { + if (shortUri == null) { + return uri.lastIndexOf(':'); + } + return shortUri.lastIndexOf(':'); + } + } diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java index 7e7eaa9d34b..898c588c6bd 100644 --- a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java +++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java @@ -25,6 +25,7 @@ import org.apache.camel.component.file.GenericFileEndpoint; import org.apache.camel.component.file.remote.RemoteFileComponent; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.annotations.Component; +import org.apache.camel.util.StringHelper; /** * Component providing secure messaging using JSch @@ -45,8 +46,8 @@ public class ScpComponent extends RemoteFileComponent<ScpFile> { @Override protected GenericFileEndpoint<ScpFile> buildFileEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { - int query = uri.indexOf('?'); - return new ScpEndpoint(uri, this, new ScpConfiguration(new URI(query >= 0 ? uri.substring(0, query) : uri))); + String tmp = StringHelper.before(uri, "?", uri); + return new ScpEndpoint(uri, this, new ScpConfiguration(new URI(tmp))); } @Override diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaSendDynamicAware.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaSendDynamicAware.java index 27eda63906c..7f7cee30b06 100644 --- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaSendDynamicAware.java +++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaSendDynamicAware.java @@ -104,12 +104,10 @@ public class KafkaSendDynamicAware extends ServiceSupport implements SendDynamic private String parseTopicName(String uri) { // strip query - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + uri = StringHelper.before(uri, "?", uri); + // topic name is after first colon - pos = uri.indexOf(':'); + int pos = uri.indexOf(':'); if (pos != -1) { uri = uri.substring(pos + 1); } else { diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpClientProducer.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpClientProducer.java index d8470b4097b..19796a11e4b 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpClientProducer.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/MllpTcpClientProducer.java @@ -39,6 +39,7 @@ import org.apache.camel.api.management.ManagedResource; import org.apache.camel.component.mllp.internal.Hl7Util; import org.apache.camel.component.mllp.internal.MllpSocketBuffer; import org.apache.camel.support.DefaultProducer; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -109,12 +110,8 @@ public class MllpTcpClientProducer extends DefaultProducer implements Runnable { if (getConfiguration().hasIdleTimeout()) { // Get the URI without options String fullEndpointKey = getEndpoint().getEndpointKey(); - String endpointKey; - if (fullEndpointKey.contains("?")) { - endpointKey = fullEndpointKey.substring(0, fullEndpointKey.indexOf('?')); - } else { - endpointKey = fullEndpointKey; - } + String endpointKey = StringHelper.before(fullEndpointKey, "?", fullEndpointKey); + idleTimeoutExecutor = Executors.newSingleThreadScheduledExecutor(new IdleTimeoutThreadFactory(endpointKey)); } diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerAcceptThread.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerAcceptThread.java index 99da06e67a3..29cbb35dbc6 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerAcceptThread.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerAcceptThread.java @@ -25,6 +25,7 @@ import java.net.SocketTimeoutException; import org.apache.camel.Route; import org.apache.camel.component.mllp.MllpTcpServerConsumer; import org.apache.camel.spi.UnitOfWork; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -58,12 +59,7 @@ public class TcpServerAcceptThread extends Thread { // Get the URI without options String fullEndpointKey = consumer.getEndpoint().getEndpointKey(); - String endpointKey; - if (fullEndpointKey.contains("?")) { - endpointKey = fullEndpointKey.substring(0, fullEndpointKey.indexOf('?')); - } else { - endpointKey = fullEndpointKey; - } + String endpointKey = StringHelper.before(fullEndpointKey, "?", fullEndpointKey); // Now put it all together return String.format("%s[%s] - %s", className, endpointKey, serverSocket.getLocalSocketAddress()); diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerBindThread.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerBindThread.java index f3820d32959..ca3e24d3cbd 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerBindThread.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerBindThread.java @@ -28,6 +28,7 @@ import org.apache.camel.spi.UnitOfWork; import org.apache.camel.support.task.BlockingTask; import org.apache.camel.support.task.Tasks; import org.apache.camel.support.task.budget.Budgets; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -44,12 +45,7 @@ public class TcpServerBindThread extends Thread { // Get the URI without options String fullEndpointKey = consumer.getEndpoint().getEndpointKey(); - String endpointKey; - if (fullEndpointKey.contains("?")) { - endpointKey = fullEndpointKey.substring(0, fullEndpointKey.indexOf('?')); - } else { - endpointKey = fullEndpointKey; - } + String endpointKey = StringHelper.before(fullEndpointKey, "?", fullEndpointKey); this.setName(String.format("%s - %s", this.getClass().getSimpleName(), endpointKey)); } diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerConsumerValidationRunnable.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerConsumerValidationRunnable.java index ae44243e7a2..79edeff9a17 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerConsumerValidationRunnable.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpServerConsumerValidationRunnable.java @@ -25,6 +25,7 @@ import org.apache.camel.Route; import org.apache.camel.component.mllp.MllpSocketException; import org.apache.camel.component.mllp.MllpTcpServerConsumer; import org.apache.camel.spi.UnitOfWork; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -104,12 +105,7 @@ public class TcpServerConsumerValidationRunnable implements Runnable { String createThreadName() { // Get the URI without options String fullEndpointKey = consumer.getEndpoint().getEndpointKey(); - String endpointKey; - if (fullEndpointKey.contains("?")) { - endpointKey = fullEndpointKey.substring(0, fullEndpointKey.indexOf('?')); - } else { - endpointKey = fullEndpointKey; - } + String endpointKey = StringHelper.before(fullEndpointKey, "?", fullEndpointKey); // Now put it all together return String.format("%s[%s] - %s", this.getClass().getSimpleName(), endpointKey, combinedAddress); diff --git a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpSocketConsumerRunnable.java b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpSocketConsumerRunnable.java index 3b16b448f19..3d9e8f636fe 100644 --- a/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpSocketConsumerRunnable.java +++ b/components/camel-mllp/src/main/java/org/apache/camel/component/mllp/internal/TcpSocketConsumerRunnable.java @@ -26,6 +26,7 @@ import org.apache.camel.component.mllp.MllpInvalidMessageException; import org.apache.camel.component.mllp.MllpSocketException; import org.apache.camel.component.mllp.MllpTcpServerConsumer; import org.apache.camel.spi.UnitOfWork; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; @@ -110,12 +111,7 @@ public class TcpSocketConsumerRunnable implements Runnable { String createThreadName() { // Get the URI without options String fullEndpointKey = consumer.getEndpoint().getEndpointKey(); - String endpointKey; - if (fullEndpointKey.contains("?")) { - endpointKey = fullEndpointKey.substring(0, fullEndpointKey.indexOf('?')); - } else { - endpointKey = fullEndpointKey; - } + String endpointKey = StringHelper.before(fullEndpointKey, "?", fullEndpointKey); // Now put it all together return String.format("%s[%s] - %s", this.getClass().getSimpleName(), endpointKey, combinedAddress); diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java index edbf0a07062..151c32beae7 100644 --- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java +++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/handlers/HttpServerMultiplexChannelHandler.java @@ -42,6 +42,7 @@ import org.apache.camel.component.netty.http.NettyHttpConfiguration; import org.apache.camel.component.netty.http.NettyHttpConstants; import org.apache.camel.component.netty.http.NettyHttpConsumer; import org.apache.camel.support.RestConsumerContextPathMatcher; +import org.apache.camel.util.StringHelper; import org.apache.camel.util.UnsafeUriCharactersEncoder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -282,10 +283,7 @@ public class HttpServerMultiplexChannelHandler extends SimpleChannelInboundHandl } // strip out query parameters - int idx = path.indexOf('?'); - if (idx > -1) { - path = path.substring(0, idx); - } + path = StringHelper.before(path, "?", path); // strip of ending / if (path.endsWith("/")) { diff --git a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5SendDynamicAware.java b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5SendDynamicAware.java index 14dab516ad9..57b66644b52 100644 --- a/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5SendDynamicAware.java +++ b/components/camel-paho-mqtt5/src/main/java/org/apache/camel/component/paho/mqtt5/PahoMqtt5SendDynamicAware.java @@ -105,12 +105,10 @@ public class PahoMqtt5SendDynamicAware extends ServiceSupport implements SendDyn private String parseTopicName(String uri) { // strip query uri = uri.replaceFirst(scheme + "://", ":"); - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + uri = StringHelper.before(uri, "?", uri); + // topic name is after first colon - pos = uri.indexOf(':'); + int pos = uri.indexOf(':'); if (pos != -1) { return uri.substring(pos + 1); } else { diff --git a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java index a55500ed784..74e05e20fa1 100644 --- a/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java +++ b/components/camel-paho/src/main/java/org/apache/camel/component/paho/PahoSendDynamicAware.java @@ -105,12 +105,11 @@ public class PahoSendDynamicAware extends ServiceSupport implements SendDynamicA private String parseTopicName(String uri) { // strip query uri = uri.replaceFirst(scheme + "://", ":"); - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + + uri = StringHelper.before(uri, "?", uri); // topic name is after first colon - pos = uri.indexOf(':'); + + int pos = uri.indexOf(':'); if (pos != -1) { return uri.substring(pos + 1); } else { diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsSendDynamicAware.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsSendDynamicAware.java index 81d99f5dc85..337de7162e2 100644 --- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsSendDynamicAware.java +++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsSendDynamicAware.java @@ -105,12 +105,10 @@ public class SjmsSendDynamicAware extends ServiceSupport implements SendDynamicA private String parseDestinationName(String uri) { // strip query uri = uri.replaceFirst(scheme + "://", ":"); - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + uri = StringHelper.before(uri, "?", uri); + // destination name is after last colon - pos = uri.lastIndexOf(':'); + int pos = uri.lastIndexOf(':'); if (pos != -1) { return uri.substring(pos + 1); } else { diff --git a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQSendDynamicAware.java b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQSendDynamicAware.java index 0b2eb662086..1e9ea1ff8ba 100644 --- a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQSendDynamicAware.java +++ b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQSendDynamicAware.java @@ -128,12 +128,10 @@ public class SpringRabbitMQSendDynamicAware extends ServiceSupport implements Se private String parseExchangeName(String uri) { // strip query uri = uri.replaceFirst(scheme + "://", ":"); - int pos = uri.indexOf('?'); - if (pos != -1) { - uri = uri.substring(0, pos); - } + uri = StringHelper.before(uri, "?", uri); + // exchange name is after first colon - pos = uri.indexOf(':'); + int pos = uri.indexOf(':'); if (pos != -1) { return uri.substring(pos + 1); } else { diff --git a/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIterator.java b/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIterator.java index 60f08c218b7..ccb6580bf5b 100644 --- a/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIterator.java +++ b/components/camel-stax/src/main/java/org/apache/camel/language/xtokenizer/XMLTokenExpressionIterator.java @@ -210,7 +210,7 @@ public class XMLTokenExpressionIterator extends ExpressionAdapter implements Nam String s = sl[i]; if (s.length() > 0) { int d = s.indexOf(':'); - String pfx = d > 0 ? s.substring(0, d) : ""; + String pfx = StringHelper.before(s, ":", ""); this.splitpath[i] = new AttributedQName( "*".equals(pfx) ? "*" : nsmap == null ? "" : nsmap.get(pfx), d > 0 ? s.substring(d + 1) : s, pfx); } diff --git a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java index c29f5fa2c04..349e5ca2a12 100644 --- a/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java +++ b/components/camel-test/camel-test-junit5/src/main/java/org/apache/camel/test/junit5/CamelTestSupport.java @@ -873,11 +873,7 @@ public abstract class CamelTestSupport throw RuntimeCamelException.wrapRuntimeException(e); } // strip query - int idx = n.indexOf('?'); - if (idx != -1) { - n = n.substring(0, idx); - } - final String target = n; + final String target = StringHelper.before(n, "?", n); // lookup endpoints in registry and try to find it MockEndpoint found = (MockEndpoint) context.getEndpointRegistry().values().stream() diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/handlers/RestRootHandler.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/handlers/RestRootHandler.java index 10f498b67fc..93ae1c6e88e 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/handlers/RestRootHandler.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/handlers/RestRootHandler.java @@ -29,6 +29,7 @@ import io.undertow.server.HttpServerExchange; import io.undertow.util.Headers; import org.apache.camel.component.undertow.UndertowConsumer; import org.apache.camel.support.RestConsumerContextPathMatcher; +import org.apache.camel.util.StringHelper; import org.apache.camel.util.UnsafeUriCharactersEncoder; /** @@ -160,10 +161,7 @@ public class RestRootHandler implements HttpHandler { } // strip out query parameters - int idx = path.indexOf('?'); - if (idx > -1) { - path = path.substring(0, idx); - } + path = StringHelper.before(path, "?", path); // strip of ending / if (path.endsWith("/")) {