camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guillaume Nodet (JIRA)" <>
Subject [jira] Commented: (CAMEL-262) Remove Design Tangles in componts file and impl
Date Mon, 17 Dec 2007 13:07:32 GMT


Guillaume Nodet commented on CAMEL-262:

The patch uses absolute paths for the files instead of relative paths which makes it quite
difficult to apply.
Did you use svn diff on your source folder to create it ?

> Remove Design Tangles in componts file and impl
> -----------------------------------------------
>                 Key: CAMEL-262
>                 URL:
>             Project: Apache Camel
>          Issue Type: Improvement
>          Components: camel-core
>            Reporter: Christian Schneider
>            Assignee: Guillaume Nodet
>             Fix For: 1.3.0
>         Attachments: new-no tangle in impl Main cluster (30).png, new-only one dependency
left in components file Main cluster (2).png, patch.txt, tangle in componts file Main cluster
(13).png, tangle in impl Main cluster (26).png
> I have used structure101 on camel and found some design tangles that are quite easy to
> The first is in impl. Defaultcomponent contains a special case to handle ScheduledPollEndpoint.
As they reference each other there is a dependency tangle. I have attached a screenshot from
struture101 with current and suggested status.
> This is the current code:
> if (endpoint instanceof ScheduledPollEndpoint) {
>                 ScheduledPollEndpoint scheduledPollEndpoint = (ScheduledPollEndpoint)endpoint;
>                 scheduledPollEndpoint.configureProperties(parameters);
> }
> My suggestion is to add configureProperties to Endpoint and DefaultEndpoint. So any endpoint
offers this useful method. The code is then simpler and the tangle is resolved:
> endpoint.configureProperties(parameters);
> The second tangle is in components file. The package file and strategy reference each
other heavily. I have attached screenshots of the tangle.
> This is because The strategies are configured directly in Endpoint (package file). My
suggestion is to create a factory inside the package strategy. So there is only on dependency
from file to strategy.  Another reason is that the FileProcessStrategy interface is in the
strategy package. I think this interface belongs to the package file.  Using these two changes
I managed to reduce the dependencies between strategy and file from 12/17 to 8/1. This makes
the code much easier to grasp as you can understand the packages separately.
> I have attached a patch and screenshots for both issues. 
> What do you think?

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

View raw message