This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 9a7af71 CAMEL-15390: CollectionStringBuilder - Use JDK util methods instead (#4085) 9a7af71 is described below commit 9a7af71ae489ce126c0a57c90c8b7e8ac5bb5185 Author: Zineb BENDHIBA <bendhiba.zi...@gmail.com> AuthorDate: Wed Aug 12 13:28:01 2020 +0200 CAMEL-15390: CollectionStringBuilder - Use JDK util methods instead (#4085) * CAMEL-15390: CollectionStringBuilder - Use JDK util methods instead * CAMEL-15390: remove duplicates toString --- .../camel/openapi/OpenApiRestProducerFactory.java | 18 +++++----- .../apache/camel/component/rest/RestProducer.java | 10 +++--- .../org/apache/camel/spring/SpringTestSupport.java | 8 ++--- .../sql/DefaultSqlPrepareStatementStrategy.java | 8 ++--- .../camel/swagger/SwaggerRestProducerFactory.java | 14 ++++---- .../spring/junit5/CamelAnnotationsHandler.java | 8 ++--- .../junit5/CamelSpringTestContextLoader.java | 21 ------------ .../camel/test/spring/CamelAnnotationsHandler.java | 8 ++--- .../test/spring/CamelSpringTestContextLoader.java | 21 ------------ .../camel/component/undertow/UndertowConsumer.java | 8 ++--- .../zookeeper/ZooKeeperConfiguration.java | 8 ++--- .../camel/impl/engine/DefaultShutdownStrategy.java | 8 ++--- .../org/apache/camel/builder/DataFormatClause.java | 10 +++--- .../java/org/apache/camel/impl/DefaultModel.java | 10 +++--- .../camel/model/dataformat/JsonDataFormat.java | 11 +++--- .../camel/model/dataformat/XStreamDataFormat.java | 10 +++--- .../camel/model/language/ExpressionDefinition.java | 6 ++-- .../camel/core/xml/CamelJMXAgentDefinition.java | 39 ++++++++++------------ .../converter/stream/CachedOutputStreamTest.java | 11 +++--- .../mbean/ManagedFailoverLoadBalancer.java | 8 ++--- 20 files changed, 101 insertions(+), 144 deletions(-) diff --git a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/OpenApiRestProducerFactory.java b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/OpenApiRestProducerFactory.java index 2c43e58..a8c9aed 100644 --- a/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/OpenApiRestProducerFactory.java +++ b/components/camel-openapi-java/src/main/java/org/apache/camel/openapi/OpenApiRestProducerFactory.java @@ -20,6 +20,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -38,7 +39,6 @@ import org.apache.camel.Producer; import org.apache.camel.spi.RestConfiguration; import org.apache.camel.spi.RestProducerFactory; import org.apache.camel.support.CamelContextHelper; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.IOHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -155,8 +155,8 @@ public class OpenApiRestProducerFactory implements RestProducerFactory { LOG.debug("Using RestProducerFactory: {}", factory); if (produces == null) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); - List<String> list = new ArrayList<String>(); + StringJoiner producesBuilder = new StringJoiner(","); + List<String> list = new ArrayList<>(); if (operation instanceof Oas20Operation) { list = ((Oas20Operation)operation).produces; } else if (operation instanceof Oas30Operation) { @@ -176,14 +176,14 @@ public class OpenApiRestProducerFactory implements RestProducerFactory { } if (list != null) { for (String s : list) { - csb.append(s); + producesBuilder.add(s); } } - produces = csb.isEmpty() ? null : csb.toString(); + produces = producesBuilder.length() == 0 ? null : producesBuilder.toString(); } if (consumes == null) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); - List<String> list = new ArrayList<String>(); + StringJoiner consumesBuilder = new StringJoiner(","); + List<String> list = new ArrayList<>(); if (operation instanceof Oas20Operation) { list = ((Oas20Operation)operation).consumes; } else if (operation instanceof Oas30Operation) { @@ -203,10 +203,10 @@ public class OpenApiRestProducerFactory implements RestProducerFactory { } if (list != null) { for (String s : list) { - csb.append(s); + consumesBuilder.add(s); } } - consumes = csb.isEmpty() ? null : csb.toString(); + consumes = consumesBuilder.length() == 0 ? null : consumesBuilder.toString(); } String basePath = null; diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java index 1ae664a..46ac849 100644 --- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java +++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/RestProducer.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Locale; import java.util.Map; +import java.util.StringJoiner; import org.apache.camel.AsyncCallback; import org.apache.camel.AsyncProcessor; @@ -39,7 +40,6 @@ import org.apache.camel.support.AsyncProcessorConverterHelper; import org.apache.camel.support.DefaultAsyncProducer; import org.apache.camel.support.PropertyBindingSupport; import org.apache.camel.support.service.ServiceHelper; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.FileUtil; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.URISupport; @@ -152,7 +152,7 @@ public class RestProducer extends DefaultAsyncProducer { // resolve template and replace {key} with the values form the exchange // each {} is a parameter (url templating) String[] arr = resolvedUriTemplate.split("\\/"); - CollectionStringBuffer csb = new CollectionStringBuffer("/"); + StringJoiner uriTemplateBuilder = new StringJoiner("/"); for (String a : arr) { String resolvedUriParam = resolveHeaderPlaceholders(a, inMessage); @@ -162,12 +162,12 @@ public class RestProducer extends DefaultAsyncProducer { && !resolvedUriParam.contains("{") && !resolvedUriParam.contains("}")) { hasPath = true; - csb.append(resolvedUriParam); + uriTemplateBuilder.add(resolvedUriParam); } else { - csb.append(a); + uriTemplateBuilder.add(a); } } - resolvedUriTemplate = csb.toString(); + resolvedUriTemplate = uriTemplateBuilder.toString(); } } diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/SpringTestSupport.java b/components/camel-spring/src/test/java/org/apache/camel/spring/SpringTestSupport.java index 1a94744..e07dc4f 100644 --- a/components/camel-spring/src/test/java/org/apache/camel/spring/SpringTestSupport.java +++ b/components/camel-spring/src/test/java/org/apache/camel/spring/SpringTestSupport.java @@ -21,6 +21,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.StringJoiner; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; @@ -28,7 +29,6 @@ import org.apache.camel.api.management.JmxSystemPropertyKeys; import org.apache.camel.impl.engine.DefaultPackageScanClassResolver; import org.apache.camel.impl.scan.AssignableToPackageScanFilter; import org.apache.camel.impl.scan.InvertingPackageScanFilter; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.IOHelper; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; @@ -51,11 +51,11 @@ public abstract class SpringTestSupport extends ContextTestSupport { System.setProperty(JmxSystemPropertyKeys.DISABLED, Boolean.toString(!useJmx())); Class<?>[] excluded = excludeRoutes(); if (excluded != null && excluded.length > 0) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner excludedRoutes = new StringJoiner(","); for (Class<?> clazz : excluded) { - csb.append(clazz.getName()); + excludedRoutes.add(clazz.getName()); } - System.setProperty(SpringCamelContext.EXCLUDE_ROUTES, csb.toString()); + System.setProperty(SpringCamelContext.EXCLUDE_ROUTES, excludedRoutes.toString()); } applicationContext = createApplicationContext(); diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/DefaultSqlPrepareStatementStrategy.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/DefaultSqlPrepareStatementStrategy.java index e1fa323..ba3d70b 100644 --- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/DefaultSqlPrepareStatementStrategy.java +++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/DefaultSqlPrepareStatementStrategy.java @@ -24,13 +24,13 @@ import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NoSuchElementException; +import java.util.StringJoiner; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.camel.Exchange; import org.apache.camel.RuntimeExchangeException; import org.apache.camel.support.ObjectHelper; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.StringQuoteHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -68,12 +68,12 @@ public class DefaultSqlPrepareStatementStrategy implements SqlPrepareStatementSt Object parameter = lookupParameter(found, exchange, exchange.getIn().getBody()); if (parameter != null) { Iterator it = createInParameterIterator(parameter); - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner replaceBuilder = new StringJoiner(","); while (it.hasNext()) { it.next(); - csb.append("\\?"); + replaceBuilder.add("\\?"); } - String replace = csb.toString(); + String replace = replaceBuilder.toString(); String foundEscaped = found.replace("$", "\\$").replace("{", "\\{").replace("}", "\\}"); Matcher paramMatcher = Pattern.compile("\\:\\?in\\:" + foundEscaped, Pattern.MULTILINE).matcher(query); query = paramMatcher.replaceAll(replace); diff --git a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestProducerFactory.java b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestProducerFactory.java index 49a651a..99d7a27 100644 --- a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestProducerFactory.java +++ b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/SwaggerRestProducerFactory.java @@ -19,6 +19,7 @@ package org.apache.camel.swagger; import java.io.InputStream; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import io.swagger.models.Operation; import io.swagger.models.Path; @@ -30,7 +31,6 @@ import org.apache.camel.Producer; import org.apache.camel.spi.RestConfiguration; import org.apache.camel.spi.RestProducerFactory; import org.apache.camel.support.CamelContextHelper; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.IOHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -143,30 +143,30 @@ public class SwaggerRestProducerFactory implements RestProducerFactory { LOG.debug("Using RestProducerFactory: {}", factory); if (produces == null) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner producesBuilder = new StringJoiner(","); List<String> list = operation.getProduces(); if (list == null) { list = swagger.getProduces(); } if (list != null) { for (String s : list) { - csb.append(s); + producesBuilder.add(s); } } - produces = csb.isEmpty() ? null : csb.toString(); + produces = producesBuilder.length() == 0 ? null : producesBuilder.toString(); } if (consumes == null) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner consumesBuilder = new StringJoiner(","); List<String> list = operation.getConsumes(); if (list == null) { list = swagger.getConsumes(); } if (list != null) { for (String s : list) { - csb.append(s); + consumesBuilder.add(s); } } - consumes = csb.isEmpty() ? null : csb.toString(); + consumes = consumesBuilder.length() == 0 ? null : consumesBuilder.toString(); } String basePath; diff --git a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java index 23e2b6c..dabdf14 100644 --- a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java +++ b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelAnnotationsHandler.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Properties; +import java.util.StringJoiner; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -37,7 +38,6 @@ import org.apache.camel.spi.EventNotifier; import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spring.SpringCamelContext; import org.apache.camel.test.junit5.CamelTestSupport; -import org.apache.camel.util.CollectionStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.BeanPostProcessor; @@ -86,12 +86,12 @@ public final class CamelAnnotationsHandler { if (testClass.isAnnotationPresent(ExcludeRoutes.class)) { Class[] routes = testClass.getAnnotation(ExcludeRoutes.class).value(); // need to setup this as a JVM system property - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner routesBuilder = new StringJoiner(","); for (Class clazz : routes) { - csb.append(clazz.getName()); + routesBuilder.add(clazz.getName()); } String key = SpringCamelContext.EXCLUDE_ROUTES; - String value = csb.toString(); + String value = routesBuilder.toString(); String exists = System.getProperty(key); if (exists != null) { diff --git a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java index 2a62194..14345fe 100644 --- a/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java +++ b/components/camel-test-spring-junit5/src/main/java/org/apache/camel/test/spring/junit5/CamelSpringTestContextLoader.java @@ -17,47 +17,26 @@ package org.apache.camel.test.spring.junit5; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; import java.util.Arrays; -import java.util.Collection; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; -import java.util.Properties; -import java.util.concurrent.TimeUnit; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.api.management.JmxSystemPropertyKeys; -import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy; -import org.apache.camel.processor.interceptor.DefaultDebugger; -import org.apache.camel.spi.Breakpoint; -import org.apache.camel.spi.Debugger; -import org.apache.camel.spi.EventNotifier; -import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spring.SpringCamelContext; import org.apache.camel.test.ExcludingPackageScanClassResolver; -import org.apache.camel.test.junit5.CamelTestSupport; -import org.apache.camel.test.spring.junit5.CamelSpringTestHelper.DoToSpringCamelContextsStrategy; -import org.apache.camel.util.CollectionStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.ApplicationContext; -import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotatedBeanDefinitionReader; import org.springframework.context.annotation.AnnotationConfigUtils; import org.springframework.context.support.GenericApplicationContext; -import org.springframework.core.annotation.AnnotationUtils; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.context.support.AbstractContextLoader; import org.springframework.test.context.support.AbstractGenericContextLoader; import org.springframework.test.context.support.GenericXmlContextLoader; import org.springframework.util.StringUtils; -import static org.apache.camel.test.spring.junit5.CamelSpringTestHelper.getAllMethods; - /** * Replacement for the default {@link GenericXmlContextLoader} that provides hooks for * processing some class level Camel related test annotations. diff --git a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java index faf1a3b..f787bc0 100644 --- a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java +++ b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelAnnotationsHandler.java @@ -22,6 +22,7 @@ import java.util.Collection; import java.util.LinkedList; import java.util.List; import java.util.Properties; +import java.util.StringJoiner; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -37,7 +38,6 @@ import org.apache.camel.spi.EventNotifier; import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spring.SpringCamelContext; import org.apache.camel.test.junit4.CamelTestSupport; -import org.apache.camel.util.CollectionStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.config.BeanPostProcessor; @@ -86,12 +86,12 @@ public final class CamelAnnotationsHandler { if (testClass.isAnnotationPresent(ExcludeRoutes.class)) { Class[] routes = testClass.getAnnotation(ExcludeRoutes.class).value(); // need to setup this as a JVM system property - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner routesBuilder = new StringJoiner(","); for (Class clazz : routes) { - csb.append(clazz.getName()); + routesBuilder.add(clazz.getName()); } String key = SpringCamelContext.EXCLUDE_ROUTES; - String value = csb.toString(); + String value = routesBuilder.toString(); String exists = System.getProperty(key); if (exists != null) { diff --git a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java index 9ca04e3..7618745 100644 --- a/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java +++ b/components/camel-test-spring/src/main/java/org/apache/camel/test/spring/CamelSpringTestContextLoader.java @@ -17,47 +17,26 @@ package org.apache.camel.test.spring; import java.lang.reflect.Method; -import java.lang.reflect.Modifier; import java.util.Arrays; -import java.util.Collection; import java.util.HashSet; -import java.util.LinkedList; import java.util.List; -import java.util.Properties; -import java.util.concurrent.TimeUnit; -import org.apache.camel.ExtendedCamelContext; -import org.apache.camel.api.management.JmxSystemPropertyKeys; -import org.apache.camel.impl.engine.InterceptSendToMockEndpointStrategy; -import org.apache.camel.processor.interceptor.DefaultDebugger; -import org.apache.camel.spi.Breakpoint; -import org.apache.camel.spi.Debugger; -import org.apache.camel.spi.EventNotifier; -import org.apache.camel.spi.PropertiesComponent; import org.apache.camel.spring.SpringCamelContext; import org.apache.camel.test.ExcludingPackageScanClassResolver; -import org.apache.camel.test.junit4.CamelTestSupport; -import org.apache.camel.test.spring.CamelSpringTestHelper.DoToSpringCamelContextsStrategy; -import org.apache.camel.util.CollectionStringBuffer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.context.ApplicationContext; -import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotatedBeanDefinitionReader; import org.springframework.context.annotation.AnnotationConfigUtils; import org.springframework.context.support.GenericApplicationContext; -import org.springframework.core.annotation.AnnotationUtils; import org.springframework.test.context.MergedContextConfiguration; import org.springframework.test.context.support.AbstractContextLoader; import org.springframework.test.context.support.AbstractGenericContextLoader; import org.springframework.test.context.support.GenericXmlContextLoader; import org.springframework.util.StringUtils; -import static org.apache.camel.test.spring.CamelSpringTestHelper.getAllMethods; - /** * Replacement for the default {@link GenericXmlContextLoader} that provides hooks for * processing some class level Camel related test annotations. diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowConsumer.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowConsumer.java index 245b064..f66cb0e 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowConsumer.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowConsumer.java @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Collection; import java.util.List; +import java.util.StringJoiner; import io.undertow.Handlers; import io.undertow.server.HttpHandler; @@ -51,7 +52,6 @@ import org.apache.camel.component.undertow.handlers.CamelWebSocketHandler; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.DefaultConsumer; import org.apache.camel.support.EndpointHelper; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.IOHelper; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; @@ -157,7 +157,7 @@ public class UndertowConsumer extends DefaultConsumer implements HttpHandler, Su public void handleRequest(HttpServerExchange httpExchange) throws Exception { HttpString requestMethod = httpExchange.getRequestMethod(); if (Methods.OPTIONS.equals(requestMethod) && !getEndpoint().isOptionsEnabled()) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner methodsBuilder = new StringJoiner(","); Collection<HttpHandlerRegistrationInfo> handlers = getEndpoint().getComponent().getHandlers(); for (HttpHandlerRegistrationInfo reg : handlers) { @@ -168,10 +168,10 @@ public class UndertowConsumer extends DefaultConsumer implements HttpHandler, Su if (restrict.endsWith(",OPTIONS")) { restrict = restrict.substring(0, restrict.length() - 8); } - csb.append(restrict); + methodsBuilder.add(restrict); } } - String allowedMethods = csb.toString(); + String allowedMethods = methodsBuilder.toString(); if (ObjectHelper.isEmpty(allowedMethods)) { allowedMethods = getEndpoint().getHttpMethodRestrict(); } diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java index 287614c..77ec1ad 100644 --- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java +++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java @@ -18,13 +18,13 @@ package org.apache.camel.component.zookeeper; import java.util.ArrayList; import java.util.List; +import java.util.StringJoiner; import org.apache.camel.RuntimeCamelException; import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; import org.apache.camel.spi.UriPath; -import org.apache.camel.util.CollectionStringBuffer; /** * <code>ZookeeperConfiguration</code> encapsulates the configuration used to @@ -80,11 +80,11 @@ public class ZooKeeperConfiguration implements Cloneable { */ public String getServerUrls() { if (servers != null) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner serversBuilder = new StringJoiner(","); for (String server : servers) { - csb.append(server); + serversBuilder.add(server); } - return csb.toString(); + return serversBuilder.toString(); } return null; } diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultShutdownStrategy.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultShutdownStrategy.java index 25597e8..af2b321 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultShutdownStrategy.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultShutdownStrategy.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.StringJoiner; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; @@ -51,7 +52,6 @@ import org.apache.camel.spi.ShutdownStrategy; import org.apache.camel.support.EventHelper; import org.apache.camel.support.service.ServiceHelper; import org.apache.camel.support.service.ServiceSupport; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.StopWatch; import org.apache.camel.util.URISupport; @@ -647,15 +647,15 @@ public class DefaultShutdownStrategy extends ServiceSupport implements ShutdownS if (size > 0) { try { // build a message with inflight per route - CollectionStringBuffer csb = new CollectionStringBuffer(); + StringJoiner inflightsBuilder = new StringJoiner(", ", " Inflights per route: [", "]"); for (Map.Entry<String, Integer> entry : routeInflight.entrySet()) { String row = String.format("%s = %s", entry.getKey(), entry.getValue()); - csb.append(row); + inflightsBuilder.add(row); } String msg = "Waiting as there are still " + size + " inflight and pending exchanges to complete, timeout in " + (TimeUnit.SECONDS.convert(timeout, timeUnit) - (loopCount++ * loopDelaySeconds)) + " seconds."; - msg += " Inflights per route: [" + csb.toString() + "]"; + msg += inflightsBuilder.toString(); LOG.info(msg); diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java b/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java index a0a59bd..e4e2388 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/builder/DataFormatClause.java @@ -19,6 +19,7 @@ package org.apache.camel.builder; import java.nio.charset.Charset; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import org.w3c.dom.Node; @@ -63,7 +64,6 @@ import org.apache.camel.model.dataformat.YAMLLibrary; import org.apache.camel.model.dataformat.ZipDeflaterDataFormat; import org.apache.camel.model.dataformat.ZipFileDataFormat; import org.apache.camel.support.jsse.KeyStoreParameters; -import org.apache.camel.util.CollectionStringBuffer; /** * An expression for constructing the different possible @@ -890,12 +890,12 @@ public class DataFormatClause<T extends ProcessorDefinition<?>> { * @param type the pojo class(es) xstream should use as allowed permission */ public T xstream(String encoding, Class<?>... type) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner stringBuilder = new StringJoiner(","); for (Class<?> clazz : type) { - csb.append("+"); - csb.append(clazz.getName()); + stringBuilder.add("+"); + stringBuilder.add(clazz.getName()); } - return xstream(encoding, csb.toString()); + return xstream(encoding, stringBuilder.toString()); } /** diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java index 72a300c..7f72564 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/impl/DefaultModel.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; @@ -45,7 +46,6 @@ import org.apache.camel.model.cloud.ServiceCallConfigurationDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.transformer.TransformerDefinition; import org.apache.camel.model.validator.ValidatorDefinition; -import org.apache.camel.util.CollectionStringBuffer; public class DefaultModel implements Model { @@ -206,7 +206,7 @@ public class DefaultModel implements Model { throw new IllegalArgumentException("Cannot find RouteTemplate with id " + routeTemplateId); } - CollectionStringBuffer cbs = new CollectionStringBuffer(); + StringJoiner templatesBuilder = new StringJoiner(", "); final Map<String, Object> prop = new HashMap(); // include default values first from the template (and validate that we have inputs for all required parameters) if (target.getTemplateParameters() != null) { @@ -216,13 +216,13 @@ public class DefaultModel implements Model { } else { // this is a required parameter do we have that as input if (!parameters.containsKey(temp.getName())) { - cbs.append(temp.getName()); + templatesBuilder.add(temp.getName()); } } } } - if (!cbs.isEmpty()) { - throw new IllegalArgumentException("Route template " + routeTemplateId + " the following mandatory parameters must be provided: " + cbs.toString()); + if (templatesBuilder.length() > 0) { + throw new IllegalArgumentException("Route template " + routeTemplateId + " the following mandatory parameters must be provided: " + templatesBuilder.toString()); } // then override with user parameters if (parameters != null) { diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java index d2977e5..ba0fe41 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java @@ -16,6 +16,8 @@ */ package org.apache.camel.model.dataformat; +import java.util.StringJoiner; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; @@ -24,7 +26,6 @@ import javax.xml.bind.annotation.XmlTransient; import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.spi.Metadata; -import org.apache.camel.util.CollectionStringBuffer; /** * Marshal POJOs to JSON and back. @@ -326,12 +327,12 @@ public class JsonDataFormat extends DataFormatDefinition { * @see #setPermissions(String) */ public void setPermissions(Class<?>... type) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner permissionsBuilder = new StringJoiner(","); for (Class<?> clazz : type) { - csb.append("+"); - csb.append(clazz.getName()); + permissionsBuilder.add("+"); + permissionsBuilder.add(clazz.getName()); } - setPermissions(csb.toString()); + setPermissions(permissionsBuilder.toString()); } public String getAllowUnmarshallType() { diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java index e3026fe..4588cde 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/dataformat/XStreamDataFormat.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.StringJoiner; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -30,7 +31,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.model.PropertyDefinition; import org.apache.camel.spi.Metadata; -import org.apache.camel.util.CollectionStringBuffer; /** * Marshal and unmarshal POJOs to/from XML using <a href="https://x-stream.github.io/">XStream</a> library. @@ -271,12 +271,12 @@ public class XStreamDataFormat extends DataFormatDefinition { * @see #setPermissions(String) */ public void setPermissions(Class<?>... type) { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner permissionsBuilder = new StringJoiner(","); for (Class<?> clazz : type) { - csb.append("+"); - csb.append(clazz.getName()); + permissionsBuilder.add("+"); + permissionsBuilder.add(clazz.getName()); } - setPermissions(csb.toString()); + setPermissions(permissionsBuilder.toString()); } } diff --git a/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java b/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java index 0ea00ef..dedc663 100644 --- a/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java +++ b/core/camel-core-engine/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java @@ -17,6 +17,7 @@ package org.apache.camel.model.language; import java.util.List; +import java.util.StringJoiner; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; @@ -34,7 +35,6 @@ import org.apache.camel.ExpressionFactory; import org.apache.camel.Predicate; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.spi.Metadata; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; /** @@ -78,9 +78,9 @@ public class ExpressionDefinition implements Expression, Predicate, ExpressionFa } public static String getLabel(List<ExpressionDefinition> expressions) { - CollectionStringBuffer buffer = new CollectionStringBuffer(); + StringJoiner buffer = new StringJoiner(", "); for (ExpressionDefinition expression : expressions) { - buffer.append(expression.getLabel()); + buffer.add(expression.getLabel()); } return buffer.toString(); } diff --git a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java index 6366491..bfef187 100644 --- a/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java +++ b/core/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java @@ -16,6 +16,8 @@ */ package org.apache.camel.core.xml; +import java.util.StringJoiner; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlAttribute; @@ -23,7 +25,6 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.model.IdentifiedType; import org.apache.camel.spi.Metadata; -import org.apache.camel.util.CollectionStringBuffer; /** * JMX configuration. @@ -205,53 +206,47 @@ public class CamelJMXAgentDefinition extends IdentifiedType { @Override public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("CamelJMXAgent["); - - CollectionStringBuffer csb = new CollectionStringBuffer(); + StringJoiner buffer = new StringJoiner(", ", "CamelJMXAgent[", "]"); if (disabled != null) { - csb.append("disabled=" + disabled); + buffer.add("disabled=" + disabled); } if (usePlatformMBeanServer != null) { - csb.append("usePlatformMBeanServer=" + usePlatformMBeanServer); + buffer.add("usePlatformMBeanServer=" + usePlatformMBeanServer); } if (mbeanServerDefaultDomain != null) { - csb.append("mbeanServerDefaultDomain=" + mbeanServerDefaultDomain); + buffer.add("mbeanServerDefaultDomain=" + mbeanServerDefaultDomain); } if (mbeanObjectDomainName != null) { - csb.append("mbeanObjectDomainName=" + mbeanObjectDomainName); + buffer.add("mbeanObjectDomainName=" + mbeanObjectDomainName); } if (statisticsLevel != null) { - csb.append("statisticsLevel=" + statisticsLevel); + buffer.add("statisticsLevel=" + statisticsLevel); } if (loadStatisticsEnabled != null) { - csb.append("loadStatisticsEnabled=" + loadStatisticsEnabled); + buffer.add("loadStatisticsEnabled=" + loadStatisticsEnabled); } if (endpointRuntimeStatisticsEnabled != null) { - csb.append("endpointRuntimeStatisticsEnabled=" + endpointRuntimeStatisticsEnabled); + buffer.add("endpointRuntimeStatisticsEnabled=" + endpointRuntimeStatisticsEnabled); } if (onlyRegisterProcessorWithCustomId != null) { - csb.append("onlyRegisterProcessorWithCustomId=" + onlyRegisterProcessorWithCustomId); + buffer.add("onlyRegisterProcessorWithCustomId=" + onlyRegisterProcessorWithCustomId); } if (registerAlways != null) { - csb.append("registerAlways=" + registerAlways); + buffer.add("registerAlways=" + registerAlways); } if (registerNewRoutes != null) { - csb.append("registerNewRoutes=" + registerNewRoutes); + buffer.add("registerNewRoutes=" + registerNewRoutes); } if (includeHostName != null) { - csb.append("includeHostName=" + includeHostName); + buffer.add("includeHostName=" + includeHostName); } if (useHostIPAddress != null) { - csb.append("useHostIPAddress=" + useHostIPAddress); + buffer.add("useHostIPAddress=" + useHostIPAddress); } if (mask != null) { - csb.append("mask=" + mask); + buffer.add("mask=" + mask); } - - sb.append(csb.toString()); - sb.append("]"); - return sb.toString(); + return buffer.toString(); } } diff --git a/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java b/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java index 1912c1b..66a98ba 100644 --- a/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/converter/stream/CachedOutputStreamTest.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.util.StringJoiner; import org.apache.camel.CamelContext; import org.apache.camel.ContextTestSupport; @@ -32,12 +33,14 @@ import org.apache.camel.converter.IOConverter; import org.apache.camel.impl.engine.DefaultUnitOfWork; import org.apache.camel.spi.UnitOfWork; import org.apache.camel.support.DefaultExchange; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.IOHelper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; public class CachedOutputStreamTest extends ContextTestSupport { private static final String TEST_STRING = "This is a test string and it has enough" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "; @@ -73,13 +76,13 @@ public class CachedOutputStreamTest extends ContextTestSupport { private static String toString(InputStream input) throws IOException { BufferedReader reader = IOHelper.buffered(new InputStreamReader(input)); - CollectionStringBuffer builder = new CollectionStringBuffer(); + StringJoiner builder = new StringJoiner(", "); while (true) { String line = reader.readLine(); if (line == null) { return builder.toString(); } - builder.append(line); + builder.add(line); } } diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java index 76cc6d0..a65cdef 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedFailoverLoadBalancer.java @@ -18,6 +18,7 @@ package org.apache.camel.management.mbean; import java.util.Iterator; import java.util.List; +import java.util.StringJoiner; import javax.management.openmbean.CompositeData; import javax.management.openmbean.CompositeDataSupport; @@ -34,7 +35,6 @@ import org.apache.camel.model.LoadBalanceDefinition; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.processor.loadbalancer.ExceptionFailureStatistics; import org.apache.camel.processor.loadbalancer.FailOverLoadBalancer; -import org.apache.camel.util.CollectionStringBuffer; import org.apache.camel.util.ObjectHelper; @ManagedResource(description = "Managed Failover LoadBalancer") @@ -93,11 +93,11 @@ public class ManagedFailoverLoadBalancer extends ManagedProcessor implements Man if (classes == null || classes.isEmpty()) { exceptions = ""; } else { - CollectionStringBuffer csb = new CollectionStringBuffer(","); + StringJoiner exceptionsBuilder = new StringJoiner(","); for (Class<?> clazz : classes) { - csb.append(clazz.getCanonicalName()); + exceptionsBuilder.add(clazz.getCanonicalName()); } - exceptions = csb.toString(); + exceptions = exceptionsBuilder.toString(); } return exceptions; }