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);
+ }
}