avalon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stephen McConnell <mcconn...@apache.org>
Subject Re: [Proposal] Updating AMTAGS (was Re: [merlin] meta migration strategy)
Date Wed, 16 Jul 2003 13:53:56 GMT


Berin Loritsch wrote:

> Stephen McConnell wrote:
>
>>
>> Old style:
>> ----------
>>
>>   @avalon.meta.version 1.0
>>   @avalon.meta.name fred
>>   @avalon.meta.lifestyle singleton
>>
>> New style:
>> ----------
>>
>>   @avalon.type version="1.0" name="fred" lifestyle="singleton"
>
>
> Because this is in the avalon namespace, we need to officially adopt it.
> Currently there is already the @avalon.component tag that is a marker tag
> for components.  IMNSHO, it would be better to extend the 
> @avalon.component
> tag with these attributes.
>
> That way we have
>
> @avalon.component name="fred" version="1.0.0" lifestyle="singleton"
>
> While the lifestyle attribute has been criticized in the past, it 
> seems to
> be the best balance of usability and simplicity.
>
> So far, components for Phoenix and Fortress both use @avalon.component
> w hich leaves Merlin as divergent.  Would it be too terrible to to simply
> extend the already existing tag? 


I wanted to but there is a problem that you actually have to distinguish 
current @avalon.component usage "without attributues" from 
@avalon.component "with attributes".  I had the choice of either adding 
a lot of legacy handling code or defining a clean tag with hooks for 
legacy (and by legacy I mean existing @avalon.component no attribute form).

Second problem I encounter was that the "current" spec declares 
@avalon.component as the marker tag - which does not make sence when 
your declaring extended service information.  I.e. in the following 
example its the @avalon.service tag that is the marker.

  /**
   * My interface defining a service.
   * @avalon.service version 2.1
   */
   public interface MyService
   {
   }

The meta generation task and plugin as currently implemented basically 
looks for the following:

  @avalon.type <-------- result in the generation of a Type
  @avalon.service <----- (in an interface) results in the generation
                         of a Service
  @avalon.component <--- marks class as requiring legacy handling
                         and hooks in a special handler

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


Mime
View raw message