[
https://issues.apache.org/activemq/browse/CAMEL-262?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guillaume Nodet resolved CAMEL-262.
-----------------------------------
Resolution: Fixed
Sending camel-core/src/main/java/org/apache/camel/Endpoint.java
Sending
camel-core/src/main/java/org/apache/camel/component/file/FileConsumer.java
Sending
camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
Adding
camel-core/src/main/java/org/apache/camel/component/file/FileProcessStrategy.java
Deleting
camel-core/src/main/java/org/apache/camel/component/file/strategy/FileProcessStrategy.java
Adding
camel-core/src/main/java/org/apache/camel/component/file/strategy/FileProcessStrategyFactory.java
Sending
camel-core/src/main/java/org/apache/camel/component/file/strategy/FileProcessStrategySupport.java
Sending
camel-core/src/main/java/org/apache/camel/impl/DefaultComponent.java
Sending
camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
Sending
components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfSoapEndpoint.java
Sending pom.xml
Transmitting file data ..........
Committed revision 604966.
> 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
> 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, patch2.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 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.