CAMEL-10142: Fixed using scheduler=spring without any further configuration would not use spring as the scheduler.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e6ce94fe Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e6ce94fe Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e6ce94fe Branch: refs/heads/camel-2.17.x Commit: e6ce94feb115939fbd86480de58a739270440622 Parents: d88907a Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Jul 15 12:44:47 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Jul 15 15:21:30 2016 +0200 ---------------------------------------------------------------------- .../org/apache/camel/impl/DefaultComponent.java | 22 ++++----- .../file/FileConsumerSpringSchedulerTest.java | 47 ++++++++++++++++++++ 2 files changed, 59 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/e6ce94fe/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java index c6492ea..055df59 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java @@ -116,17 +116,15 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone return null; } - if (!parameters.isEmpty()) { - endpoint.configureProperties(parameters); - if (useIntrospectionOnEndpoint()) { - setProperties(endpoint, parameters); - } + endpoint.configureProperties(parameters); + if (useIntrospectionOnEndpoint()) { + setProperties(endpoint, parameters); + } - // if endpoint is strict (not lenient) and we have unknown parameters configured then - // fail if there are parameters that could not be set, then they are probably misspell or not supported at all - if (!endpoint.isLenientProperties()) { - validateParameters(uri, parameters, null); - } + // if endpoint is strict (not lenient) and we have unknown parameters configured then + // fail if there are parameters that could not be set, then they are probably misspell or not supported at all + if (!endpoint.isLenientProperties()) { + validateParameters(uri, parameters, null); } afterConfiguration(uri, path, endpoint, parameters); @@ -174,6 +172,10 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone * @throws ResolveEndpointFailedException should be thrown if the URI validation failed */ protected void validateParameters(String uri, Map<String, Object> parameters, String optionPrefix) { + if (parameters == null || parameters.isEmpty()) { + return; + } + Map<String, Object> param = parameters; if (optionPrefix != null) { param = IntrospectionSupport.extractProperties(parameters, optionPrefix); http://git-wip-us.apache.org/repos/asf/camel/blob/e6ce94fe/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSpringSchedulerTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSpringSchedulerTest.java b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSpringSchedulerTest.java new file mode 100644 index 0000000..08f0b13 --- /dev/null +++ b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSpringSchedulerTest.java @@ -0,0 +1,47 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.file; + +import org.apache.camel.ContextTestSupport; +import org.apache.camel.builder.RouteBuilder; + +public class FileConsumerSpringSchedulerTest extends ContextTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + public void testSpring() throws Exception { + context.addRoutes(new RouteBuilder() { + @Override + public void configure() throws Exception { + from("file:target/file/custom?scheduler=spring").routeId("foo").noAutoStartup() + .to("mock:result"); + } + }); + try { + context.start(); + fail("Should throw exception"); + } catch (Exception e) { + ClassNotFoundException cnfe = assertIsInstanceOf(ClassNotFoundException.class, e.getCause().getCause().getCause()); + assertEquals("org.apache.camel.spring.pollingconsumer.SpringScheduledPollConsumerScheduler", cnfe.getMessage()); + } + } + +} +