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

Otavio Rodolfo Piske updated CAMEL-18562:
-----------------------------------------
    Description: 
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

 

 

 

 

 

 

 

 

 

 

 

  was:
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.

 

 

 

 

 

 

 

 

 

 


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