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 <claus.ib...@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 {