You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/08/13 06:46:44 UTC
[camel] branch camel-3.4.x updated: CAMEL-15381: Avoid use of
reflection in CronComponent.
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.4.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.4.x by this push:
new ccf0257 CAMEL-15381: Avoid use of reflection in CronComponent.
ccf0257 is described below
commit ccf02577e2f0b9b5a692230b5791c2f6d13ba8d3
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Aug 13 08:45:26 2020 +0200
CAMEL-15381: Avoid use of reflection in CronComponent.
---
.../apache/camel/component/cron/CronComponent.java | 9 ++++
.../apache/camel/component/cron/CronEndpoint.java | 51 +++++-----------------
.../camel/component/cron/CronPatternsTest.java | 2 +
.../quartz/cron/QuartzCronMappingTest.java | 2 -
4 files changed, 22 insertions(+), 42 deletions(-)
diff --git a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronComponent.java b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronComponent.java
index 80933001..dc2ab80 100644
--- a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronComponent.java
+++ b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronComponent.java
@@ -25,6 +25,7 @@ import org.apache.camel.component.cron.api.CamelCronService;
import org.apache.camel.spi.Metadata;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.support.DefaultEndpoint;
import org.apache.camel.util.ObjectHelper;
/**
@@ -55,6 +56,14 @@ public class CronComponent extends DefaultComponent {
// create delegate and set on endpoint
Endpoint delegate = this.service.createEndpoint(configuration);
answer.setDelegate(delegate);
+ if (delegate instanceof DefaultEndpoint) {
+ DefaultEndpoint de = (DefaultEndpoint) delegate;
+ de.setBasicPropertyBinding(answer.isBasicPropertyBinding());
+ de.setBridgeErrorHandler(answer.isBridgeErrorHandler());
+ de.setExceptionHandler(answer.getExceptionHandler());
+ de.setExchangePattern(answer.getExchangePattern());
+ de.setSynchronous(answer.isSynchronous());
+ }
return answer;
}
diff --git a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
index a809a86..f63849c 100644
--- a/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
+++ b/components/camel-cron/src/main/java/org/apache/camel/component/cron/CronEndpoint.java
@@ -17,18 +17,16 @@
package org.apache.camel.component.cron;
import org.apache.camel.Category;
-import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.DelegateEndpoint;
import org.apache.camel.Endpoint;
-import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.component.cron.api.CamelCronConfiguration;
-import org.apache.camel.spi.ExceptionHandler;
import org.apache.camel.spi.UriEndpoint;
import org.apache.camel.spi.UriParam;
import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.service.ServiceHelper;
import org.apache.camel.util.ObjectHelper;
/**
@@ -73,49 +71,22 @@ public class CronEndpoint extends DefaultEndpoint implements DelegateEndpoint {
}
@Override
- public void setSynchronous(boolean synchronous) {
- super.setSynchronous(synchronous);
- if (delegate instanceof DefaultEndpoint) {
- ((DefaultEndpoint) delegate).setSynchronous(synchronous);
- }
- }
-
- @Override
- public void setBasicPropertyBinding(boolean basicPropertyBinding) {
- super.setBasicPropertyBinding(basicPropertyBinding);
- if (delegate instanceof DefaultEndpoint) {
- ((DefaultEndpoint) delegate).setBasicPropertyBinding(basicPropertyBinding);
- }
- }
-
- @Override
- public void setExchangePattern(ExchangePattern exchangePattern) {
- super.setExchangePattern(exchangePattern);
- if (delegate instanceof DefaultEndpoint) {
- ((DefaultEndpoint) delegate).setExchangePattern(exchangePattern);
- }
- }
+ protected void doStart() throws Exception {
+ super.doStart();
- @Override
- public void setExceptionHandler(ExceptionHandler exceptionHandler) {
- super.setExceptionHandler(exceptionHandler);
- if (delegate instanceof DefaultEndpoint) {
- ((DefaultEndpoint) delegate).setExceptionHandler(exceptionHandler);
- }
+ ObjectHelper.notNull(delegate, "delegate endpoint");
+ ServiceHelper.startService(delegate);
}
@Override
- public void setBridgeErrorHandler(boolean bridgeErrorHandler) {
- super.setBridgeErrorHandler(bridgeErrorHandler);
- if (delegate instanceof DefaultEndpoint) {
- ((DefaultEndpoint) delegate).setBridgeErrorHandler(bridgeErrorHandler);
- }
+ protected void doStop() throws Exception {
+ super.doStop();
+ ServiceHelper.stopService(delegate);
}
@Override
- protected void doStart() throws Exception {
- super.doStart();
-
- ObjectHelper.notNull(delegate, "delegate endpoint");
+ protected void doShutdown() throws Exception {
+ super.doShutdown();
+ ServiceHelper.stopAndShutdownService(delegate);
}
}
diff --git a/components/camel-cron/src/test/java/org/apache/camel/component/cron/CronPatternsTest.java b/components/camel-cron/src/test/java/org/apache/camel/component/cron/CronPatternsTest.java
index 451258f..6932942 100644
--- a/components/camel-cron/src/test/java/org/apache/camel/component/cron/CronPatternsTest.java
+++ b/components/camel-cron/src/test/java/org/apache/camel/component/cron/CronPatternsTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.cron;
import org.apache.camel.ExtendedCamelContext;
import org.apache.camel.FailedToCreateRouteException;
+import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.spi.BeanIntrospection;
import org.apache.camel.test.junit5.CamelTestSupport;
@@ -60,6 +61,7 @@ public class CronPatternsTest extends CamelTestSupport {
void testPlusInURI() throws Exception {
BeanIntrospection bi = context.adapt(ExtendedCamelContext.class).getBeanIntrospection();
bi.setExtendedStatistics(true);
+ bi.setLoggingLevel(LoggingLevel.INFO);
context.addRoutes(new RouteBuilder() {
@Override
diff --git a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/cron/QuartzCronMappingTest.java b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/cron/QuartzCronMappingTest.java
index d4d586f..342a645 100644
--- a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/cron/QuartzCronMappingTest.java
+++ b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/cron/QuartzCronMappingTest.java
@@ -20,13 +20,11 @@ import org.apache.camel.DelegateEndpoint;
import org.apache.camel.Endpoint;
import org.apache.camel.Route;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.component.quartz.BaseQuartzTest;
import org.apache.camel.component.quartz.QuartzEndpoint;
import org.junit.Test;
public class QuartzCronMappingTest extends BaseQuartzTest {
- protected MockEndpoint resultEndpoint;
@Test
public void test5PartsCronPattern() throws Exception {