[
https://issues.apache.org/jira/browse/COLLECTIONS-483?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13770067#comment-13770067
]
Brahim Djoudi commented on COLLECTIONS-483:
-------------------------------------------
Hi Thomas,
Few replies:
- I shall provide very soon a detailed report that describes all performed
refactoring
- I mainly tried to only move units from packages where they were defined but I
also need to remove two static methods (in a utility class) that were redundant
with two others in order to eliminate a mutual dependency. These methods should
be deprecated before their removal. Another notable modification is the
deletion of the package trie.analyzer that contained a single class that
required to be placed in trie package instead. Finally, the package
org.apache.commons.collections4 contains only the overview.html file
- I have moved the classes CompositeMap and CompositeSet in the map package.
The CompositeSet class is only used by the CompositeMap class, that's why it
got sucked in. More naturally, this class may be placed in set package
- I moved the CompositeCollection class in the list package because it used the
class UnmodifiableList that I placed firstly in the list package. Many
couplings with UnmodifiableList require to move it in the collection package
but CompositeCollection has dependencies with the package iterators
(EmptyIterator, IteratorChain). Therefore, it may be moved in iterators but
unfortunately not in collection package (heavily used by iterators)
- No class has been removed. Even deprecated classes were kept somewhere. 269
top level classes before/after refactoring task
> Cyclic dependencies among several packages.
> -------------------------------------------
>
> Key: COLLECTIONS-483
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-483
> Project: Commons Collections
> Issue Type: Improvement
> Affects Versions: 4.0, 4.0-alpha1
> Reporter: Brahim Djoudi
> Priority: Minor
> Attachments: c4.png, c4-refactored.png, c4-src.zip
>
> Original Estimate: 4h
> Remaining Estimate: 4h
>
> Many packages have mutual dependency, directly or undirectly.
> These dependencies may be avoided just by moving some classes and interfaces
> within different packages.
> This refactoring breaks API compatibility but enhances the useability and the
> maintainability (hopefully) of the library. In addition, few issues in
> dynamic environments (like OSGi) less occur.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira