You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2018/09/03 10:11:51 UTC

[camel] 03/04: [CAMEL-12771] Do not use the deprecated methods on ObjectHelper in camel-core

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

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

commit a53b1654cf1a9afbf2e60963ed3983c02c7c9515
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Mon Sep 3 12:01:08 2018 +0200

    [CAMEL-12771] Do not use the deprecated methods on ObjectHelper in camel-core
---
 .../camel/builder/DeadLetterChannelBuilder.java    |  4 ++--
 .../apache/camel/builder/ExpressionBuilder.java    |  8 +++----
 .../org/apache/camel/builder/RouteBuilder.java     |  3 ++-
 .../org/apache/camel/builder/xml/XPathBuilder.java |  3 ++-
 .../bean/AbstractCamelInvocationHandler.java       |  5 ++--
 .../bean/BeanAnnotationExpressionFactory.java      |  3 ++-
 .../component/dataformat/DataFormatComponent.java  |  6 ++---
 .../apache/camel/component/file/FileConsumer.java  |  3 ++-
 .../apache/camel/component/file/GenericFile.java   |  5 ++--
 .../camel/component/file/GenericFileComponent.java |  3 ++-
 .../camel/component/file/GenericFileEndpoint.java  |  4 ++--
 .../component/file/GenericFileOnCompletion.java    |  4 ++--
 .../camel/component/file/GenericFileProducer.java  |  2 +-
 .../MarkerFileExclusiveReadLockStrategy.java       |  4 ++--
 .../component/language/LanguageComponent.java      |  5 ++--
 .../properties/DefaultPropertiesParser.java        |  5 ++--
 .../properties/EnvPropertiesFunction.java          |  6 ++---
 .../component/properties/PropertiesLocation.java   |  4 ++--
 .../properties/ServiceHostPropertiesFunction.java  |  6 ++---
 .../properties/ServicePortPropertiesFunction.java  |  6 ++---
 .../properties/ServicePropertiesFunction.java      |  6 ++---
 .../properties/SysPropertiesFunction.java          |  6 ++---
 .../apache/camel/component/rest/RestComponent.java | 10 ++++----
 .../apache/camel/converter/jaxp/XmlConverter.java  |  3 ++-
 .../org/apache/camel/impl/DefaultCamelContext.java | 16 ++++++-------
 .../apache/camel/impl/DefaultClassResolver.java    |  9 +++----
 .../org/apache/camel/impl/DefaultEndpoint.java     |  6 ++---
 .../camel/impl/DefaultExecutorServiceManager.java  |  5 ++--
 .../camel/impl/DefaultManagementNameStrategy.java  |  6 ++---
 .../impl/ExplicitCamelContextNameStrategy.java     |  4 ++--
 .../impl/InterceptSendToMockEndpointStrategy.java  |  4 ++--
 .../apache/camel/language/bean/BeanLanguage.java   |  5 ++--
 .../simple/ast/SimpleFunctionExpression.java       | 28 +++++++++++-----------
 .../camel/management/DefaultManagementAgent.java   |  3 ++-
 .../camel/management/MBeanInfoAssembler.java       |  3 ++-
 .../apache/camel/model/LoadBalancerDefinition.java |  4 ++--
 .../java/org/apache/camel/model/LogDefinition.java |  3 ++-
 .../camel/model/ProcessorDefinitionHelper.java     |  3 ++-
 .../apache/camel/model/ToDynamicDefinition.java    | 10 ++++----
 .../loadbalancer/CustomLoadBalancerDefinition.java |  4 ++--
 .../apache/camel/model/rest/RestDefinition.java    |  3 ++-
 .../org/apache/camel/processor/RecipientList.java  |  5 ++--
 .../apache/camel/processor/RedeliveryPolicy.java   |  5 ++--
 .../camel/processor/interceptor/BacklogTracer.java |  4 ++--
 .../camel/support/TokenPairExpressionIterator.java |  7 +++---
 .../camel/support/TokenXMLExpressionIterator.java  |  7 +++---
 .../support/TokenXMLPairExpressionIterator.java    |  5 ++--
 .../camel/support/XMLTokenExpressionIterator.java  |  3 ++-
 .../java/org/apache/camel/util/EndpointHelper.java |  6 ++---
 .../apache/camel/util/IntrospectionSupport.java    | 12 +++++-----
 .../java/org/apache/camel/util/ObjectHelper.java   |  2 +-
 .../java/org/apache/camel/util/OgnlHelper.java     |  2 +-
 .../java/org/apache/camel/util/ResourceHelper.java |  8 +++----
 .../java/org/apache/camel/util/URISupport.java     |  4 ++--
 .../apache/camel/util/concurrent/ThreadHelper.java |  4 ++--
 .../org/apache/camel/builder/xml/XPathTest.java    |  4 ++--
 .../StaticMethodWithExchangeTestConverter.java     |  4 ++--
 57 files changed, 168 insertions(+), 144 deletions(-)

diff --git a/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
index f6b50ec..594aada 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
@@ -26,7 +26,7 @@ import org.apache.camel.processor.FatalFallbackErrorHandler;
 import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelLogger;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.LoggerFactory;
 
 /**
@@ -90,7 +90,7 @@ public class DeadLetterChannelBuilder extends DefaultErrorHandlerBuilder {
 
     protected void validateDeadLetterUri(RouteContext routeContext) {
         if (deadLetter == null) {
-            ObjectHelper.notEmpty(deadLetterUri, "deadLetterUri", this);
+            StringHelper.notEmpty(deadLetterUri, "deadLetterUri", this);
             deadLetter = routeContext.getCamelContext().getEndpoint(deadLetterUri);
             if (deadLetter == null) {
                 throw new NoSuchEndpointException(deadLetterUri);
diff --git a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
index 36c4ced..459fbcc 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/ExpressionBuilder.java
@@ -1604,17 +1604,17 @@ public final class ExpressionBuilder {
      * Returns an {@link TokenXMLExpressionIterator} expression
      */
     public static Expression tokenizeXMLExpression(String tagName, String inheritNamespaceTagName) {
-        ObjectHelper.notEmpty(tagName, "tagName");
+        StringHelper.notEmpty(tagName, "tagName");
         return new TokenXMLExpressionIterator(tagName, inheritNamespaceTagName);
     }
 
     public static Expression tokenizeXMLAwareExpression(String path, char mode) {
-        ObjectHelper.notEmpty(path, "path");
+        StringHelper.notEmpty(path, "path");
         return new XMLTokenExpressionIterator(path, mode);
     }
 
     public static Expression tokenizeXMLAwareExpression(String path, char mode, int group) {
-        ObjectHelper.notEmpty(path, "path");
+        StringHelper.notEmpty(path, "path");
         return new XMLTokenExpressionIterator(path, mode, group);
     }
 
@@ -2505,7 +2505,7 @@ public final class ExpressionBuilder {
                 return null;
             }
             // the remainder is the rest of the ognl without the key
-            String remainder = ObjectHelper.after(ognl, key + keySuffix);
+            String remainder = StringHelper.after(ognl, key + keySuffix);
             return new MethodCallExpression(property, remainder).evaluate(exchange);
         }
 
