You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Stephen McConnell <mc...@apache.org> on 2003/06/22 18:54:28 UTC

[merlin] news and updates

Over the last few weeks there have been a number of updates to the 
Merlin platform.  This email is a summary of those changes and updates.

1. addition of <lifestyle> element into type descriptor
2. replacement of the <engine> tag with the <classloader> tag
3. move to framework 4.1.5 dev with api/impl separation
4. removal of the LifestyleService interface and
   DefaultLifestyleService implementation
5. patches, bugfixes and documentation updates (credits to
   Kristian Meier, David Bernard, Aaron Farr, and Laurent
   Rieu, and others)

A summary of the updates is included below. Documentation on logging 
category management is still pending as is documentation on the James 
example.  The other item on my checklist is the resolution of the 
extension package in excalibur.

Summary of Updates
==================

1. addition of <lifestyle> element into type descriptor
------------------------------------------------------

Lifestyle semantics were originally declared using an attribute in the 
component type descriptor info block:

  <type>
    <info>
      <attributes>
        <attribute key="urn:avalon:lifestyle" value="thread"/>
      </attributes>
    </info>
  </type>

This has been replaced with an explicit lifestyle element:

  <type>
    <info>
      <lifestyle>thread</lifestyle>
    </info>
  </type>

The implementation remains backward compatible.  If a <lifestyle> tag is 
not declared, the implementation will attempt to use the old method of 
attribute based loookup.  Meta generation tools included with Merlin 
have been updated to automatically generate a <lifestyle> element.

2. replacement of the <engine> tag with the <classloader> tag
-------------------------------------------------------------

Following Leo's comments on this point, I've replaced the <engine> tag 
with <classloader>. The implementation remains backward compatible.  All 
documentation has been updated to reflect the change.

Example:

  <block>

    <implementation>

      <classloader>
        <classpath>
          <!-- your classpath content -->
        </classpath>
      </classloader>
  
      <!-- your component, container and include directives -->

    </implementation>
  </block>

3. move to framework 4.1.5 dev with api/impl seperation
-------------------------------------------------------

Getting a clean classloader hierarchy into Merlin has been problematic 
due to the requirement to include a logging implementation in the same 
classloader that contains the framework classes.  With the work on 
separating framework API from implementation the groundwork is set to 
get the overall classloading hierarchy within Merlin closer to the 
actual objective of real container/component separation.

See the following message for more info on the objective:
http://marc.theaimsgroup.com/?l=avalon-users&m=105545526304417&w=2

To achieve this required some tweaking with the jar files generated by 
the avalon 4.1.5 build (see 
http://marc.theaimsgroup.com/?l=avalon-dev&m=105608223804011&w=2 for 
details).  Merlin packages have been updated to use the following jar file:

  avalon-framework-api-4.1.5-dev.jar
  avalon-framework-impl-4.1.5-dev.jar

4. removal of the LifestyleService service
------------------------------------------

As part of the process of improvement and simplification of the 
internals of the assembly system, the lifestyle service has been 
removed. The corresponding functionality has been moved into the 
DefaultAppliance implementation.  This change has the potential to break 
custom appliance implementations.  If you have a custom appliance that 
extends DefaultAppliance, you should update the appliance .xinfo file 
and remove the context entry for the lifestyle service.

5. patches and bugfixes
-----------------------

Lots of patches, bugfixes, and doc updates have been applied - including:

  - singleton synchronization bugfix applied
  - a bug related to root classloader association as
    context classloader was closed
  - context creation for lifecycle extensions bug closed
  - pooled lifestyle handler establishment added
  - meta-info generation tools (class hierarchy scanning)
  - new meta-info test cases
  - addition meta data documentation added
  - spelling corrections applied
  - new examples added
 
Cheers, Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org
http://www.osm.net

Sent via James running under Merlin as an NT service.
http://avalon.apache.org/sandbox/merlin




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
For additional commands, e-mail: dev-help@avalon.apache.org