Remove Design Tangles in componts file and impl
-----------------------------------------------
Key: CAMEL-262
URL: https://issues.apache.org/activemq/browse/CAMEL-262
Project: Apache Camel
Issue Type: Improvement
Components: camel-core
Reporter: Christian Schneider
Fix For: 1.3.0
Attachments: new-no tangle in impl Main cluster (30).png, patch.txt,
tangle in impl Main cluster (26).png
I have used structure101 on camel and found some design tangles that are quite
easy to resolve.
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.