[
https://issues.apache.org/jira/browse/CAMEL-22587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18032346#comment-18032346
]
Claus Ibsen commented on CAMEL-22587:
-------------------------------------
See the IMPORTANT note here
[https://camel.apache.org/manual/route-template.html#_binding_beans_to_route_template]
> Cannot set headerFilterStrategy option in a Kamelet
> ---------------------------------------------------
>
> Key: CAMEL-22587
> URL: https://issues.apache.org/jira/browse/CAMEL-22587
> Project: Camel
> Issue Type: Bug
> Components: camel-mail
> Affects Versions: 4.15.0
> Reporter: Raymond
> Priority: Minor
>
> The mail component:
> [https://camel.apache.org/components/4.14.x/mail-component.html]
> has the option
> *headerFilterStrategy*
> I'm trying to use this option from a Kamelet like this:
> {code:java}
> template:
> beans:
> - name: ExtendedHeaderFilterStrategy
> type: "#class:org.assimbly.util.mail.ExtendedHeaderFilterStrategy"
> route:
> from:
> uri: "kamelet:source"
> steps:
> - toD:
> uri:
> "smtp://smpt.google.com?headerFilterStrategy=#bean:ExtendedHeaderFilterStrategy"
> - to:
> uri: "kamelet:sink" {code}
> or like this:
> {code:java}
> registry.bind("ExtendedHeaderFilterStrategy", new
> ExtendedHeaderFilterStrategy()); {code}
>
> {code:java}
> template:
> route:
> from:
> uri: "kamelet:source"
> steps:
> - toD:
> uri:
> "smtp://smpt.google.com?headerFilterStrategy=#ExtendedHeaderFilterStrategy"
> - to:
> uri: "kamelet:sink" {code}
>
> However, I get the following error:
> {code:java}
> org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint:
> smtp://smtp-relay.gmail.com:[email protected])&username=xxxxxx due to: Error
> binding property
> (headerFilterStrategy=%23bean%3AExtendedHeaderFilterStrategy) with name:
> headerFilterStrategy on bean:
> smtp://smtp-relay.gmail.com:[email protected])&username=xxxxxx with value:
> %23bean%3AExtendedHeaderFilterStrategy
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:866)
> at
> org.apache.camel.impl.engine.DefaultCamelContextExtension.getEndpoint(DefaultCamelContextExtension.java:268)
> at
> org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:106)
> at
> org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:134)
> at
> org.apache.camel.support.ExchangeHelper.resolveEndpoint(ExchangeHelper.java:114)
> at
> org.apache.camel.processor.SendDynamicProcessor.resolveEndpoint(SendDynamicProcessor.java:314)
> at
> org.apache.camel.processor.SendDynamicProcessor.process(SendDynamicProcessor.java:161)
> at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:777)
> at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:720)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.executeReactiveWork(DefaultReactiveExecutor.java:189)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.tryExecuteReactiveWork(DefaultReactiveExecutor.java:166)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:162)
> at
> org.apache.camel.impl.engine.CamelInternalProcessor.processNonTransacted(CamelInternalProcessor.java:370)
> at
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:346)
> at
> org.apache.camel.component.jetty.CamelContinuationServlet.handleDoService(CamelContinuationServlet.java:242)
> at
> org.apache.camel.component.jetty.CamelContinuationServlet.doService(CamelContinuationServlet.java:68)
> at
> org.apache.camel.http.common.CamelServlet.handleService(CamelServlet.java:111)
> at
> org.apache.camel.http.common.CamelServlet.service(CamelServlet.java:97)
> at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
> at
> org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:751)
> at
> org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1622)
> at
> org.apache.camel.component.jetty.MultiPartFilter.doFilter(MultiPartFilter.java:50)
> at
> org.apache.camel.component.jetty.CamelFilterWrapper.doFilter(CamelFilterWrapper.java:49)
> at
> org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
> at
> org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
> at
> org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1555)
> at
> org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:823)
> at
> org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:440)
> at
> org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:470)
> at
> org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1071)
> at org.eclipse.jetty.server.Server.handle(Server.java:182)
> at
> org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:677)
> at
> org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:416)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at
> org.eclipse.jetty.io.ssl.SslConnection$SslEndPoint.onFillable(SslConnection.java:612)
> at
> org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:413)
> at
> org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:155)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
> at
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
> at
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:195)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:981)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1211)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1166)
> at java.base/java.lang.Thread.run(Thread.java:1583)
> Caused by: org.apache.camel.PropertyBindingException: Error binding property
> (headerFilterStrategy=%23bean%3AExtendedHeaderFilterStrategy) with name:
> headerFilterStrategy on bean:
> smtp://smtp-relay.gmail.com:[email protected])&username=xxxxxx with value:
> %23bean%3AExtendedHeaderFilterStrategy
> at
> org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:808)
> at
> org.apache.camel.support.PropertyBindingSupport.doSetPropertyValue(PropertyBindingSupport.java:563)
> at
> org.apache.camel.support.PropertyBindingSupport.doBuildPropertyOgnlPath(PropertyBindingSupport.java:420)
> at
> org.apache.camel.support.PropertyBindingSupport.doBindProperties(PropertyBindingSupport.java:300)
> at
> org.apache.camel.support.PropertyBindingSupport$Builder.bind(PropertyBindingSupport.java:1958)
> at
> org.apache.camel.support.DefaultEndpoint.setProperties(DefaultEndpoint.java:423)
> at
> org.apache.camel.support.DefaultEndpoint.configureProperties(DefaultEndpoint.java:395)
> at
> org.apache.camel.support.ScheduledPollEndpoint.configureProperties(ScheduledPollEndpoint.java:115)
> at
> org.apache.camel.support.DefaultComponent.setProperties(DefaultComponent.java:421)
> at
> org.assimbly.mail.component.mail.MailComponent.createEndpoint(MailComponent.java:113)
> at
> org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:171)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:832)
> ... 50 common frames omitted
> Caused by: org.apache.camel.RuntimeCamelException:
> org.apache.camel.NoTypeConversionAvailableException: No type converter
> available to convert from type: java.lang.String to the required type:
> org.apache.camel.spi.HeaderFilterStrategy
> at
> org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:53)
> at
> org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:104)
> at
> org.assimbly.mail.component.mail.MailEndpointConfigurer.configure(MailEndpointConfigurer.java:76)
> at
> org.apache.camel.support.PropertyBindingSupport.setSimplePropertyViaConfigurer(PropertyBindingSupport.java:806)
> ... 61 common frames omitted
> Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
> converter available to convert from type: java.lang.String to the required
> type: org.apache.camel.spi.HeaderFilterStrategy
> at
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:207)
> at
> org.apache.camel.impl.converter.CoreTypeConverterRegistry.mandatoryConvertTo(CoreTypeConverterRegistry.java:188)
> at
> org.apache.camel.support.component.PropertyConfigurerSupport.property(PropertyConfigurerSupport.java:102)
> ... 63 common frames omitted {code}
> For now, I worked around it by setting it as component option:
> {code:java}
> MailComponent mailComponent = context.getComponent("smtp",
> MailComponent.class);
> mailComponent.setHeaderFilterStrategy(new ExtendedHeaderFilterStrategy());
> {code}
> But thought it was good to report anyway.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)