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 {