You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Luigi De Masi (Jira)" <ji...@apache.org> on 2023/03/23 09:36:00 UTC

[jira] [Commented] (CAMEL-19181) camel-springboot - mapstruct component is not autoconfigured automatically

    [ https://issues.apache.org/jira/browse/CAMEL-19181?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17704012#comment-17704012 ] 

Luigi De Masi commented on CAMEL-19181:
---------------------------------------

As [~Federico Mariani] wrote in the description, the problem is that if the mapstruct component is not registered in the context, via spring bean declaration or creating a mapstruct endpoint in a route, the starter does not find it and so it can't configure it, despite there is a property.

As a workaround, we can create, register and configure the component in case a component is not present and a mapstruct property is configured. The problem is that the starter is generated and overwrite all changes on every build, we have to modify the starter generator mojo to exclude some starter.

IMHO mapstruct should not be a regular component, it should be a transformer, WDYT [~davsclaus], [~acosentino] ?

> camel-springboot - mapstruct component is not autoconfigured automatically
> --------------------------------------------------------------------------
>
>                 Key: CAMEL-19181
>                 URL: https://issues.apache.org/jira/browse/CAMEL-19181
>             Project: Camel
>          Issue Type: Bug
>    Affects Versions: 3.20.2
>            Reporter: Federico Mariani
>            Assignee: Luigi De Masi
>            Priority: Major
>             Fix For: 3.20.4, 3.21.0, 4.0-M3, 4.0
>
>         Attachments: mapstruct-test.zip
>
>
> In a Camel Spring Boot application MapStruct component is not autoconfigured automatically, as you can see from the reproducer, even if application.properties contains _camel.component.mapstruct.mapper-package-name_ the component is not registered into the camel context, therefore the converter is not found and the following exception is raised:
> _NoTypeConversionAvailableException: No type converter available to convert from type: org.jboss.fuse.tnb.universal.component.mapstruct.Car to the required type: org.jboss.fuse.tnb.universal.component.mapstruct.CarDto_
> By uncommenting lines MyRouteBuilder:18 and MyRouteBuilder:19, the reproducer works, but I think that Camel Spring Boot should configure the component automatically.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)