camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ashwin Karpe (JIRA)" <j...@apache.org>
Subject [jira] Updated: (CAMEL-3285) Create a new blackbox component which can encapsulate routes using a specialized ProtocolBuilder endpoint (similar to RouteBuilder)
Date Mon, 20 Dec 2010 23:37:07 GMT

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

Ashwin Karpe updated CAMEL-3285:
--------------------------------

    Attachment: camel-routebox-20101220.zip
                routebox.diff

Hi All,

I have created the routebox component that facilitates encapsulation of routes in a context
and exposes the context as a single URI based endpoint called routebox. 

The Routebox component supports both consumer and producer endpoints. Producer endpoints are
capable of sending requests to a consumer endpoint or to directly invoke routes in a Producer
embedded context thereby not requiring a consumer.

For example a consumer endpoint could be created as
                from("routebox:multipleRoutes?innerRegistry=#registry&routeBuilders=#routes&dispatchMap=#map")
                    .to("log:Routes operation performed?showAll=true");

A producer endpoint could be created as
               from("direct:start")
                    .to("routebox:multipleRoutes?sendToConsumer=false&innerContext=#ctx&dispatchStrategy=#strategy")
                   
                    .to("log:Routes operation performed?showAll=true");

The sendToConsumer Query parameter specifies whether producer dispatches to an inner context
or an external Routebox consumer.

Internally the component supports SEDA and Direct protocol based communication.

When a request is sent to the routebox component a user provided RouteboxDispatchStrategy
or a HashMap containing Dispatch URI information is used to direct the data to inner routes
in a separate inner context. 

The inner context is fully under the control of the routebox component and is JVM bound. 

The inner routes may have consumers which can be any of the available camel supported consumer
endpoints (ActiveMQ, CXF... etc).

I welcome your comments, thoughts & suggestions. 

Cheers,

Ashwin...

P.S:  I have added requisite unit tests, performed checkstyle sourcecheck(s) and verified
everything to be in good working order. I will be committing this version shortly and look
forward to your thoughts, suggestions, updates and recommendations. I will apply any recommendations
to the trunk as enhancement requests.
   

> Create a new blackbox component which can encapsulate routes using a specialized ProtocolBuilder
endpoint (similar to RouteBuilder)
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-3285
>                 URL: https://issues.apache.org/jira/browse/CAMEL-3285
>             Project: Camel
>          Issue Type: New Feature
>            Reporter: Ashwin Karpe
>            Assignee: Ashwin Karpe
>         Attachments: camel-routebox-20101220.zip, routebox.diff
>
>
> Given below is the discussion forum thread that spawned this thought.
> http://camel.465427.n5.nabble.com/Abstracting-Routes-using-Components-td3234703.html#a3234703
> Component requirements:
>  Need a Camel component (called Backbox, maybe) that can nicely expose a ProtocolBuilder
endpoint that does the following
>     a> Instantiate route definitions/route(s) configured in Spring or DSL at startup
>     b> Launch a Producer or Consumer with a well known protocol(s) so that a client
can invoke it (could be direct or seda initially but could be any protocol... really) . Must
support multiple consumer endpoints and routes using a URI scheme.
>     c> redirect received payloads (with marshalling into an exchange if necessary)
to the inner route(s) since they are launched and started. If there are multiple inner routes
with many consumers, we could expect the user to provide a clue using the payload and/or an
exchange property as to how the payload should be routed.
>     d> Extend from a Default Consumer, Producer, Endpoint and Component.
>     e> Internally manage inner route lifecycles and operations. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message