修改默认端点配置

时间:2017-08-25 12:28:44

标签: apache-camel

示例:

to("xslt:mapping.xsl?saxon=true&transformerCacheSize=5")

当我使用Saxon时,我会在整个地方设置这个属性。为它们设置String常量或创建我自己的xslt端点似乎不是正确的方法。

我可以为所有xslt个端点设置这些属性吗?

2 个答案:

答案 0 :(得分:0)

如果配置始终相同,您可以声明直接端点来处理所有请求。

from("direct:my-xslt")
.to("xslt:mapping.xsl?saxon=true&transformerCacheSize=5")

然后从其他路线开始:

.to("direct:my-xslt")

直接端点在同一个线程中运行,所以它只是一种隔离执行特定工作的路由部分的方法。

如果您需要在适用于所有路线的xslt之前/之后进行任何类型的转换/记录,那么您可以直接在直接路线中进行转换。

答案 1 :(得分:0)

您可以通过订阅CamelContext startupListener并设置XsltEndpoints'来配置它。参数(请注意,因为以下示例确实设置了每个XsltEndpoint端点的saxontransformerCacheSize属性。示例(ctx是CamelContext的一个实例):

ctx.addStartupListener((ctx, alreadyStarted) -> {
    ctx.getEndpoints().forEach(e -> {
            if(e instanceof XsltEndpoint) {
                ((XsltEndpoint) e).setTransformerCacheSize(5);
                ((XsltEndpoint) e).setSaxon(true);
            }
        });
});

如果是Spring Boot saxon=true,可以使用application.properties文件(XsltComponentConfiguration)进行配置。 AFAIK无法从属性文件配置transformerCacheSize,因为它是XsltEndpoint的参数。

# application.properties
camel.component.xslt.saxon = true