diff --git a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
index 8f20626..e4bd4b2 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -42,6 +42,7 @@ import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.model.rest.RestsDefinition;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -246,7 +247,7 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
      * @throws Exception is thrown if property with key not found or error converting to the given type.
      */
     public <T> T propertyInject(String key, Class<T> type) throws Exception {
-        ObjectHelper.notEmpty(key, "key");
+        StringHelper.notEmpty(key, "key");
         ObjectHelper.notNull(type, "Class type");
 
         // the properties component is mandatory
diff --git a/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java b/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
index 3f3ea41..dc83baf 100644
--- a/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
+++ b/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
@@ -39,6 +39,7 @@ import javax.xml.xpath.XPathFunction;
 import javax.xml.xpath.XPathFunctionException;
 import javax.xml.xpath.XPathFunctionResolver;
 
+import org.apache.camel.util.StringHelper;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -1323,7 +1324,7 @@ public class XPathBuilder extends ServiceSupport implements CamelContextAware, E
         for (Map.Entry<Object, Object> prop : properties.entrySet()) {
             String key = (String) prop.getKey();
             if (key.startsWith(XPathFactory.DEFAULT_PROPERTY_NAME)) {
-                String uri = ObjectHelper.after(key, ":");
+                String uri = StringHelper.after(key, ":");
                 if (uri != null) {
                     factory = XPathFactory.newInstance(uri);
                     LOG.info("Using system property {} with value {} when created default XPathFactory {}", new Object[]{key, uri, factory});
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
index 3e73283..68f1344 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/AbstractCamelInvocationHandler.java
@@ -45,6 +45,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -267,11 +268,11 @@ public abstract class AbstractCamelInvocationHandler implements InvocationHandle
         // type of the return type
         // due type erasure, so we have to gather it based on a String
         // representation
-        String name = ObjectHelper.between(type.toString(), "<", ">");
+        String name = StringHelper.between(type.toString(), "<", ">");
         if (name != null) {
             if (name.contains("<")) {
                 // we only need the outer type
-                name = ObjectHelper.before(name, "<");
+                name = StringHelper.before(name, "<");
             }
             return context.getClassResolver().resolveMandatoryClass(name);
         } else {
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanAnnotationExpressionFactory.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanAnnotationExpressionFactory.java
index afc0aa0..a02a1a1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanAnnotationExpressionFactory.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanAnnotationExpressionFactory.java
@@ -24,6 +24,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.language.LanguageAnnotation;
 import org.apache.camel.language.bean.BeanExpression;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * @version 
@@ -36,7 +37,7 @@ public class BeanAnnotationExpressionFactory extends DefaultAnnotationExpression
         String method = getFromAnnotation(annotation, "method");
 
         // ref is mandatory
-        ObjectHelper.notEmpty(beanName, "ref", annotation);
+        StringHelper.notEmpty(beanName, "ref", annotation);
 
         // method is optional but provide it as null to the bean expression
         if (ObjectHelper.isEmpty(method)) {
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
index 9aee141..01a9961 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatComponent.java
@@ -22,7 +22,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.util.EndpointHelper;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * The <a href="http://camel.apache.org/dataformat-component.html">Data Format Component</a> enables using <a href="https://camel.apache.org/data-format.html">Data Format</a> as a component.
@@ -37,7 +37,7 @@ public class DataFormatComponent extends UriEndpointComponent {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        String name = ObjectHelper.before(remaining, ":");
+        String name = StringHelper.before(remaining, ":");
 
         // try to lookup data format in the registry or create it from resource
         DataFormat df = getCamelContext().resolveDataFormat(name);
@@ -49,7 +49,7 @@ public class DataFormatComponent extends UriEndpointComponent {
             throw new IllegalArgumentException("Cannot find data format with name: " + name);
         }
 
-        String operation = ObjectHelper.after(remaining, ":");
+        String operation = StringHelper.after(remaining, ":");
         if (!"marshal".equals(operation) && !"unmarshal".equals(operation)) {
             throw new IllegalArgumentException("Operation must be either marshal or unmarshal, was: " + operation);
         }
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java b/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
index c984d66..86cdd97 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
@@ -33,6 +33,7 @@ import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * File consumer.
@@ -220,7 +221,7 @@ public class FileConsumer extends GenericFileConsumer<File> {
         String endpointNormalized = FileUtil.normalizePath(endpointPath);
         if (file.getPath().startsWith(endpointNormalized + File.separator)) {
             // skip duplicate endpoint path
-            path = new File(ObjectHelper.after(file.getPath(), endpointNormalized + File.separator));
+            path = new File(StringHelper.after(file.getPath(), endpointNormalized + File.separator));
         } else {
             path = new File(file.getPath());
         }
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
index bbf075f..7ca7dd7 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFile.java
@@ -25,6 +25,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.WrappedFile;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -226,9 +227,9 @@ public class GenericFile<T> implements WrappedFile<T>  {
                 // use File.separatorChar as the normalizePath uses this as path separator so we should use the same
                 // in this logic here
                 if (newEndpointPath.endsWith("" + File.separatorChar)) {
-                    newFileName = ObjectHelper.after(newFileName, newEndpointPath);
+                    newFileName = StringHelper.after(newFileName, newEndpointPath);
                 } else {
-                    newFileName = ObjectHelper.after(newFileName, newEndpointPath + File.separatorChar);
+                    newFileName = StringHelper.after(newFileName, newEndpointPath + File.separatorChar);
                 }
 
                 // reconstruct file with clipped name
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
index 170ec76..4fd9849 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileComponent.java
@@ -26,6 +26,7 @@ import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -111,7 +112,7 @@ public abstract class GenericFileComponent<T> extends UriEndpointComponent {
         boolean ignoreCase = reminder.startsWith("ignoreCase:");
         reminder = ignoreCase ? ifStartsWithReturnRemainder("ignoreCase:", reminder) : reminder;
 
-        ObjectHelper.notEmpty(reminder, "sortBy expression", this);
+        StringHelper.notEmpty(reminder, "sortBy expression", this);
 
         // recursive add nested sorters
         return GenericFileDefaultSorter.sortByFileLanguage(getCamelContext(), 
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
index 6e831bd..9548593 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java
@@ -1397,7 +1397,7 @@ public abstract class GenericFileEndpoint<T> extends ScheduledPollEndpoint imple
      */
     protected String createDoneFileName(String fileName) {
         String pattern = getDoneFileName();
-        ObjectHelper.notEmpty(pattern, "doneFileName", pattern);
+        StringHelper.notEmpty(pattern, "doneFileName", pattern);
 
         // we only support ${file:name} or ${file:name.noext} as dynamic placeholders for done files
         String path = FileUtil.onlyPath(fileName);
@@ -1437,7 +1437,7 @@ public abstract class GenericFileEndpoint<T> extends ScheduledPollEndpoint imple
      */
     protected boolean isDoneFile(String fileName) {
         String pattern = getDoneFileName();
-        ObjectHelper.notEmpty(pattern, "doneFileName", pattern);
+        StringHelper.notEmpty(pattern, "doneFileName", pattern);
 
         if (!StringHelper.hasStartToken(pattern, "simple")) {
             // no tokens, so just match names directly
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
index 5089878..a7a460f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
@@ -20,7 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.Synchronization;
 import org.apache.camel.support.LoggingExceptionHandler;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -164,7 +164,7 @@ public class GenericFileOnCompletion<T> implements Synchronization {
         if (endpoint.getDoneFileName() != null && !endpoint.isNoop()) {
             // done file must be in same path as the original input file
             String doneFileName = endpoint.createDoneFileName(absoluteFileName);
-            ObjectHelper.notEmpty(doneFileName, "doneFileName", endpoint);
+            StringHelper.notEmpty(doneFileName, "doneFileName", endpoint);
             // we should delete the dynamic done file
             if (endpoint.getDoneFileName().indexOf("{file:name") > 0 || complete) {
                 try {
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java
index 1fa9a25..cc5cc33 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java
@@ -208,7 +208,7 @@ public class GenericFileProducer<T> extends DefaultProducer {
             // any done file to write?
             if (endpoint.getDoneFileName() != null) {
                 String doneFileName = endpoint.createDoneFileName(target);
-                ObjectHelper.notEmpty(doneFileName, "doneFileName", endpoint);
+                StringHelper.notEmpty(doneFileName, "doneFileName", endpoint);
 
                 // create empty exchange with empty body to write as the done file
                 Exchange empty = new DefaultExchange(exchange);
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java b/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
index 845e27d..3a16262 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/strategy/MarkerFileExclusiveReadLockStrategy.java
@@ -28,8 +28,8 @@ import org.apache.camel.component.file.GenericFileExclusiveReadLockStrategy;
 import org.apache.camel.component.file.GenericFileFilter;
 import org.apache.camel.component.file.GenericFileOperations;
 import org.apache.camel.util.FileUtil;
-import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StopWatch;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -218,7 +218,7 @@ public class MarkerFileExclusiveReadLockStrategy implements GenericFileExclusive
         String endpointNormalized = FileUtil.normalizePath(endpointPath);
         if (file.getPath().startsWith(endpointNormalized + File.separator)) {
             // skip duplicate endpoint path
-            path = new File(ObjectHelper.after(file.getPath(), endpointNormalized + File.separator));
+            path = new File(StringHelper.after(file.getPath(), endpointNormalized + File.separator));
         } else {
             path = new File(file.getPath());
         }
diff --git a/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java b/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
index 8997c06..a9124fe 100644
--- a/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/language/LanguageComponent.java
@@ -24,6 +24,7 @@ import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.spi.Language;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * The <a href="http://camel.apache.org/language-component.html">Language component</a> enables sending
@@ -40,8 +41,8 @@ public class LanguageComponent extends UriEndpointComponent {
     }
 
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        String name = ObjectHelper.before(remaining, ":");
-        String script = ObjectHelper.after(remaining, ":");
+        String name = StringHelper.before(remaining, ":");
+        String script = StringHelper.after(remaining, ":");
         // no script then remaining is the language name
         if (name == null && script == null) {
             name = remaining;
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java b/camel-core/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java
index 0dd7769..0599815 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/DefaultPropertiesParser.java
@@ -21,6 +21,7 @@ import java.util.Properties;
 import java.util.Set;
 
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -238,8 +239,8 @@ public class DefaultPropertiesParser implements AugmentedPropertyNameAwareProper
             // they key may have a get or else expression
             String defaultValue = null;
             if (defaultFallbackEnabled && key.contains(GET_OR_ELSE_TOKEN)) {
-                defaultValue = ObjectHelper.after(key, GET_OR_ELSE_TOKEN);
-                key = ObjectHelper.before(key, GET_OR_ELSE_TOKEN);
+                defaultValue = StringHelper.after(key, GET_OR_ELSE_TOKEN);
+                key = StringHelper.before(key, GET_OR_ELSE_TOKEN);
             }
 
             String augmentedKey = getAugmentedKey(key);
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/EnvPropertiesFunction.java b/camel-core/src/main/java/org/apache/camel/component/properties/EnvPropertiesFunction.java
index 5111ceb..91dcecd 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/EnvPropertiesFunction.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/EnvPropertiesFunction.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.properties;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A {@link org.apache.camel.component.properties.PropertiesFunction} that lookup the property value from
@@ -35,8 +35,8 @@ public class EnvPropertiesFunction implements PropertiesFunction {
         String defaultValue = null;
 
         if (remainder.contains(":")) {
-            key = ObjectHelper.before(remainder, ":");
-            defaultValue = ObjectHelper.after(remainder, ":");
+            key = StringHelper.before(remainder, ":");
+            defaultValue = StringHelper.after(remainder, ":");
         }
 
         String value = System.getenv(key);
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesLocation.java b/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesLocation.java
index 46395e6..fefdb43 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesLocation.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/PropertiesLocation.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.properties;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 public class PropertiesLocation {
     private final String resolver;
@@ -39,7 +39,7 @@ public class PropertiesLocation {
 
         idx = location.lastIndexOf(';');
         if (idx != -1) {
-            this.optional = ObjectHelper.after(location.substring(idx + 1), "optional=", Boolean::valueOf).orElse(false);
+            this.optional = StringHelper.after(location.substring(idx + 1), "optional=", Boolean::valueOf).orElse(false);
             location = location.substring(0, idx);
         } else {
             this.optional = false;
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/ServiceHostPropertiesFunction.java b/camel-core/src/main/java/org/apache/camel/component/properties/ServiceHostPropertiesFunction.java
index 6df3eac..e7093ea 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/ServiceHostPropertiesFunction.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/ServiceHostPropertiesFunction.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.properties;
 
 import java.util.Locale;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A {@link PropertiesFunction} that lookup the property value from
@@ -51,8 +51,8 @@ public class ServiceHostPropertiesFunction implements PropertiesFunction {
         String defaultValue = null;
 
         if (remainder.contains(":")) {
-            key = ObjectHelper.before(remainder, ":");
-            defaultValue = ObjectHelper.after(remainder, ":");
+            key = StringHelper.before(remainder, ":");
+            defaultValue = StringHelper.after(remainder, ":");
         }
 
         // make sure to use upper case
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/ServicePortPropertiesFunction.java b/camel-core/src/main/java/org/apache/camel/component/properties/ServicePortPropertiesFunction.java
index 8761c33..614da95 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/ServicePortPropertiesFunction.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/ServicePortPropertiesFunction.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.properties;
 
 import java.util.Locale;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A {@link org.apache.camel.component.properties.PropertiesFunction} that lookup the property value from
@@ -51,8 +51,8 @@ public class ServicePortPropertiesFunction implements PropertiesFunction {
         String defaultValue = null;
 
         if (remainder.contains(":")) {
-            key = ObjectHelper.before(remainder, ":");
-            defaultValue = ObjectHelper.after(remainder, ":");
+            key = StringHelper.before(remainder, ":");
+            defaultValue = StringHelper.after(remainder, ":");
         }
 
         // make sure to use upper case
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/ServicePropertiesFunction.java b/camel-core/src/main/java/org/apache/camel/component/properties/ServicePropertiesFunction.java
index 5ba4395..36fb2be 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/ServicePropertiesFunction.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/ServicePropertiesFunction.java
@@ -18,7 +18,7 @@ package org.apache.camel.component.properties;
 
 import java.util.Locale;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A {@link org.apache.camel.component.properties.PropertiesFunction} that lookup the property value from
@@ -47,8 +47,8 @@ public class ServicePropertiesFunction implements PropertiesFunction {
         String defaultValue = null;
 
         if (remainder.contains(":")) {
-            key = ObjectHelper.before(remainder, ":");
-            defaultValue = ObjectHelper.after(remainder, ":");
+            key = StringHelper.before(remainder, ":");
+            defaultValue = StringHelper.after(remainder, ":");
         }
 
         // make sure to use upper case
diff --git a/camel-core/src/main/java/org/apache/camel/component/properties/SysPropertiesFunction.java b/camel-core/src/main/java/org/apache/camel/component/properties/SysPropertiesFunction.java
index 7a91890..d517fe8 100644
--- a/camel-core/src/main/java/org/apache/camel/component/properties/SysPropertiesFunction.java
+++ b/camel-core/src/main/java/org/apache/camel/component/properties/SysPropertiesFunction.java
@@ -16,7 +16,7 @@
  */
 package org.apache.camel.component.properties;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A {@link PropertiesFunction} that lookup the property value from
@@ -35,8 +35,8 @@ public class SysPropertiesFunction implements PropertiesFunction {
         String defaultValue = null;
 
         if (remainder.contains(":")) {
-            key = ObjectHelper.before(remainder, ":");
-            defaultValue = ObjectHelper.after(remainder, ":");
+            key = StringHelper.before(remainder, ":");
+            defaultValue = StringHelper.after(remainder, ":");
         }
 
         String value = System.getProperty(key);
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
index e2651a2..24127c7 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestComponent.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 
 /**
@@ -101,14 +101,14 @@ public class RestComponent extends DefaultComponent implements VerifiableCompone
             throw new IllegalArgumentException("Invalid syntax. Must be rest:method:path[:uriTemplate] where uriTemplate is optional");
         }
 
-        String method = ObjectHelper.before(remaining, ":");
-        String s = ObjectHelper.after(remaining, ":");
+        String method = StringHelper.before(remaining, ":");
+        String s = StringHelper.after(remaining, ":");
 
         String path;
         String uriTemplate;
         if (s != null && s.contains(":")) {
-            path = ObjectHelper.before(s, ":");
-            uriTemplate = ObjectHelper.after(s, ":");
+            path = StringHelper.before(s, ":");
+            uriTemplate = StringHelper.after(s, ":");
         } else {
             path = s;
             uriTemplate = null;
diff --git a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
index b300d6c..f8a8766 100644
--- a/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
+++ b/camel-core/src/main/java/org/apache/camel/converter/jaxp/XmlConverter.java
@@ -54,6 +54,7 @@ import javax.xml.transform.stax.StAXSource;
 import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.camel.util.StringHelper;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -1088,7 +1089,7 @@ public class XmlConverter {
         for (Map.Entry<Object, Object> prop : properties.entrySet()) {
             String key = (String) prop.getKey();
             if (key.startsWith(XmlConverter.DOCUMENT_BUILDER_FACTORY_FEATURE)) {
-                String uri = ObjectHelper.after(key, ":");
+                String uri = StringHelper.after(key, ":");
                 Boolean value = Boolean.valueOf((String)prop.getValue());
                 try {
                     factory.setFeature(uri, value);
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 a58f678..224e11a 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
@@ -662,7 +662,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     }
 
     public Endpoint getEndpoint(String uri) {
-        ObjectHelper.notEmpty(uri, "uri");
+        StringHelper.notEmpty(uri, "uri");
 
         log.trace("Getting endpoint with uri: {}", uri);
 
@@ -688,7 +688,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         if (answer == null) {
             try {
                 // Use the URI prefix to find the component.
-                String splitURI[] = ObjectHelper.splitOnCharacter(uri, ":", 2);
+                String splitURI[] = StringHelper.splitOnCharacter(uri, ":", 2);
                 if (splitURI[1] != null) {
                     scheme = splitURI[0];
                     log.trace("Endpoint uri: {} is from component with name: {}", uri, scheme);
@@ -799,7 +799,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
      * @return the added endpoint
      */
     protected Endpoint addEndpointToRegistry(String uri, Endpoint endpoint) {
-        ObjectHelper.notEmpty(uri, "uri");
+        StringHelper.notEmpty(uri, "uri");
         ObjectHelper.notNull(endpoint, "endpoint");
 
         // if there is endpoint strategies, then use the endpoints they return
@@ -1836,7 +1836,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
                     }
                 }
 
-                json = ObjectHelper.before(json, "  \"properties\": {");
+                json = StringHelper.before(json, "  \"properties\": {");
 
                 StringBuilder buffer = new StringBuilder("  \"properties\": {");
 
@@ -1916,7 +1916,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             if (json == null) {
                 // the model may be shared for multiple data formats such as bindy, json (xstream, jackson, gson)
                 if (dataFormatName.contains("-")) {
-                    dataFormatName = ObjectHelper.before(dataFormatName, "-");
+                    dataFormatName = StringHelper.before(dataFormatName, "-");
                     json = getDataFormatParameterJsonSchema(dataFormatName);
                 }
                 if (json == null) {
@@ -2001,7 +2001,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
                 }
             }
 
-            json = ObjectHelper.before(json, "  \"properties\": {");
+            json = StringHelper.before(json, "  \"properties\": {");
 
             StringBuilder buffer = new StringBuilder("  \"properties\": {");
 
@@ -2159,7 +2159,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
                 }
             }
 
-            json = ObjectHelper.before(json, "  \"componentProperties\": {");
+            json = StringHelper.before(json, "  \"componentProperties\": {");
             StringBuilder buffer = new StringBuilder("  \"componentProperties\": {");
 
             boolean first = true;
@@ -2324,7 +2324,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
             }
 
             // skip component properties
-            json = ObjectHelper.before(json, "  \"componentProperties\": {");
+            json = StringHelper.before(json, "  \"componentProperties\": {");
             // and rewrite properties
             StringBuilder buffer = new StringBuilder("  \"properties\": {");
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java
index 3c8cced..049f774 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultClassResolver.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContextAware;
 import org.apache.camel.spi.ClassResolver;
 import org.apache.camel.util.CastUtils;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Default class resolver that uses regular class loader to load classes.
@@ -107,12 +108,12 @@ public class DefaultClassResolver implements ClassResolver, CamelContextAware {
     }
 
     public InputStream loadResourceAsStream(String uri) {
-        ObjectHelper.notEmpty(uri, "uri");
+        StringHelper.notEmpty(uri, "uri");
         return ObjectHelper.loadResourceAsStream(uri, getApplicationContextClassLoader());
     }
 
     public URL loadResourceAsURL(String uri) {
-        ObjectHelper.notEmpty(uri, "uri");
+        StringHelper.notEmpty(uri, "uri");
         return ObjectHelper.loadResourceAsURL(uri, getApplicationContextClassLoader());
     }
 
@@ -121,12 +122,12 @@ public class DefaultClassResolver implements ClassResolver, CamelContextAware {
     }
 
     public Enumeration<URL> loadAllResourcesAsURL(String uri) {
-        ObjectHelper.notEmpty(uri, "uri");
+        StringHelper.notEmpty(uri, "uri");
         return ObjectHelper.loadResourcesAsURL(uri);
     }
 
     protected Class<?> loadClass(String name, ClassLoader loader) {
-        ObjectHelper.notEmpty(name, "name");
+        StringHelper.notEmpty(name, "name");
         return ObjectHelper.loadClass(name, loader);
     }
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
index 371edf3..c5234d8 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
@@ -36,6 +36,7 @@ import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -213,11 +214,10 @@ public abstract class DefaultEndpoint extends ServiceSupport implements Endpoint
 
     public String getEndpointKey() {
         if (isLenientProperties()) {
-            // only use the endpoint uri without parameters as the properties is
-            // lenient
+            // only use the endpoint uri without parameters as the properties are lenient
             String uri = getEndpointUri();
             if (uri.indexOf('?') != -1) {
-                return ObjectHelper.before(uri, "?");
+                return StringHelper.before(uri, "?");
             } else {
                 return uri;
             }
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
index 7b4b6d0..e021354 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java
@@ -44,6 +44,7 @@ import org.apache.camel.spi.ThreadPoolProfile;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StopWatch;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.URISupport;
 import org.apache.camel.util.concurrent.CamelThreadFactory;
@@ -97,7 +98,7 @@ public class DefaultExecutorServiceManager extends ServiceSupport implements Exe
     @Override
     public void registerThreadPoolProfile(ThreadPoolProfile profile) {
         ObjectHelper.notNull(profile, "profile");
-        ObjectHelper.notEmpty(profile.getId(), "id", profile);
+        StringHelper.notEmpty(profile.getId(), "id", profile);
         threadPoolProfiles.put(profile.getId(), profile);
     }
 
@@ -517,7 +518,7 @@ public class DefaultExecutorServiceManager extends ServiceSupport implements Exe
         }
 
         // id is mandatory
-        ObjectHelper.notEmpty(id, "id for thread pool " + executorService);
+        StringHelper.notEmpty(id, "id for thread pool " + executorService);
 
         // extract route id if possible
         if (source instanceof ProcessorDefinition) {
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java
index 9e2fa1c..a46533e 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java
@@ -22,7 +22,7 @@ import java.util.regex.Pattern;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.ManagementNameStrategy;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Default implementation of {@link ManagementNameStrategy}
@@ -110,8 +110,8 @@ public class DefaultManagementNameStrategy implements ManagementNameStrategy {
      * @throws IllegalArgumentException if the pattern or name is invalid or empty
      */
     public String resolveManagementName(String pattern, String name, boolean invalidCheck) {
-        ObjectHelper.notEmpty(pattern, "pattern");
-        ObjectHelper.notEmpty(name, "name");
+        StringHelper.notEmpty(pattern, "pattern");
+        StringHelper.notEmpty(name, "name");
 
         // must quote the names to have it work as literal replacement
         name = Matcher.quoteReplacement(name);
diff --git a/camel-core/src/main/java/org/apache/camel/impl/ExplicitCamelContextNameStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/ExplicitCamelContextNameStrategy.java
index 2a54df6..0579b50 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/ExplicitCamelContextNameStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/ExplicitCamelContextNameStrategy.java
@@ -17,7 +17,7 @@
 package org.apache.camel.impl;
 
 import org.apache.camel.spi.CamelContextNameStrategy;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Strategy to used an explicit (fixed) name for {@link org.apache.camel.CamelContext}.
@@ -29,7 +29,7 @@ public class ExplicitCamelContextNameStrategy implements CamelContextNameStrateg
     private final String name;
 
     public ExplicitCamelContextNameStrategy(String name) {
-        ObjectHelper.notEmpty(name, "CamelContext name ");
+        StringHelper.notEmpty(name, "CamelContext name ");
         this.name = name;
     }
 
diff --git a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java
index 5743d03..3a25979 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/InterceptSendToMockEndpointStrategy.java
@@ -21,7 +21,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.EndpointStrategy;
 import org.apache.camel.util.EndpointHelper;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -89,7 +89,7 @@ public class InterceptSendToMockEndpointStrategy implements EndpointStrategy {
             String key = "mock:" + endpoint.getEndpointKey().replaceFirst("://", ":");
             // strip off parameters as well
             if (key.contains("?")) {
-                key = ObjectHelper.before(key, "?");
+                key = StringHelper.before(key, "?");
             }
             LOG.info("Adviced endpoint [{}] with mock endpoint [{}]", uri, key);
 
diff --git a/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java b/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java
index 459a562..58ef2f2 100644
--- a/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java
+++ b/camel-core/src/main/java/org/apache/camel/language/bean/BeanLanguage.java
@@ -22,6 +22,7 @@ import org.apache.camel.Predicate;
 import org.apache.camel.spi.Language;
 import org.apache.camel.util.ExpressionToPredicateAdapter;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * A <a href="http://camel.apache.org/bean-language.html">bean language</a>
@@ -88,8 +89,8 @@ public class BeanLanguage implements Language, IsSingleton {
         // we support both the .method name and the ?method= syntax
         // as the ?method= syntax is very common for the bean component
         if (expression.contains("?method=")) {
-            beanName = ObjectHelper.before(expression, "?");
-            method = ObjectHelper.after(expression, "?method=");
+            beanName = StringHelper.before(expression, "?");
+            method = StringHelper.after(expression, "?method=");
         } else {
             //first check case :: because of my.own.Bean::method
             int doubleColonIndex = expression.indexOf("::");
diff --git a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
index 65baa8e..1f7cde6 100644
--- a/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
+++ b/camel-core/src/main/java/org/apache/camel/language/simple/ast/SimpleFunctionExpression.java
@@ -227,8 +227,8 @@ public class SimpleFunctionExpression extends LiteralExpression {
             String locations = null;
             String key = remainder;
             if (parts.length >= 2) {
-                locations = ObjectHelper.before(remainder, ":");
-                key = ObjectHelper.after(remainder, ":");
+                locations = StringHelper.before(remainder, ":");
+                key = StringHelper.after(remainder, ":");
             }
             return ExpressionBuilder.propertiesComponentExpression(key, locations, null);
         }
@@ -264,12 +264,12 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // bodyAs
         String remainder = ifStartsWithReturnRemainder("bodyAs(", function);
         if (remainder != null) {
-            String type = ObjectHelper.before(remainder, ")");
+            String type = StringHelper.before(remainder, ")");
             if (type == null) {
                 throw new SimpleParserException("Valid syntax: ${bodyAs(type)} was: " + function, token.getIndex());
             }
             type = StringHelper.removeQuotes(type);
-            remainder = ObjectHelper.after(remainder, ")");
+            remainder = StringHelper.after(remainder, ")");
             if (ObjectHelper.isNotEmpty(remainder)) {
                 boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(remainder);
                 if (invalid) {
@@ -284,12 +284,12 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // mandatoryBodyAs
         remainder = ifStartsWithReturnRemainder("mandatoryBodyAs(", function);
         if (remainder != null) {
-            String type = ObjectHelper.before(remainder, ")");
+            String type = StringHelper.before(remainder, ")");
             if (type == null) {
                 throw new SimpleParserException("Valid syntax: ${mandatoryBodyAs(type)} was: " + function, token.getIndex());
             }
             type = StringHelper.removeQuotes(type);
-            remainder = ObjectHelper.after(remainder, ")");
+            remainder = StringHelper.after(remainder, ")");
             if (ObjectHelper.isNotEmpty(remainder)) {
                 boolean invalid = OgnlHelper.isInvalidValidOgnlExpression(remainder);
                 if (invalid) {
@@ -319,14 +319,14 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // headerAs
         remainder = ifStartsWithReturnRemainder("headerAs(", function);
         if (remainder != null) {
-            String keyAndType = ObjectHelper.before(remainder, ")");
+            String keyAndType = StringHelper.before(remainder, ")");
             if (keyAndType == null) {
                 throw new SimpleParserException("Valid syntax: ${headerAs(key, type)} was: " + function, token.getIndex());
             }
 
-            String key = ObjectHelper.before(keyAndType, ",");
-            String type = ObjectHelper.after(keyAndType, ",");
-            remainder = ObjectHelper.after(remainder, ")");
+            String key = StringHelper.before(keyAndType, ",");
+            String type = StringHelper.after(keyAndType, ",");
+            remainder = StringHelper.after(remainder, ")");
             if (ObjectHelper.isEmpty(key) || ObjectHelper.isEmpty(type) || ObjectHelper.isNotEmpty(remainder)) {
                 throw new SimpleParserException("Valid syntax: ${headerAs(key, type)} was: " + function, token.getIndex());
             }
@@ -462,7 +462,7 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // random function
         remainder = ifStartsWithReturnRemainder("random(", function);
         if (remainder != null) {
-            String values = ObjectHelper.before(remainder, ")");
+            String values = StringHelper.before(remainder, ")");
             if (values == null || ObjectHelper.isEmpty(values)) {
                 throw new SimpleParserException("Valid syntax: ${random(min,max)} or ${random(max)} was: " + function, token.getIndex());
             }
@@ -480,7 +480,7 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // skip function
         remainder = ifStartsWithReturnRemainder("skip(", function);
         if (remainder != null) {
-            String values = ObjectHelper.before(remainder, ")");
+            String values = StringHelper.before(remainder, ")");
             if (values == null || ObjectHelper.isEmpty(values)) {
                 throw new SimpleParserException("Valid syntax: ${skip(number)} was: " + function, token.getIndex());
             }
@@ -492,7 +492,7 @@ public class SimpleFunctionExpression extends LiteralExpression {
         // collate function
         remainder = ifStartsWithReturnRemainder("collate(", function);
         if (remainder != null) {
-            String values = ObjectHelper.before(remainder, ")");
+            String values = StringHelper.before(remainder, ")");
             if (values == null || ObjectHelper.isEmpty(values)) {
                 throw new SimpleParserException("Valid syntax: ${collate(group)} was: " + function, token.getIndex());
             }
@@ -505,7 +505,7 @@ public class SimpleFunctionExpression extends LiteralExpression {
         remainder = ifStartsWithReturnRemainder("messageHistory", function);
         if (remainder != null) {
             boolean detailed;
-            String values = ObjectHelper.between(remainder, "(", ")");
+            String values = StringHelper.between(remainder, "(", ")");
             if (values == null || ObjectHelper.isEmpty(values)) {
                 detailed = true;
             } else {
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index 548a208..49e4c1e 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -50,6 +50,7 @@ import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.InetAddressUtil;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ServiceHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -535,7 +536,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     }
 
     protected void createJmxConnector(String host) throws IOException {
-        ObjectHelper.notEmpty(serviceUrlPath, "serviceUrlPath");
+        StringHelper.notEmpty(serviceUrlPath, "serviceUrlPath");
         ObjectHelper.notNull(registryPort, "registryPort");
 
         try {
diff --git a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
index f27bbdd..3854385 100644
--- a/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
+++ b/camel-core/src/main/java/org/apache/camel/management/MBeanInfoAssembler.java
@@ -42,6 +42,7 @@ import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.LRUCache;
 import org.apache.camel.util.LRUCacheFactory;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -222,7 +223,7 @@ public class MBeanInfoAssembler implements Service {
                 }
 
                 // they key must be capitalized
-                key = ObjectHelper.capitalize(key);
+                key = StringHelper.capitalize(key);
 
                 // lookup first
                 ManagedAttributeInfo info = attributes.get(key);
diff --git a/camel-core/src/main/java/org/apache/camel/model/LoadBalancerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/LoadBalancerDefinition.java
index a219f9e..29f5808 100644
--- a/camel-core/src/main/java/org/apache/camel/model/LoadBalancerDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/LoadBalancerDefinition.java
@@ -28,7 +28,7 @@ import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.IntrospectionSupport;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Balances message processing among a number of nodes
@@ -102,7 +102,7 @@ public class LoadBalancerDefinition extends IdentifiedType implements OtherAttri
      * Factory method to create the load balancer from the loadBalancerTypeName
      */
     protected LoadBalancer createLoadBalancer(RouteContext routeContext) {
-        ObjectHelper.notEmpty(loadBalancerTypeName, "loadBalancerTypeName", this);
+        StringHelper.notEmpty(loadBalancerTypeName, "loadBalancerTypeName", this);
 
         LoadBalancer answer = null;
         if (loadBalancerTypeName != null) {
diff --git a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
index 48e0d50..d41a83e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
@@ -36,6 +36,7 @@ import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -87,7 +88,7 @@ public class LogDefinition extends NoOutputDefinition<LogDefinition> {
 
     @Override
     public Processor createProcessor(RouteContext routeContext) throws Exception {
-        ObjectHelper.notEmpty(message, "message", this);
+        StringHelper.notEmpty(message, "message", this);
 
         // use simple language for the message string to give it more power
         Expression exp = routeContext.getCamelContext().resolveLanguage("simple").createExpression(message);
diff --git a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 0c5f1bf..193e2be 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -34,6 +34,7 @@ import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -779,7 +780,7 @@ public final class ProcessorDefinitionHelper {
 
                     // is the value a known field (currently we only support constants from Exchange.class)
                     if (text.startsWith("Exchange.")) {
-                        String field = ObjectHelper.after(text, "Exchange.");
+                        String field = StringHelper.after(text, "Exchange.");
                         String constant = ObjectHelper.lookupConstantFieldValue(Exchange.class, field);
                         if (constant != null) {
                             // invoke setter as the text has changed
diff --git a/camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java b/camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
index 070ffdb..ff25a28 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ToDynamicDefinition.java
@@ -34,7 +34,7 @@ import org.apache.camel.processor.SendDynamicProcessor;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Sends the message to a dynamic endpoint
@@ -72,7 +72,7 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
 
     @Override
     public Processor createProcessor(RouteContext routeContext) throws Exception {
-        ObjectHelper.notEmpty(uri, "uri", this);
+        StringHelper.notEmpty(uri, "uri", this);
 
         Expression exp = createExpression(routeContext);
 
@@ -94,10 +94,10 @@ public class ToDynamicDefinition extends NoOutputDefinition<ToDynamicDefinition>
         String[] parts = safeSplitRaw(uri);
         for (String part : parts) {
             // the part may have optional language to use, so you can mix languages
-            String value = ObjectHelper.after(part, "language:");
+            String value = StringHelper.after(part, "language:");
             if (value != null) {
-                String before = ObjectHelper.before(value, ":");
-                String after = ObjectHelper.after(value, ":");
+                String before = StringHelper.before(value, ":");
+                String after = StringHelper.after(value, ":");
                 if (before != null && after != null) {
                     // maybe its a language, must have language: as prefix
                     try {
diff --git a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CustomLoadBalancerDefinition.java b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CustomLoadBalancerDefinition.java
index 45563ed..34ff8a3 100644
--- a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CustomLoadBalancerDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/CustomLoadBalancerDefinition.java
@@ -27,7 +27,7 @@ import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Custom load balancer
@@ -73,7 +73,7 @@ public class CustomLoadBalancerDefinition extends LoadBalancerDefinition {
             return loadBalancer;
         }
 
-        ObjectHelper.notEmpty(ref, "ref", this);
+        StringHelper.notEmpty(ref, "ref", this);
         return CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), ref, LoadBalancer.class);
     }
 
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 c9be33c..20da12d 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
@@ -42,6 +42,7 @@ import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.apache.camel.util.URISupport;
 
 /**
@@ -973,7 +974,7 @@ public class RestDefinition extends OptionalIdentifiedDefinition<RestDefinition>
                         for (RestOperationParamDefinition param : verb.getParams()) {
                             // name is mandatory
                             String name = param.getName();
-                            ObjectHelper.notEmpty(name, "parameter name");
+                            StringHelper.notEmpty(name, "parameter name");
                             // need to resolve property placeholders first
                             try {
                                 name = camelContext.resolvePropertyPlaceholders(name);
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java b/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
index 7534e87..fcbcc0c 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RecipientList.java
@@ -37,6 +37,7 @@ import org.apache.camel.util.AsyncProcessorHelper;
 import org.apache.camel.util.ExchangeHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ServiceHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +82,7 @@ public class RecipientList extends ServiceSupport implements AsyncProcessor, IdA
 
     public RecipientList(CamelContext camelContext, String delimiter) {
         notNull(camelContext, "camelContext");
-        ObjectHelper.notEmpty(delimiter, "delimiter");
+        StringHelper.notEmpty(delimiter, "delimiter");
         this.camelContext = camelContext;
         this.delimiter = delimiter;
     }
@@ -94,7 +95,7 @@ public class RecipientList extends ServiceSupport implements AsyncProcessor, IdA
     public RecipientList(CamelContext camelContext, Expression expression, String delimiter) {
         notNull(camelContext, "camelContext");
         ObjectHelper.notNull(expression, "expression");
-        ObjectHelper.notEmpty(delimiter, "delimiter");
+        StringHelper.notEmpty(delimiter, "delimiter");
         this.camelContext = camelContext;
         this.expression = expression;
         this.delimiter = delimiter;
diff --git a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
index 5beda01..2c9a69e 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Predicate;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -251,8 +252,8 @@ public class RedeliveryPolicy implements Cloneable, Serializable {
         // find the group where the redelivery counter matches
         long answer = 0;
         for (String group : groups) {
-            long delay = Long.valueOf(ObjectHelper.after(group, ":"));
-            int count = Integer.valueOf(ObjectHelper.before(group, ":"));
+            long delay = Long.valueOf(StringHelper.after(group, ":"));
+            int count = Integer.valueOf(StringHelper.before(group, ":"));
             if (count > redeliveryCounter) {
                 break;
             } else {
diff --git a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
index 89b923c..be4861e 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
@@ -33,7 +33,7 @@ import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.spi.InterceptStrategy;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.EndpointHelper;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -244,7 +244,7 @@ public final class BacklogTracer extends ServiceSupport implements InterceptStra
         this.traceFilter = filter;
         if (filter != null) {
             // assume simple language
-            String name = ObjectHelper.before(filter, ":");
+            String name = StringHelper.before(filter, ":");
             if (name == null) {
                 // use simple language by default
                 name = "simple";
diff --git a/camel-core/src/main/java/org/apache/camel/support/TokenPairExpressionIterator.java b/camel-core/src/main/java/org/apache/camel/support/TokenPairExpressionIterator.java
index d9964b9..64a9026 100644
--- a/camel-core/src/main/java/org/apache/camel/support/TokenPairExpressionIterator.java
+++ b/camel-core/src/main/java/org/apache/camel/support/TokenPairExpressionIterator.java
@@ -27,6 +27,7 @@ import org.apache.camel.language.simple.SimpleLanguage;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.Scanner;
+import org.apache.camel.util.StringHelper;
 
 /**
  * {@link org.apache.camel.Expression} to walk a {@link org.apache.camel.Message} body
@@ -44,8 +45,8 @@ public class TokenPairExpressionIterator extends ExpressionAdapter {
     protected final boolean includeTokens;
 
     public TokenPairExpressionIterator(String startToken, String endToken, boolean includeTokens) {
-        ObjectHelper.notEmpty(startToken, "startToken");
-        ObjectHelper.notEmpty(endToken, "endToken");
+        StringHelper.notEmpty(startToken, "startToken");
+        StringHelper.notEmpty(endToken, "endToken");
         this.startToken = startToken;
         this.endToken = endToken;
         this.includeTokens = includeTokens;
@@ -198,7 +199,7 @@ public class TokenPairExpressionIterator extends ExpressionAdapter {
 
             // only grab text after the start token
             if (next != null && next.contains(startToken)) {
-                next = ObjectHelper.after(next, startToken);
+                next = StringHelper.after(next, startToken);
 
                 // include tokens in answer
                 if (next != null && includeTokens) {
diff --git a/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java b/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
index dc4848e..3c8877b 100644
--- a/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
+++ b/camel-core/src/main/java/org/apache/camel/support/TokenXMLExpressionIterator.java
@@ -35,6 +35,7 @@ import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.language.simple.SimpleLanguage;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * {@link org.apache.camel.Expression} to walk a {@link org.apache.camel.Message} XML body
@@ -59,7 +60,7 @@ public class TokenXMLExpressionIterator extends ExpressionAdapter {
     protected final String inheritNamespaceToken;
 
     public TokenXMLExpressionIterator(String tagToken, String inheritNamespaceToken) {
-        ObjectHelper.notEmpty(tagToken, "tagToken");
+        StringHelper.notEmpty(tagToken, "tagToken");
         this.tagToken = tagToken;
         // namespace token is optional
         this.inheritNamespaceToken = inheritNamespaceToken;
@@ -216,7 +217,7 @@ public class TokenXMLExpressionIterator extends ExpressionAdapter {
             // build answer accordingly to whether namespaces should be inherited or not
             if (inheritNamespaceToken != null && rootTokenNamespaces != null) {
                 // REVISIT should skip the prefixes that are declared within the child itself.
-                String head = ObjectHelper.before(next, ">");
+                String head = StringHelper.before(next, ">");
                 boolean empty = false;
                 if (head.endsWith("/")) {
                     head = head.substring(0, head.length() - 1);
@@ -225,7 +226,7 @@ public class TokenXMLExpressionIterator extends ExpressionAdapter {
                 StringBuilder sb = new StringBuilder();
                 // append root namespaces to local start token
                 // grab the text
-                String tail = ObjectHelper.after(next, ">");
+                String tail = StringHelper.after(next, ">");
                 // build result with inherited namespaces
                 next = sb.append(head).append(rootTokenNamespaces).append(empty ? "/>" : ">").append(tail).toString();
             } else if (wrapToken) {
diff --git a/camel-core/src/main/java/org/apache/camel/support/TokenXMLPairExpressionIterator.java b/camel-core/src/main/java/org/apache/camel/support/TokenXMLPairExpressionIterator.java
index 23b3b2f..968f737 100644
--- a/camel-core/src/main/java/org/apache/camel/support/TokenXMLPairExpressionIterator.java
+++ b/camel-core/src/main/java/org/apache/camel/support/TokenXMLPairExpressionIterator.java
@@ -27,6 +27,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.language.simple.SimpleLanguage;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.Scanner;
+import org.apache.camel.util.StringHelper;
 
 /**
  * {@link org.apache.camel.Expression} to walk a {@link org.apache.camel.Message} XML body
@@ -152,7 +153,7 @@ public class TokenXMLPairExpressionIterator extends TokenPairExpressionIterator
             }
 
             // make sure the end tag matches the begin tag if the tag has a namespace prefix
-            String tag = ObjectHelper.before(next, ">");
+            String tag = StringHelper.before(next, ">");
             StringBuilder endTagSb = new StringBuilder("</");
             int firstSpaceIndex = tag.indexOf(" ");
             if (firstSpaceIndex > 0) {
@@ -166,7 +167,7 @@ public class TokenXMLPairExpressionIterator extends TokenPairExpressionIterator
             if (inheritNamespaceToken != null && rootTokenNamespaces != null) {
                 // append root namespaces to local start token
                 // grab the text
-                String text = ObjectHelper.after(next, ">");
+                String text = StringHelper.after(next, ">");
                 // build result with inherited namespaces
                 next = sb.append(tag).append(rootTokenNamespaces).append(">").append(text).append(endTagSb.toString()).toString();
             } else {
diff --git a/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java b/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java
index 4523fa8..85d4f5e 100644
--- a/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java
+++ b/camel-core/src/main/java/org/apache/camel/support/XMLTokenExpressionIterator.java
@@ -44,6 +44,7 @@ import org.apache.camel.converter.jaxp.StaxConverter;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,7 +62,7 @@ public class XMLTokenExpressionIterator extends ExpressionAdapter implements Nam
     }
 
     public XMLTokenExpressionIterator(String path, char mode, int group) {
-        ObjectHelper.notEmpty(path, "path");
+        StringHelper.notEmpty(path, "path");
         this.path = path;
         this.mode = mode;
         this.group = group > 1 ? group : 1;
diff --git a/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java b/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java
index 2294bfc..3810981 100644
--- a/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/EndpointHelper.java
@@ -42,7 +42,7 @@ import org.apache.camel.spi.BrowsableEndpoint;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import static org.apache.camel.util.ObjectHelper.after;
+import static org.apache.camel.util.StringHelper.after;
 
 /**
  * Some helper methods for working with {@link Endpoint} instances
@@ -130,14 +130,14 @@ public final class EndpointHelper {
         // we need to test with and without scheme separators (//)
         if (uri.contains("://")) {
             // try without :// also
-            String scheme = ObjectHelper.before(uri, "://");
+            String scheme = StringHelper.before(uri, "://");
             String path = after(uri, "://");
             if (matchPattern(scheme + ":" + path, pattern)) {
                 return true;
             }
         } else {
             // try with :// also
-            String scheme = ObjectHelper.before(uri, ":");
+            String scheme = StringHelper.before(uri, ":");
             String path = after(uri, ":");
             if (matchPattern(scheme + "://" + path, pattern)) {
                 return true;
diff --git a/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java b/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
index f1738db..b2fab60 100644
--- a/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/util/IntrospectionSupport.java
@@ -387,14 +387,14 @@ public final class IntrospectionSupport {
 
     public static Method getPropertyGetter(Class<?> type, String propertyName) throws NoSuchMethodException {
         if (isPropertyIsGetter(type, propertyName)) {
-            return type.getMethod("is" + ObjectHelper.capitalize(propertyName));
+            return type.getMethod("is" + StringHelper.capitalize(propertyName));
         } else {
-            return type.getMethod("get" + ObjectHelper.capitalize(propertyName));
+            return type.getMethod("get" + StringHelper.capitalize(propertyName));
         }
     }
 
     public static Method getPropertySetter(Class<?> type, String propertyName) throws NoSuchMethodException {
-        String name = "set" + ObjectHelper.capitalize(propertyName);
+        String name = "set" + StringHelper.capitalize(propertyName);
         for (Method method : type.getMethods()) {
             if (isSetter(method) && method.getName().equals(name)) {
                 return method;
@@ -405,7 +405,7 @@ public final class IntrospectionSupport {
 
     public static boolean isPropertyIsGetter(Class<?> type, String propertyName) {
         try {
-            Method method = type.getMethod("is" + ObjectHelper.capitalize(propertyName));
+            Method method = type.getMethod("is" + StringHelper.capitalize(propertyName));
             if (method != null) {
                 return method.getReturnType().isAssignableFrom(boolean.class) || method.getReturnType().isAssignableFrom(Boolean.class);
             }
@@ -437,7 +437,7 @@ public final class IntrospectionSupport {
     }
 
     public static boolean setProperties(Object target, Map<String, Object> properties, String optionPrefix) throws Exception {
-        ObjectHelper.notEmpty(optionPrefix, "optionPrefix");
+        StringHelper.notEmpty(optionPrefix, "optionPrefix");
         return setProperties(target, properties, optionPrefix, false);
     }
 
@@ -688,7 +688,7 @@ public final class IntrospectionSupport {
         Set<Method> candidates = new LinkedHashSet<>();
 
         // Build the method name.
-        name = "set" + ObjectHelper.capitalize(name);
+        name = "set" + StringHelper.capitalize(name);
         while (clazz != Object.class) {
             // Since Object.class.isInstance all the objects,
             // here we just make sure it will be add to the bottom of the set.
diff --git a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
index 949a253..1992e0a 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
@@ -1222,7 +1222,7 @@ public final class ObjectHelper {
      * @return the class, or null if it could not be loaded
      */
     private static Class<?> doLoadClass(String name, ClassLoader loader) {
-        ObjectHelper.notEmpty(name, "name");
+        StringHelper.notEmpty(name, "name");
         if (loader == null) {
             return null;
         }
diff --git a/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java b/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
index 61b3aab..ee595c0 100644
--- a/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/OgnlHelper.java
@@ -155,7 +155,7 @@ public final class OgnlHelper {
         }
 
         if (ognlExpression.contains("[")) {
-            return ObjectHelper.before(ognlExpression, "[");
+            return StringHelper.before(ognlExpression, "[");
         }
         return ognlExpression;
     }
diff --git a/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java b/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
index 1c9da1cc..72d6648 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ResourceHelper.java
@@ -233,7 +233,7 @@ public final class ResourceHelper {
      */
     public static InputStream resolveResourceAsInputStream(ClassResolver classResolver, String uri) throws IOException {
         if (uri.startsWith("file:")) {
-            uri = ObjectHelper.after(uri, "file:");
+            uri = StringHelper.after(uri, "file:");
             uri = tryDecodeUri(uri);
             LOG.trace("Loading resource: {} from file system", uri);
             return new FileInputStream(uri);
@@ -253,7 +253,7 @@ public final class ResourceHelper {
                 throw e;
             }
         } else if (uri.startsWith("classpath:")) {
-            uri = ObjectHelper.after(uri, "classpath:");
+            uri = StringHelper.after(uri, "classpath:");
             uri = tryDecodeUri(uri);
         } else if (uri.contains(":")) {
             LOG.trace("Loading resource: {} with UrlHandler for protocol {}", uri, uri.split(":")[0]);
@@ -298,7 +298,7 @@ public final class ResourceHelper {
     public static URL resolveResourceAsUrl(ClassResolver classResolver, String uri) throws MalformedURLException {
         if (uri.startsWith("file:")) {
             // check if file exists first
-            String name = ObjectHelper.after(uri, "file:");
+            String name = StringHelper.after(uri, "file:");
             uri = tryDecodeUri(uri);
             LOG.trace("Loading resource: {} from file system", uri);
             File file = new File(name);
@@ -310,7 +310,7 @@ public final class ResourceHelper {
             LOG.trace("Loading resource: {} from HTTP", uri);
             return new URL(uri);
         } else if (uri.startsWith("classpath:")) {
-            uri = ObjectHelper.after(uri, "classpath:");
+            uri = StringHelper.after(uri, "classpath:");
             uri = tryDecodeUri(uri);
         } else if (uri.contains(":")) {
             LOG.trace("Loading resource: {} with UrlHandler for protocol {}", uri, uri.split(":")[0]);
diff --git a/camel-core/src/main/java/org/apache/camel/util/URISupport.java b/camel-core/src/main/java/org/apache/camel/util/URISupport.java
index 35f10ef..3d4bd42 100644
--- a/camel-core/src/main/java/org/apache/camel/util/URISupport.java
+++ b/camel-core/src/main/java/org/apache/camel/util/URISupport.java
@@ -381,9 +381,9 @@ public final class URISupport {
 
         // assemble string as new uri and replace parameters with the query instead
         String s = uri.toString();
-        String before = ObjectHelper.before(s, "?");
+        String before = StringHelper.before(s, "?");
         if (before == null) {
-            before = ObjectHelper.before(s, "#");
+            before = StringHelper.before(s, "#");
         }
         if (before != null) {
             s = before;
diff --git a/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java b/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
index c1a3df7..04157a0 100644
--- a/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/concurrent/ThreadHelper.java
@@ -20,7 +20,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 /**
  * Various helper method for thread naming.
@@ -54,7 +54,7 @@ public final class ThreadHelper {
 
         // we support #longName# and #name# as name placeholders
         String longName = name;
-        String shortName = name.contains("?") ? ObjectHelper.before(name, "?") : name;
+        String shortName = name.contains("?") ? StringHelper.before(name, "?") : name;
         // must quote the names to have it work as literal replacement
         shortName = Matcher.quoteReplacement(shortName);
         longName = Matcher.quoteReplacement(longName);
diff --git a/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java b/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java
index 4361e37..9ece574 100644
--- a/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java
+++ b/camel-core/src/test/java/org/apache/camel/builder/xml/XPathTest.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.builder.xml;
 
+import org.apache.camel.util.StringHelper;
 import org.junit.Test;
 
 import java.io.InputStream;
@@ -42,7 +43,6 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
-import org.apache.camel.util.ObjectHelper;
 
 import static org.apache.camel.builder.xml.XPathBuilder.xpath;
 
@@ -438,7 +438,7 @@ public class XPathTest extends ContextTestSupport {
         assertNotNull(result);
 
         String s = context.getTypeConverter().convertTo(String.class, result);
-        assertEquals(ObjectHelper.between(xml, "<foo>", "</foo>"), s);
+        assertEquals(StringHelper.between(xml, "<foo>", "</foo>"), s);
     }
 
     @Test
diff --git a/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticMethodWithExchangeTestConverter.java b/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticMethodWithExchangeTestConverter.java
index d7f1961..da05857 100644
--- a/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticMethodWithExchangeTestConverter.java
+++ b/camel-core/src/test/java/org/apache/camel/converter/myconverter/StaticMethodWithExchangeTestConverter.java
@@ -19,14 +19,14 @@ package org.apache.camel.converter.myconverter;
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.apache.camel.converter.MyBean;
-import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 
 @Converter
 public class StaticMethodWithExchangeTestConverter {
 
     @Converter
     public MyBean fromString(String text, Exchange exchange) {
-        String[] values = ObjectHelper.splitOnCharacter(text, ":", 2);
+        String[] values = StringHelper.splitOnCharacter(text, ":", 2);
         return new MyBean(Integer.parseInt(values[0]), exchange.getProperty("prefix", String.class) + values[1]);
     }
 }