Robert Burrell Donkin ha scritto:
On Wed, Aug 13, 2008 at 12:37 PM, Stefano Bagnara <[EMAIL PROTECTED]> wrote:
Here is what yED automatically creates by reducing and creating an automatic
left to right "tight" directed dependencies tree for
http://people.apache.org/~bago/server/2008-08-12-server-trunk-modules-full-dependency-tree.gif
[...]
From this graph we can see that once we remove most cornerstone/excalibur
dependencies by using delegation in avalon-socket-library the only
cornerstone/excalibur dependencies will be the datasource related ones
(cornerstone-datasources-api, cornerstone-datasources-impl,
excalibur-datasource) and the store-api. ATM core-library,
management-library and avalon-socket-library have direct dependencies on
this jars. I'd like to confine them to functions as a short term goal.

care to expand?

The only library importing datasource stuff from main code (not tests) is:
BayesianAnalyzerManagement import org.apache.avalon.cornerstone.services.datasources.DataSourceSelector; This class, along with DomainListManagement, ProcessorManagement and SpoolManagement should be repackaged and moved to a function. (***) SpoolManagementTest now in core-function should move together with SpoolManagement. RemoteManagerTest now dependending on DomainListManagement can be easily refactored by using a Mock instead of the real implementation.

Cornerstone.store is used by the mailrepository.filepair package that is currently in core-library. This code could be moved to a function but we have core-function tests and avalon-user-function tests depending on this one. There are too many integration tests in our unit tests, and this make it difficult to move code around. Maybe it's been a mistake to move tests from phoenix-deployment to their own module when they was integration tests.

I don't like too much having non-phoenix specific tests in the phoenix-deployment, maybe we may simply introduce a basic-deployment module having no dependencies (no spring, no phoenix) and put there the integration tests. (opinion?)

If we do this then the filepair package can easily be moved to a function, too.

Once we confined cornerstone/excalibur to functions we have 2 roads to follow
1) remove also avalon-framework from libraries (not a big priority for me)
2) create alternative functions (having no cornerstone/excalibur dependency). Working on this we'll probably have to extract some code from the functions to libraries so to be able to reuse some of that code and there will probably be a bit of work in moving down "generic" code having no dependencies, but we will be able to approach each function as a separate task.

The protocol functions are probably the first functions to be interested by #2 and your proposal to extract the protocol code to libraries perfectly matches this roadmap.

***: the real fact is that we should move management apis/interfaces to a management-api module and the "impl" classes I'm talking about should be refactored to be cornerstone/excalibur free (most time they don't need it, it is only an hack to avoid the dependency injection way) and in a library. Maybe we can now move up to library/functions and then move down later. I don't have issues moving stuff up and down as long as we stay in a single product.

Stefano

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to