为什么没有Camel路由测试解析占位符端点?

时间:2016-02-17 13:15:28

标签: apache-camel

我有一个简单的Camel路由测试类,我已经扩展为使用占位符作为端点。

import org.apache.camel.CamelContext;
import org.apache.camel.EndpointInject;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.component.properties.PropertiesComponent;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;

import java.util.Properties;

public class SimpleTestRoute extends CamelTestSupport {

    @EndpointInject(uri = "{{test.route.out}}")
    protected MockEndpoint resultEndpoint;

    @Produce(uri = "direct:start")
    protected ProducerTemplate template;

    @Test
    public void test() throws Exception {
    }

    @Override
    protected RouteBuilder createRouteBuilder() {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start").to("{{test.route.out}}");
            }
        };
    }

    @Override
    protected CamelContext createCamelContext() throws Exception {
        Properties props = new Properties();
        props.setProperty("test.route.out", "mock:result");

        CamelContext context = super.createCamelContext();
        PropertiesComponent pc = context.getComponent("properties", PropertiesComponent.class);
        pc.setOverrideProperties(props);

        return context;
    }
}

然而,当我跑步时,我得到了

org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: {{test.route.out}} due to: Property with key [test.route.out] not found in properties from text: {{test.route.out}}
    at ...
Caused by: java.lang.IllegalArgumentException: Property with key [test.route.out] not found in properties from text: {{test.route.out}}
    at ...

我尝试了各种支撑位置组合而没有进展。现在我怀疑问题是没有设置覆盖,但我看不出我做错了什么或如何解决它。

FWIW,我正在运行骆驼2.13.1

0 个答案:

没有答案