[ 
https://issues.apache.org/activemq/browse/CAMEL-2169?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=55404#action_55404
 ] 

Sergey Beryozkin commented on CAMEL-2169:
-----------------------------------------

And this is what this JIRA proposes to eliminate.

Example. 

At the service mix side we have a servicemix-camel component. So we have 
already written a component number one.
Now, it's not enough actually, so we've also written a camel-jbi component.

So if if were to reuse the above route in Camel then I'd have to :
- write a Mule mule-camel (similarly to servicemix-camel)
- write a Camel-Mule component and then

For ServiceMix :

<camel:camelContext>
<camel:from uri="jbi:bar" />
<camel:to uri="log:test" />
</camel:route>
</camel:camelContext>

For Mule  :

<camel:camelContext>
<camel:from uri="mule:bar" />
<camel:to uri="log:test" />
</camel:route>
</camel:camelContext>

/etc

This is what I said in the very first comments : routes are unportable. I 
could've had a repository of Camel routes and reuse them from SMX/Mule/Whatever 
- but I won't be able to do it.

If this JIRA were implemented then ServiceMix Camel would just be enhanced a 
bit to create internal J BI endpoints from route ids. And for Mule and I'd do a 
mule-camel at the Mule side.

I appreciate that some routes may need to be specific and use from:. But many 
don't have to know about the upstream endpoints which may delegate to it. You 
could've made a camel-jbi eventually redundant.

And guess what, it's only an attribute like id that has to be added to 
routeDefinition for the above reusability and portability to become a reality 
at some later stage.  



> Support identifiers for Camel routes
> ------------------------------------
>
>                 Key: CAMEL-2169
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2169
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.2.0
>            Reporter: Sergey Beryozkin
>
> Camel routes embedded in camel contexts have no identifiers thus for a route 
> to kick in it has to start (in some cases at least) from a "from:" rule. 
> Example from a route working in SMX/JBI :
> <camel:camelContext>
>         <camel:route>
>            <camel:from 
> uri="jbi:endpoint:http://servicemix.apache.org/samples/wsdl-first/receiver/endpoint";
>  />
>              <camel:to 
> uri="jbi:endpoint:http://servicemix.apache.org/samples/wsdl-first/staticlistener/staticendpoint";
>  />
>           </camel:route>
> </camel:camelContext>
> The problem is that it makes a given route definition 'unportable' and 
> requires a Camel developer to know some cryptic details like the fully 
> qualified name of the internal JBI endpoint.
> If I could do something like
> <camel:camelContext>
>         <camel:route 
> id="{http://servicemix.apache.org/samples/wsdl-first/receiver}endpoint";>
>              <camel:to 
> uri="jbi:endpoint:http://servicemix.apache.org/samples/wsdl-first/staticlistener/staticendpoint";
>  />
>           </camel:route>
> </camel:camelContext>
> then I'd be able to delegate to it easily from some other JBI endpoint, using 
> targetService="person:endpoint"
> Likewise, camel routes could delegate to other routes :
> <camel:route 
> id="{http://servicemix.apache.org/samples/wsdl-first/receiver}endpoint";>
>              <camel:to 
> uri="route:http://servicemix.apache.org/samples/wsdl-first/staticlistener/staticendpoint";
>  />
> </camel:route>

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

Reply via email to