Synchronizing James and Cornerstone

Stephen McConnell <[email protected]> Sat, 11 Jan 2003 06:06:27 +0100
Newsgroups gmane.comp.jakarta.avalon.apps.devel,gmane.comp.jakarta.avalon.devel,gmane.comp.jakarta.james.devel
Message-ID <[email protected]>

Noel J. Bergman wrote:

>>the transition from Composable to Serviceable is not too difficult
>>is just a matter of some specific replacements and a some
>>validatition - the more relavant question is when?
>>    
>>
>
>Well, that's why I asked.  What exactly do we need to do?  We may not do it
>for James v2, but I'd like James v3 (HEAD) to be able to float against
>Avalon.
>

On timming I would very much like to see synchronization as early as 
possible.  I'm currently running into lot of problems with James that 
are related to the Cornerstone version in james/lib.  The problem 
appears to be that the James version is still linked to BlockContext 
whereas the Avalon version is not (following recent Cornerstone changes).

Some of the problems I'm encountering when attempting to build James 
against Avalon Cornerstone include:

  - Classes in James that extend Cornerstone and call super
    on ComponentManager (which is broken because the Cornerstone
    classes no longer implement ComponentManager.

  - Numerouse casting errors related to James casting of objects
    to Component which do not exist in the current Cornerstone
    package.

  - Some more tricky errors related to the passing of component
    managers and component across different instances which don't
    show up until runtime.

Problems related to working with the current James version of 
Cornerstone include:

  - ClassCastExceptions when dealing with context (which is surely
    related to Pheonix BlockContext but I don't know where the code is
    backing the the James version of Cornerstone so I'm working in
    the dark.

Things would be *so* much easier if we got James and Cornerstone in sync.

In addition to synchronization I think there is some repackaging 
required on the Avalon side.  Currently the Cornerstone.jar contains a 
bunch of components that are not used by James (RMISubscriber, 
SocketStreamPublisher, RMIPublisher, DefaultAuthenticator, and Glue). 
 It would make a lot more sense for individual components in Cornerstone 
to be packaged in individual jars and treated as specific products (with 
respective releases, status, versions, etc.).

Cheers, Steve.

-- 

Stephen J. McConnell
mailto:[email protected]
http://www.osm.net