[
https://issues.apache.org/jira/browse/CAMEL-7487?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14028795#comment-14028795
]
ASF GitHub Bot commented on CAMEL-7487:
---------------------------------------
Github user asfgit closed the pull request at:
https://github.com/apache/camel/pull/179
> Create an archetype and code generation plugins to generate Camel Components
> that wrap some 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)