[
https://issues.apache.org/jira/browse/CAMEL-15766?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17232374#comment-17232374
]
Claus Ibsen commented on CAMEL-15766:
-------------------------------------
Okay we need to source code generate a converter where we can do the lookup
A prototype
{code}
package org.apache.camel.component.http.springboot;
import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.camel.CamelContext;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.converter.GenericConverter;
public class DeleteMe implements GenericConverter {
private final CamelContext camelContext;
public DeleteMe(CamelContext camelContext) {
this.camelContext = camelContext;
}
@Override
public Set<ConvertiblePair> getConvertibleTypes() {
Set<ConvertiblePair> answer = new LinkedHashSet<>();
answer.add(new ConvertiblePair(String.class,
org.apache.camel.component.http.HttpClientConfigurer.class));
answer.add(new ConvertiblePair(String.class,
org.apache.http.conn.HttpClientConnectionManager.class));
return answer;
}
@Override
public Object convert(Object source, TypeDescriptor sourceType,
TypeDescriptor targetType) {
if (source == null) {
return null;
}
String ref = source.toString().substring(1);
switch (targetType.getName()) {
case "org.apache.camel.component.http.HttpClientConfigurer": return
camelContext.getRegistry().lookupByNameAndType(ref,
org.apache.camel.component.http.HttpClientConfigurer.class);
case "org.apache.http.conn.HttpClientConnectionManager": return
camelContext.getRegistry().lookupByNameAndType(ref,
org.apache.http.conn.HttpClientConnectionManager.class);
}
return null;
}
}
{code}
> camel-spring-boot - No converter found capable of converting from type
> [java.lang.String] to type
> [org.apache.camel.component.http.HttpClientConfigurer]
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-15766
> URL: https://issues.apache.org/jira/browse/CAMEL-15766
> Project: Camel
> Issue Type: Bug
> Components: camel-http, camel-spring-boot
> Affects Versions: 3.6.0
> Reporter: Marco Santarelli
> Assignee: Claus Ibsen
> Priority: Major
> Fix For: 3.7.0
>
>
> When trying to use a custom http-configurer, I believe I am experiencing a
> regression when upgrading to Camel 3.6.0
> I am using spring-boot 2.3.4.RELEASE, and I am declaring my custom configurer
> bean using:
> {code:java}
> camel.component.http.http-client-configurer=#httpClientConfig
> {code}
> When updating to Camel 3.6.0, that configuration results in:
> {code:java}
> ***************************
> APPLICATION FAILED TO START
> ***************************
> Description:
> Failed to bind properties under 'camel.component.http.http-client-configurer'
> to org.apache.camel.component.http.HttpClientConfigurer:
> Property: camel.component.http.http-client-configurer
> Value: httpClientConfig
> Origin: class path resource [application.properties]:1:45
> Reason: No converter found capable of converting from type
> [java.lang.String] to type
> [org.apache.camel.component.http.HttpClientConfigurer]
> Action:
> Update your application's configuration{code}
>
> See [https://github.com/santam85/camel-3.6.0-http-configurer-bean] for a
> reproduction example.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)