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

Reply via email to