[ 
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)

Reply via email to