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

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


The following commit(s) were added to refs/heads/main by this push:
     new dfc70bce62d CAMEL-00000: Fixed a few bugs and sonar findings that I 
somehow missed. (#12587)
dfc70bce62d is described below

commit dfc70bce62d4aed9277f99c17ae40ab7e6bd044a
Author: Steve Storck <[email protected]>
AuthorDate: Sun Dec 24 03:05:53 2023 -0500

    CAMEL-00000: Fixed a few bugs and sonar findings that I somehow missed. 
(#12587)
---
 .../dynamicrouter/DynamicRouterFilterService.java  |   3 +-
 .../DynamicRouterRecipientListHelper.java          |  23 ++--
 ...ynamicRouterControlChannelSendDynamicAware.java |   6 +-
 .../control/DynamicRouterControlConfiguration.java |  13 +--
 .../control/DynamicRouterControlConstants.java     |   7 +-
 .../control/DynamicRouterControlEndpoint.java      |   2 +-
 .../routing/DynamicRouterConstants.java            |   5 +-
 .../routing/DynamicRouterProcessor.java            |   4 +-
 ...icRouterControlChannelSendDynamicAwareTest.java |   4 +-
 .../DynamicRouterBasicSynchronousIT.java           |   8 +-
 .../DynamicRouterSendDynamicAwareIT.java           |   4 +-
 .../DynamicRouterSingleRouteTwoParticipantsIT.java |   2 +-
 .../integration/DynamicRouterTwoRoutesIT.java      |   2 +-
 .../routing/DynamicRouterProcessorTest.java        | 127 ++++++++++-----------
 14 files changed, 103 insertions(+), 107 deletions(-)

diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterFilterService.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterFilterService.java
index 2de60482aa1..ea32cc8820d 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterFilterService.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterFilterService.java
@@ -29,7 +29,6 @@ import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.Message;
 import org.apache.camel.Predicate;
-import org.apache.camel.component.dynamicrouter.routing.DynamicRouterComponent;
 import 
org.apache.camel.component.dynamicrouter.routing.DynamicRouterConfiguration;
 import org.apache.camel.component.dynamicrouter.routing.DynamicRouterConstants;
 import org.apache.camel.util.ObjectHelper;
@@ -42,7 +41,7 @@ import static 
org.apache.camel.component.dynamicrouter.routing.DynamicRouterCons
 
 public class DynamicRouterFilterService {
 
-    private static final Logger LOG = 
LoggerFactory.getLogger(DynamicRouterComponent.class);
+    private static final Logger LOG = 
LoggerFactory.getLogger(DynamicRouterFilterService.class);
 
     /**
      * Lists of {@link PrioritizedFilter}s, mapped by their channel.
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterRecipientListHelper.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterRecipientListHelper.java
index f012758b926..0418a19d732 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterRecipientListHelper.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/DynamicRouterRecipientListHelper.java
@@ -41,7 +41,12 @@ import static 
org.apache.camel.support.CamelContextHelper.mandatoryLookup;
 /**
  * Utility class that creates a {@link RecipientList} {@link Processor} based 
on a {@link DynamicRouterConfiguration}.
  */
-public class DynamicRouterRecipientListHelper {
+public final class DynamicRouterRecipientListHelper {
+
+    private static final String ESM_NAME = "ExecutorServiceManager";
+
+    private DynamicRouterRecipientListHelper() {
+    }
 
     /**
      * Given an object, convert it to an {@link AggregationStrategy} based on 
its class.
@@ -50,8 +55,9 @@ public class DynamicRouterRecipientListHelper {
     static BiFunction<Object, DynamicRouterConfiguration, AggregationStrategy> 
convertAggregationStrategy = (aggStr, cfg) -> {
         if (aggStr instanceof AggregationStrategy as) {
             return as;
-        } else if (aggStr instanceof BiFunction bf) {
-            AggregationStrategyBiFunctionAdapter adapter = new 
AggregationStrategyBiFunctionAdapter(bf);
+        } else if (aggStr instanceof BiFunction<?, ?, ?> bf) {
+            AggregationStrategyBiFunctionAdapter adapter
+                    = new 
AggregationStrategyBiFunctionAdapter((BiFunction<Exchange, Exchange, Object>) 
bf);
             
adapter.setAllowNullNewExchange(cfg.isAggregationStrategyMethodAllowNull());
             
adapter.setAllowNullOldExchange(cfg.isAggregationStrategyMethodAllowNull());
             return adapter;
@@ -153,13 +159,12 @@ public class DynamicRouterRecipientListHelper {
      * @see               #getConfiguredExecutorService(CamelContext, String, 
DynamicRouterConfiguration, boolean)
      */
     static boolean willCreateNewThreadPool(CamelContext camelContext, 
DynamicRouterConfiguration cfg, boolean useDefault) {
-        ObjectHelper.notNull(camelContext.getExecutorServiceManager(), 
"ExecutorServiceManager", camelContext);
+        ObjectHelper.notNull(camelContext.getExecutorServiceManager(), 
ESM_NAME, camelContext);
         return Optional.ofNullable(cfg.getExecutorServiceBean())
                 .map(esb -> false)
                 .or(() -> Optional.ofNullable(cfg.getExecutorService())
-                        .map(es -> null == lookupByNameAndType(camelContext, 
es, ExecutorService.class)))
-                .or(() -> Optional.of(useDefault))
-                .get();
+                        .map(es -> lookupByNameAndType(camelContext, es, 
ExecutorService.class) == null))
+                .orElse(useDefault);
     }
 
     /**
@@ -183,7 +188,7 @@ public class DynamicRouterRecipientListHelper {
             CamelContext camelContext, String name, Object source,
             String executorServiceRef) {
         ExecutorServiceManager manager = 
camelContext.getExecutorServiceManager();
-        ObjectHelper.notNull(manager, "ExecutorServiceManager", camelContext);
+        ObjectHelper.notNull(manager, ESM_NAME, camelContext);
         ObjectHelper.notNull(executorServiceRef, "executorServiceRef");
         // lookup in registry first and use existing thread pool if exists,
         // or create a new thread pool, assuming that the executor service ref 
is a thread pool ID
@@ -215,7 +220,7 @@ public class DynamicRouterRecipientListHelper {
             DynamicRouterConfiguration cfg, boolean useDefault)
             throws IllegalArgumentException {
         ExecutorServiceManager manager = 
camelContext.getExecutorServiceManager();
-        ObjectHelper.notNull(manager, "ExecutorServiceManager", camelContext);
+        ObjectHelper.notNull(manager, ESM_NAME, camelContext);
         // The first (preferred) option is to use an explicitly-configured 
executor if the configuration has it
         return Optional.ofNullable(cfg.getExecutorServiceBean())
                 // The second preference is to check for an executor service 
reference
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAware.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAware.java
index 91623403199..2bb1d34794a 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAware.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAware.java
@@ -97,7 +97,7 @@ public class DynamicRouterControlChannelSendDynamicAware 
extends SendDynamicAwar
     public String resolveStaticUri(Exchange exchange, DynamicAwareEntry entry) 
{
         String optimizedUri = null;
         String uri = entry.getUri();
-        if (DynamicRouterControlConstants.SHOULD_OPTIMIZE.apply(uri)) {
+        if (DynamicRouterControlConstants.SHOULD_OPTIMIZE.test(uri)) {
             optimizedUri = URISupport.stripQuery(uri);
         }
         return optimizedUri;
@@ -114,7 +114,7 @@ public class DynamicRouterControlChannelSendDynamicAware 
extends SendDynamicAwar
     @Override
     public Processor createPreProcessor(Exchange exchange, DynamicAwareEntry 
entry) {
         Processor preProcessor = null;
-        if 
(DynamicRouterControlConstants.SHOULD_OPTIMIZE.apply(entry.getUri())) {
+        if 
(DynamicRouterControlConstants.SHOULD_OPTIMIZE.test(entry.getUri())) {
             preProcessor = queryParamsHeadersProcessor.apply(entry);
         }
         return preProcessor;
@@ -131,7 +131,7 @@ public class DynamicRouterControlChannelSendDynamicAware 
extends SendDynamicAwar
     @Override
     public Processor createPostProcessor(Exchange exchange, DynamicAwareEntry 
entry) {
         Processor postProcessor = null;
-        if 
(DynamicRouterControlConstants.SHOULD_OPTIMIZE.apply(entry.getUri())) {
+        if 
(DynamicRouterControlConstants.SHOULD_OPTIMIZE.test(entry.getUri())) {
             postProcessor = ex -> {
                 Message message = exchange.getMessage();
                 
DynamicRouterControlConstants.URI_PARAMS_TO_HEADER_NAMES.values().forEach(message::removeHeader);
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConfiguration.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConfiguration.java
index 0c77d919182..9bacd349565 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConfiguration.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConfiguration.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
 
 @UriParams
-public class DynamicRouterControlConfiguration implements Cloneable {
+public class DynamicRouterControlConfiguration {
 
     /**
      * The control action (subscribe or unsubscribe).
@@ -235,14 +235,7 @@ public class DynamicRouterControlConfiguration implements 
Cloneable {
     }
 
     public DynamicRouterControlConfiguration() {
-
-    }
-
-    public DynamicRouterControlConfiguration copy() {
-        try {
-            return (DynamicRouterControlConfiguration) super.clone();
-        } catch (CloneNotSupportedException e) {
-            throw new AssertionError();
-        }
+        // Default constructor is empty because we need an instance, and
+        // then things can be populated through mutator methods.
     }
 }
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConstants.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConstants.java
index a071352f181..1ec6a6a9e58 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConstants.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlConstants.java
@@ -30,7 +30,10 @@ import org.apache.camel.spi.Metadata;
 /**
  * Constants pertaining to the Dynamic Router Control operations.
  */
-public abstract class DynamicRouterControlConstants {
+public final class DynamicRouterControlConstants {
+
+    private DynamicRouterControlConstants() {
+    }
 
     /**
      * The camel version where the dynamic router control channel endpoint was 
introduced.
@@ -55,7 +58,7 @@ public abstract class DynamicRouterControlConstants {
     /**
      * Function to determine if the control channel URI should be optimized.
      */
-    public static final Function<String, Boolean> SHOULD_OPTIMIZE = uri -> 
OPTIMIZE_MATCHER.apply(uri).find();
+    public static final java.util.function.Predicate<String> SHOULD_OPTIMIZE = 
uri -> OPTIMIZE_MATCHER.apply(uri).find();
 
     /**
      * Convenient constant for the control channel URI.
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
index 11402ee1961..91c63b284fc 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlEndpoint.java
@@ -70,7 +70,7 @@ public class DynamicRouterControlEndpoint extends 
DefaultEndpoint {
      * Service that manages {@link 
org.apache.camel.component.dynamicrouter.PrioritizedFilter}s for the Dynamic 
Router
      * channels.
      */
-    private volatile DynamicRouterFilterService filterService;
+    private DynamicRouterFilterService filterService;
 
     /**
      * Creates a {@link DynamicRouterControlProducer} instance.
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterConstants.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterConstants.java
index eb665fb7577..bcca5ba88e3 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterConstants.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterConstants.java
@@ -33,7 +33,10 @@ import org.apache.camel.support.builder.ExpressionBuilder;
 /**
  * Contains constants that are used within this component.
  */
-public abstract class DynamicRouterConstants {
+public final class DynamicRouterConstants {
+
+    private DynamicRouterConstants() {
+    }
 
     /**
      * The camel version where the dynamic router eip component was first 
introduced.
diff --git 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessor.java
 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessor.java
index e72c7c40d61..6912a986883 100644
--- 
a/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessor.java
+++ 
b/components/camel-dynamic-router/src/main/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessor.java
@@ -142,12 +142,10 @@ public class DynamicRouterProcessor extends 
AsyncProcessorSupport {
          * @param  configuration the configuration
          * @param  filterService service that manages {@link 
PrioritizedFilter}s for dynamic router channels
          * @return               the {@link DynamicRouterProcessor} instance
-         * @throws Exception     if the {@link DynamicRouterProcessor} cannot 
be created
          */
         public DynamicRouterProcessor getInstance(
                 CamelContext camelContext, DynamicRouterConfiguration 
configuration,
-                DynamicRouterFilterService filterService)
-                throws Exception {
+                DynamicRouterFilterService filterService) {
             RecipientList recipientList
                     = (RecipientList) 
DynamicRouterRecipientListHelper.createProcessor(camelContext, configuration);
             return new DynamicRouterProcessor(
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAwareTest.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAwareTest.java
index aff880ca1fa..313c303c2aa 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAwareTest.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/control/DynamicRouterControlChannelSendDynamicAwareTest.java
@@ -20,6 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.spi.SendDynamicAware;
+import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
@@ -50,7 +51,7 @@ class DynamicRouterControlChannelSendDynamicAwareTest {
             assertAll(
                     () -> assertEquals(entry.getOriginalUri(), originalUri),
                     () -> assertEquals(entry.getUri(), uri),
-                    () -> assertEquals(entry.getProperties().size(), 2),
+                    () -> assertEquals(2, entry.getProperties().size()),
                     () -> assertEquals("subscribe", 
entry.getProperties().get("controlAction")),
                     () -> assertEquals("testSub1", 
entry.getProperties().get("subscriptionId")));
         }
@@ -77,6 +78,7 @@ class DynamicRouterControlChannelSendDynamicAwareTest {
         try (DynamicRouterControlChannelSendDynamicAware testSubject = new 
DynamicRouterControlChannelSendDynamicAware()) {
             SendDynamicAware.DynamicAwareEntry entry = 
testSubject.prepare(exchange, uri, originalUri);
             Processor preProcessor = testSubject.createPreProcessor(exchange, 
entry);
+            Assertions.assertNotNull(preProcessor);
             preProcessor.process(exchange);
         }
     }
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterBasicSynchronousIT.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterBasicSynchronousIT.java
index 613dada0f83..0d3df451d83 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterBasicSynchronousIT.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterBasicSynchronousIT.java
@@ -43,7 +43,7 @@ import static org.mockito.Mockito.verify;
  * This test verifies basic functionality with the Dynamic Router in 
synchronous mode. This configuration is entirely
  * manual. For Spring XML, refer to {@link 
DynamicRouterSingleRouteTwoParticipantsIT}.
  */
-public class DynamicRouterBasicSynchronousIT {
+class DynamicRouterBasicSynchronousIT {
 
     private final Predicate matchAllPredicate = 
PredicateBuilder.constant(true);
 
@@ -53,7 +53,7 @@ public class DynamicRouterBasicSynchronousIT {
      * @throws Exception if interrupted while waiting for mocks to be satisfied
      */
     @Test
-    public void testDynamicRouter() throws Exception {
+    void testDynamicRouter() throws Exception {
         CamelContext context = new DefaultCamelContext();
         ProducerTemplate template = context.createProducerTemplate();
         addRoutes.accept(context);
@@ -83,7 +83,7 @@ public class DynamicRouterBasicSynchronousIT {
      * @throws Exception if interrupted while waiting for mocks to be satisfied
      */
     @Test
-    public void testSubscribingWithMessage() throws Exception {
+    void testSubscribingWithMessage() throws Exception {
         CamelContext context = new DefaultCamelContext();
         ProducerTemplate template = context.createProducerTemplate();
         addRoutes.accept(context);
@@ -116,7 +116,7 @@ public class DynamicRouterBasicSynchronousIT {
      * @throws Exception if interrupted while waiting for mocks to be satisfied
      */
     @Test
-    public void testSubscribingWithMessageAndSpelPredicate() throws Exception {
+    void testSubscribingWithMessageAndSpelPredicate() throws Exception {
         CamelContext context = new DefaultCamelContext();
         ProducerTemplate template = context.createProducerTemplate();
         addRoutes.accept(context);
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSendDynamicAwareIT.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSendDynamicAwareIT.java
index c3e8d72f19d..12a753f6220 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSendDynamicAwareIT.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSendDynamicAwareIT.java
@@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test;
 import static 
org.apache.camel.component.dynamicrouter.DynamicRouterTestConstants.addRoutes;
 import static org.apache.camel.test.infra.core.MockUtils.getMockEndpoint;
 
-public class DynamicRouterSendDynamicAwareIT {
+class DynamicRouterSendDynamicAwareIT {
 
     /**
      * Tests participant subscription, and that messages are received at their 
registered destination endpoints.
@@ -36,7 +36,7 @@ public class DynamicRouterSendDynamicAwareIT {
      * @throws Exception if interrupted while waiting for mocks to be satisfied
      */
     @Test
-    public void testSubscribeWithUriAndMultipleSubscribers() throws Exception {
+    void testSubscribeWithUriAndMultipleSubscribers() throws Exception {
         CamelContext context = new DefaultCamelContext();
         ProducerTemplate template = context.createProducerTemplate();
         addRoutes.accept(context);
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSingleRouteTwoParticipantsIT.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSingleRouteTwoParticipantsIT.java
index 6337af85921..94e79fc8cd3 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSingleRouteTwoParticipantsIT.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterSingleRouteTwoParticipantsIT.java
@@ -45,7 +45,7 @@ import static 
org.apache.camel.component.dynamicrouter.control.DynamicRouterCont
 @CamelSpringTest
 @ContextConfiguration
 @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
-public class DynamicRouterSingleRouteTwoParticipantsIT {
+class DynamicRouterSingleRouteTwoParticipantsIT {
 
     @Autowired
     CamelContext camelContext;
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterTwoRoutesIT.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterTwoRoutesIT.java
index f8dc51f7c79..02b319f7d1a 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterTwoRoutesIT.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/integration/DynamicRouterTwoRoutesIT.java
@@ -43,7 +43,7 @@ import static 
org.apache.camel.component.dynamicrouter.control.DynamicRouterCont
 @CamelSpringTest
 @ContextConfiguration
 @DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
-public class DynamicRouterTwoRoutesIT {
+class DynamicRouterTwoRoutesIT {
 
     @Autowired
     CamelContext camelContext;
diff --git 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessorTest.java
 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessorTest.java
index 35d7aa96989..a83c68f00f0 100644
--- 
a/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessorTest.java
+++ 
b/components/camel-dynamic-router/src/test/java/org/apache/camel/component/dynamicrouter/routing/DynamicRouterProcessorTest.java
@@ -16,103 +16,96 @@
  */
 package org.apache.camel.component.dynamicrouter.routing;
 
-import java.util.concurrent.ExecutorService;
-
 import org.apache.camel.AsyncCallback;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
-import org.apache.camel.Predicate;
-import org.apache.camel.component.dynamicrouter.PrioritizedFilter;
-import 
org.apache.camel.component.dynamicrouter.PrioritizedFilter.PrioritizedFilterFactory;
-import org.apache.camel.spi.ProducerCache;
+import org.apache.camel.Message;
+import org.apache.camel.component.dynamicrouter.DynamicRouterFilterService;
+import org.apache.camel.processor.RecipientList;
 import org.apache.camel.test.infra.core.CamelContextExtension;
 import org.apache.camel.test.infra.core.DefaultCamelContextExtension;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.mockito.Mock;
+import org.mockito.internal.verification.Times;
 import org.mockito.junit.jupiter.MockitoExtension;
 
+import static 
org.apache.camel.component.dynamicrouter.routing.DynamicRouterConstants.MODE_FIRST_MATCH;
+import static 
org.apache.camel.component.dynamicrouter.routing.DynamicRouterConstants.RECIPIENT_LIST_HEADER;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 @ExtendWith(MockitoExtension.class)
 class DynamicRouterProcessorTest {
 
-    static final String PROCESSOR_ID = "testProcessorId";
+    static final String TEST_CHANNEL = "testChannel";
 
-    static final String TEST_ID = "testId";
+    static final String MOCK_ENDPOINT = "mock://test";
 
     @RegisterExtension
     static CamelContextExtension contextExtension = new 
DefaultCamelContextExtension();
 
-    @Mock
-    AsyncCallback asyncCallback;
-
     CamelContext context;
 
     DynamicRouterProcessor processor;
 
     @Mock
-    PrioritizedFilter prioritizedFilter;
+    RecipientList recipientList;
 
     @Mock
-    ProducerCache producerCache;
+    DynamicRouterFilterService filterService;
 
     @Mock
-    ExecutorService executorService;
+    Exchange exchange;
 
     @Mock
-    Predicate predicate;
+    Message message;
 
     @Mock
-    Exchange exchange;
+    AsyncCallback asyncCallback;
 
-    PrioritizedFilterFactory prioritizedFilterFactory;
-
-    //    @BeforeEach
-    //    void localSetup() throws Exception {
-    //        context = contextExtension.getContext();
-    //        prioritizedFilterFactory = new PrioritizedFilterFactory() {
-    //            @Override
-    //            public PrioritizedFilter getInstance(String id, int 
priority, Predicate predicate, String endpoint) {
-    //                return prioritizedFilter;
-    //            }
-    //        };
-    //        processor = new DynamicRouterProcessor(filters, recipientList, 
recipientMode, warnDroppedMessage, channel);
-    //    }
-    //
-    //    @Test
-    //    void matchFiltersMatches() {
-    //        addFilterAsFilterProcessor();
-    //        
Mockito.when(prioritizedFilter.predicate()).thenReturn(predicate);
-    //        
Mockito.when(predicate.matches(any(Exchange.class))).thenReturn(true);
-    //        PrioritizedFilter result = 
processor.matchFilters(exchange).get(0);
-    //        assertEquals(TEST_ID, result.id());
-    //    }
-    //
-    //    @Test
-    //    void matchFiltersDoesNotMatch() {
-    //        addFilterAsFilterProcessor();
-    //        
Mockito.when(prioritizedFilter.predicate()).thenReturn(predicate);
-    //        
Mockito.when(predicate.matches(any(Exchange.class))).thenReturn(false);
-    //        assertTrue(processor.matchFilters(exchange).isEmpty());
-    //    }
-    //
-    //    @Test
-    //    void processMatching() {
-    //        addFilterAsFilterProcessor();
-    //        
Mockito.when(prioritizedFilter.predicate()).thenReturn(predicate);
-    //        
Mockito.when(predicate.matches(any(Exchange.class))).thenReturn(true);
-    //        assertTrue(processor.process(exchange, asyncCallback));
-    //    }
-    //
-    //    @Test
-    //    void processNotMatching() {
-    //        addFilterAsFilterProcessor();
-    //        
Mockito.when(prioritizedFilter.predicate()).thenReturn(predicate);
-    //        
Mockito.when(predicate.matches(any(Exchange.class))).thenReturn(false);
-    //        assertTrue(processor.process(exchange, asyncCallback));
-    //    }
-    //
-    //    @Test
-    //    void testStringIsId() {
-    //        assertEquals(PROCESSOR_ID, processor.toString());
-    //    }
+    @BeforeEach
+    void localSetup() {
+        context = contextExtension.getContext();
+        processor = new DynamicRouterProcessor(MODE_FIRST_MATCH, false, 
TEST_CHANNEL, recipientList, filterService);
+    }
+
+    @Test
+    void testMatchFilters() {
+        when(filterService.getMatchingEndpointsForExchangeByChannel(exchange, 
TEST_CHANNEL, true, false))
+                .thenReturn(MOCK_ENDPOINT);
+        String result = processor.matchFilters(exchange);
+        assertEquals(MOCK_ENDPOINT, result);
+    }
+
+    @Test
+    void testPrepareExchange() {
+        when(exchange.getMessage()).thenReturn(message);
+        when(filterService.getMatchingEndpointsForExchangeByChannel(exchange, 
TEST_CHANNEL, true, false))
+                .thenReturn(MOCK_ENDPOINT);
+        processor.prepareExchange(exchange);
+        verify(message, new Times(1)).setHeader(RECIPIENT_LIST_HEADER, 
MOCK_ENDPOINT);
+    }
+
+    @Test
+    void testProcess() throws Exception {
+        when(exchange.getMessage()).thenReturn(message);
+        when(filterService.getMatchingEndpointsForExchangeByChannel(exchange, 
TEST_CHANNEL, true, false))
+                .thenReturn(MOCK_ENDPOINT);
+        processor.process(exchange);
+        verify(message, new Times(1)).setHeader(RECIPIENT_LIST_HEADER, 
MOCK_ENDPOINT);
+        verify(recipientList, new Times(1)).process(exchange);
+    }
+
+    @Test
+    void testProcessAsync() {
+        when(exchange.getMessage()).thenReturn(message);
+        when(filterService.getMatchingEndpointsForExchangeByChannel(exchange, 
TEST_CHANNEL, true, false))
+                .thenReturn(MOCK_ENDPOINT);
+        processor.process(exchange, asyncCallback);
+        verify(recipientList, new Times(1)).process(exchange, asyncCallback);
+    }
 }

Reply via email to