Hello,
is there an overview of the camel packages, their meaning and
composition? Is there an intended layering of the packages in the form
upper layers may access lower layers not vice a versa? I think such an
overview would be really helpful for new developers interested to get
involved in camel and also for the more advanced users.
I was trying to reverse engineer the layering of the packages by using
an architecture tool. But as there are currently many cycles in the
package dependencies
it is not possible to get a correct layering. I have already committed
some easy fixes that remove cycles were I was quite sure what the
intended layering was.
The remaining cycles are more complex. I would still like help to
resolve the cycles but need some help with it. With the help of an
intended architecture like mentioned above I could try to make some
suggestions.
To show the current state I will try to add some diagrams of the reverse
engineered structure to the mail. If this does not work I will upload
the pictures to my website and link to them.
I hope one of the core developers can help me with this.
Best regards
Christian
---
The first diagram is the dependency graph. It shows the packages in
camel-core and their current dependencies.
Whereever there are cycles on of the dependecy links is marked red. This
does not mean that exactly the red dependency is wrong but it means one
of the two directions should probably be avoided.
http://www.liquid-reality.de/camel/dependencies_first_level.png
The second diagram shows the layering the tool reverese engineered. Any
upper layer / package may access lower layers but not vice a versa. The
offending dependencies are shown as arrows. As in the diagram above this
layering is far from perfect as the tool can not know which layer should
be up when there are cycles. If one of the core developers can give me
the intended layering I could create a layering diagram that shows the
intended architecture and where dependencies do not follow this rule.
http://www.liquid-reality.de/camel/layering.png
--
Christian Schneider
---
http://www.liquid-reality.de