Revert "camel-core - Avoid using reflection when setting properties."

This reverts commit f4282960bda946540bec0597b0830158d9f68bd3.
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 ae67825..c48356c 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
@@ -45,13 +45,16 @@
     public Endpoint createEndpoint(String uri, String remaining, Map<String, Object> properties) throws Exception {
         CamelCronConfiguration configuration = new CamelCronConfiguration();
         configuration.setName(remaining);
+        setProperties(configuration, properties);
+        validate(configuration);
 
         Endpoint delegate = this.service.createEndpoint(configuration);
         CronEndpoint cronEndpoint = new CronEndpoint(uri, this, delegate, configuration);
-        setProperties(cronEndpoint, properties);
 
-        // validate after options has been set
-        validate(configuration);
+        if (properties.size() > 0) {
+            // Additional endpoint properties present
+            setProperties(cronEndpoint, properties);
+        }
 
         return cronEndpoint;
     }