[ 
https://issues.apache.org/jira/browse/CAMEL-18562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Otavio Rodolfo Piske reassigned CAMEL-18562:
--------------------------------------------

    Assignee: Otavio Rodolfo Piske

> Investigate creating core platforms
> -----------------------------------
>
>                 Key: CAMEL-18562
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18562
>             Project: Camel
>          Issue Type: Task
>            Reporter: Otavio Rodolfo Piske
>            Assignee: Otavio Rodolfo Piske
>            Priority: Major
>             Fix For: 4.0
>
>
> Multiple components have overlapping functionality and/or duplicated logic 
> that could possibly be consolidated into abstract platforms. These abstract 
> platforms would provide a reusable interface for components handling things 
> as:
>  * HTTP clients
>  * HTTP servers
>  ** WebSocket servers
>  * JMS clients
>  ** Messaging
>  * Servlet containers
>  * Socket-based I/O
>  * Web Services frameworks
>  
> *Concrete example:*
> For instance, the Telegram component:
>  * In Camel version 3.18x, it allowed the users to provide a custom 
> AsyncHttpClient through the `client` parameter.
>  * In Camel version 3.19.x and newer, the `client` parameter changed to use 
> the Java's own HTTP client (due to CAMEL-18506).
> With a core platform, instead of using a concrete client, it would use an 
> abstract HTTP platform that would provide the functionality required for the 
> component.
> Among other things, this would prevent situations such as the one we now have 
> with Whatsapp and Telegram components, where both implement their own HTTP 
> multi-part body handling logic on top of the Java's HTTP client.
>  
> *Benefits:*
>  * Reduce duplicated code
>  * Increase testability and test coverage
>  * Increase flexiblity by allowing users to implement their own pluggable 
> platforms if they wish
>  * Increase flexiblity for Camel to decouple from legacy platforms and 
> projects
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  
>  



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

Reply via email to