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

Reply via email to