Hi All, I've begun the refactoring this morning, and I've just checked in my first change so that you can already provide some feedback.
This first step consist mostly in package renames / class moves. I've tried to make the new structure cleaner and easier to understand, but it still requires work on the classes themselves. The main idea of the new structure is there: org.apache.ivy.core --------------------------- core of ivy, used internally to provide the main features of Ivy This package contains a subpackage for each main feature of Ivy (settings, resolve, retrieve, deliver, publish, install, ...). It also contains subpackages for some core data: + core.module.id is used to group classes storing Module related identifiers + core.module.descriptor is used to group classes used to represent a Module Descriptor in memory (i.e. usually the result of the parsing of an ivy.xml file) + core.event is used for classes related to Ivy event mechanism org.apache.ivy.plugins ----------------------------- everything that is pluggable in Ivy can be found here. The rationale behind the isolation in a separate package is to help people who want to develop a plugin find the base classes and interfaces without too much trouble, and without being confused by Ivy internals found in core. Under this package, there is a subpackage for each kind of plugin. org.apache.ivy.ant ----------------------------- everything related to ant is located here, i.e. mainly ant tasks. Nothing has been moved in this package during the refactoring org.apache.ivy.util ----------------------------- Here you can find helper classes which are not directly related to Ivy, which could be isolated in separate projects or reused for other purpose. org.apache.ivy.tools ----------------------------- Here lies tools related to Ivy, but not really part of Ivy core itself. Maybe this should better be kept in a separate project, for the moment there is only an attempt to create an automatic Ivy file generator from jars, leveraging the jarjar utility. You get the idea, you can check how it looks like on the trunk, and send your feedback to let me know what you think about this first step. On my side I'll continue my work with Ivy class split. - Xavier
