Camel Dynamic Routes
Student: Xueqiang Mi <alloyer AT gmail DOT com>
Mentor: Jonathan Anstey <janstey AT apache DOT org>
Project Description
We can already modify XML at runtime; we could do with visualizations using Scala, Ruby, Groovy, Python so that folks can view & edit the routes in whatever language they want and hack them. For more see the Web Console which supports updating the routes at runtime using the XML structure.
To do this we'll need to be able to turn a RouteDefinition back into the DSLs - such as Groovy/Ruby/Scala/Python
Status
Week of May 11 - May 17, 2009
- Try most of the test cases of camel-core
Weeks of May 23 - June 7, 2009
- Learn the camel-web component and the RESTful WS tool: Jersey................finished
- Do a rough prototype which supports Groovy expression.............................finished
- A prototype is implemented and support creating routes by using Groovy language. We can use the face as follows to create a route on Camel.
- http://docs.google.com/View?id=df6drqqg_1391f4s9wmhf
- Now the Camel-web module depends on Camel-groovy module.
- Submit the late design document, expected previously................................finished
Week of June 8 - June 14, 2009
- Improve Groovy Route Editor
- Do Ruby route editing support...................................................................finished
- The editor form now support creating routes by using Ruby language. We can use the face as follows to create a route on Camel.
- http://docs.google.com/View?id=df6drqqg_1393gczgfzgp
- Now the Camel-web module depends on Camel-ruby module.
- Do some modification on Xml Route editor if needed...................................canceled
- Do the Groovy style view of route.(Now the editor can only support creating operation, but has no idea how to display a route in GroovyRouteBuilder style).........canceled
- Commit a camel-web-20090611 patch, which contains the Groovy and Ruby route editing support......finished
Week of June 15 - June 21, 2009
- http://issues.apache.org/activemq/browse/CAMEL-1389
- http://issues.apache.org/activemq/browse/CAMEL-1392
Week of June 22 - June 27, 2009
- http://issues.apache.org/activemq/browse/CAMEL-1392. It's a little complex to translate the RouteDefinition into GroovyRouteBuilder, so in this week I still work at it.
- http://docs.google.com/View?id=df6drqqg_1396cnhrwzmf
- http://docs.google.com/View?id=df6drqqg_1398w9jt74hf
- Now the groovyRenderer can support most of the EIP route definitions. It can generate a overview of the route definition, but can't support Expression. Current XML editor also has this problem, it just replace the expression definition with a <expressionDefinition/> element.
- I want to solve it through digging into the ExpressionNode and ExpressionDefinition level, but after a lot of work and test, I found it so difficult because in ExpressionDefinnition, some Groovy closures are embedded in and hard to restore to the original states. I will post some of my experiments on mailing list for discusses.
Week of June 28 - July 6, 2009
- Improve the groovyRenderer.
- Do plenty of test (test cases of org.apache.camel.processor in camel-core).
- http://docs.google.com/View?id=df6drqqg_1400hgqpt3cg test records: lines not with a prefixion "#" have been supported.
Week of July 7 - July 13, 2009
- Add test cases for groovy renderer.
- https://issues.apache.org/activemq/browse/CAMEL-1804
. A user guide for groovy renderer to show how to use, what DSL features are supported, and any know holes.
Week of July 14 - July 19, 2009
- Write the user guide of groovy renderer.
- Improve the code of groovy renderer, to reduce some hard code in it, especially for the Expression Definition processing.