[ 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