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

Dhiraj Bokde updated CAMEL-7487:
--------------------------------

    Summary: Create an archetype and code generation plugins to generate Camel 
Components that wrap a third party API  (was: Create an archetype and code 
generation plugins to generate Camel Components that wrap some API)

> Create an archetype and code generation plugins to generate Camel Components 
> that wrap a third party API
> --------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-7487
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7487
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core, tooling
>    Affects Versions: 2.12.4
>            Reporter: Dhiraj Bokde
>            Assignee: Dhiraj Bokde
>             Fix For: 2.12.4
>
>
> The Facebook component took the approach of creating an API model for the 
> Facebook4J API and mapping its methods and parameters to its URI endpoint 
> using API independent code. This reduced the number of lines of code in the 
> component significantly while still being able to expose every operation in 
> the Facebook4J API.
> This approach can be made generic, so that an API model can be created for 
> any Java Class/Interface that needs to be wrapped by a Camel component. This 
> model can either be manually written in a signature file similar to the 
> output from the 'javap' command with a method per line with parameter names, 
> or automatically generated by parsing Javadoc. 
> The method and parameter names then can be mapped to the component's URI 
> paths and URI parameters/options. The component could use a map of API name 
> path prefixes to several APIs it supports/implements. 
> An API-component archetype could generate boilerplate code that uses the 
> code-generation plugins that can generate models. The component developer 
> then just has to populate with code for actually creating the API proxies. 
> Even integration tests can be generated (which use nulls for test values) for 
> producer endpoints for the component, and the developer just needs to 
> complete the skeleton test with actual values. The producer endpoint code can 
> be easily copied and modified to write consumer tests. 
> Components may want to customize consumer processing based on the consumer 
> capabilities or features of the wrapped API/technology, which can be easily 
> done by modifying the generated consumer code. 
> This micro-framework for generating Camel components that use API models, 
> will significantly reduce the amount of effort and time it takes to wrap any 
> API and expose it as a Camel component. The framework is also useful in 
> situations where an API is not readily available, but one can be written as a 
>  Java POJO or Interface and then wrapped as an API component. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to