You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by Yannick Menager <ym...@fastmail.fm> on 2003/11/12 17:33:01 UTC

Merlin runtime plugins

I've been looking everywhere, and I'm confused how I can implements 
plugin components in merlin.

If I understand correctly:

- ServiceSelector is not supported by Merlin

- Dependencies are hardcoded using the @avalon.dependency tag

So how can I implement runtime plugin functionality in my app ?



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


Re: Merlin runtime plugins

Posted by Yannick Menager <ym...@fastmail.fm>.
Stephen McConnell wrote:

> Can you explain in more detail what you mean by a plugin.  There are 
> several access points in Merlin already and more comming - but an 
> outline of what you want to do will help.

Well, like implementing something like Idea's plugin framework for example.

> If you want to select something then presumably you have some selection 
> criteria in mind. A generic container such as Merlin does not know what 
> you intentions are nor anything about a selection criteria or candidate 
> ranking strategy.  What this means is that you need to supply this logic 
> though a service defintion and an implementation.

Well, the thing is, I want that the components can register themselves, 
so that I can give the user a list of options.

> 
> I.e. define your seelction service:
> 
>   public interface MySelectionService
>   {
>          Thing selectSomething( MyCriteria criteria );
>   }
> 
> The define you component that implements MySelectionService and includes 
> all of the selection semantics that are specific to the domain you are 
> concerned with.
> 
> Limitation: as you mentioned Merlin requires that you declare 
> dependencies for a component at the level of a type (i.e. dependencies 
> are static).  This means that if you want to slect against a merlin 
> establish service, then you need to declare dependencies on all of the 
> different potential types that you are going to select against.  This is 
> ok in scenarios such a keystor and you selecting between a personal 
> keystore for signing as opposed to a keystore for trusted keys (i.e. the 
> selection set is static).  If the selection set is dynamic then you need 
> to roll-your-own solution ... at least for the moment.  A similar 
> requirement exists in the Turbine Fulcrum project and its a subject I've 
> been working on - i.e. if you not in a desperate hurry then you get this 
> for free sometime soon.
> 
> Cheers, Steve.
> 

Yup.... that sounds like what i need lol ;) oh well.. I guess i'll 
hardcode for now ;)



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


Re: Merlin runtime plugins

Posted by Stephen McConnell <mc...@apache.org>.

Eric Pugh wrote:

>I wouldn't worry too much about xmlrpc..  I don't really know of anyone
>using it, and it is kinda ugly..  I would love an XMLRPC that worked well,
>but the rest of Fulcrum is more important.  Of course, I guess that is more
>on my plate then yours!
>
>Did you get a chance to review configuration?
>

Yep - the project.xml is missing a <build> defintion.  Just take 
something like the crypto project.xml, copy the <build> stuff over to 
the config project.xml and everything should work fine.  The key is to 
make sure that the block.xml gets copied over to the target/classes 
directory.

Stephen.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




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


RE: Merlin runtime plugins

Posted by Eric Pugh <ep...@upstate.com>.
Correct..  But, I want to get the rest integrated nicely into Turbine
first..

Eric

> -----Original Message-----
> From: Stephen McConnell [mailto:mcconnell@apache.org]
> Sent: Wednesday, November 12, 2003 7:17 PM
> To: Avalon Developers List
> Subject: Re: Merlin runtime plugins
>
>
>
>
> Eric Pugh wrote:
>
> >I wouldn't worry too much about xmlrpc..  I don't really
> know of anyone
> >using it, and it is kinda ugly..  I would love an XMLRPC
> that worked well,
> >but the rest of Fulcrum is more important.  Of course, I
> guess that is more
> >on my plate then yours!
> >
>
> This is good to know.  If we skip XMLRPC then the only
> remaining items are:
>
> * security
> * osworkflow
>
> You agree?
>
> Steve.
>
> --
>
> Stephen J. McConnell
> mailto:mcconnell@apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org


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


Re: Merlin runtime plugins

Posted by Stephen McConnell <mc...@apache.org>.

Eric Pugh wrote:

>I wouldn't worry too much about xmlrpc..  I don't really know of anyone
>using it, and it is kinda ugly..  I would love an XMLRPC that worked well,
>but the rest of Fulcrum is more important.  Of course, I guess that is more
>on my plate then yours!
>

This is good to know.  If we skip XMLRPC then the only remaining items are:

* security
* osworkflow

You agree?

Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




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


RE: Merlin runtime plugins

Posted by Eric Pugh <ep...@upstate.com>.
I wouldn't worry too much about xmlrpc..  I don't really know of anyone
using it, and it is kinda ugly..  I would love an XMLRPC that worked well,
but the rest of Fulcrum is more important.  Of course, I guess that is more
on my plate then yours!

Did you get a chance to review configuration?

Eric

> -----Original Message-----
> From: Stephen McConnell [mailto:mcconnell@apache.org]
> Sent: Wednesday, November 12, 2003 6:23 PM
> To: Avalon Developers List
> Subject: Re: Merlin runtime plugins
>
>
>
>
> Eric Pugh wrote:
>
> >Can you elaborate on what components in Fulcrum need this?
> Just as I am
> >going to probably stub my toe over this soon..  Is this
> where something like
> >Pool want's to load up a Factory component?
> >
>
> xmlrpc
>
> Its basically acting as a container - receives requests for the
> deployment of a compoennt based on its configuration and
> registeres the
> component with the XmlRPM implementation.
>
> Steve.
>
> >
> >ERic
> >
> >
> >
> >>-----Original Message-----
> >>From: Stephen McConnell [mailto:mcconnell@apache.org]
> >>Sent: Wednesday, November 12, 2003 6:01 PM
> >>To: Avalon Developers List
> >>Subject: Re: Merlin runtime plugins
> >>
> >>
> >>
> >>Hi Yannick:
> >>
> >>I have you message on the uyser list flagged for followup.
> >>
> >>See notes in-line.
> >>
> >>
> >>Yannick Menager wrote:
> >>
> >>
> >>
> >>>I've been looking everywhere, and I'm confused how I can implements
> >>>plugin components in merlin.
> >>>
> >>>
> >>Can you explain in more detail what you mean by a plugin.  There are
> >>several access points in Merlin already and more comming - but an
> >>outline of what you want to do will help.
> >>
> >>
> >>
> >>>If I understand correctly:
> >>>
> >>>- ServiceSelector is not supported by Merlin
> >>>
> >>>
> >>Correct - the framework spec on this subject is not sufficient.
> >>
> >>
> >>
> >>>- Dependencies are hardcoded using the @avalon.dependency tag
> >>>
> >>>So how can I implement runtime plugin functionality in my app ?
> >>>
> >>>
> >>If you want to select something then presumably you have some
> >>selection
> >>criteria in mind. A generic container such as Merlin does not
> >>know what
> >>you intentions are nor anything about a selection criteria or
> >>candidate
> >>ranking strategy.  What this means is that you need to supply
> >>this logic
> >>though a service defintion and an implementation.
> >>
> >>I.e. define your seelction service:
> >>
> >>   public interface MySelectionService
> >>   {
> >>          Thing selectSomething( MyCriteria criteria );
> >>   }
> >>
> >>The define you component that implements MySelectionService
> >>and includes
> >>all of the selection semantics that are specific to the
> >>domain you are
> >>concerned with.
> >>
> >>Limitation: as you mentioned Merlin requires that you declare
> >>dependencies for a component at the level of a type (i.e.
> >>dependencies
> >>are static).  This means that if you want to slect against a merlin
> >>establish service, then you need to declare dependencies on
> >>all of the
> >>different potential types that you are going to select
> >>against.  This is
> >>ok in scenarios such a keystor and you selecting between a personal
> >>keystore for signing as opposed to a keystore for trusted
> >>keys (i.e. the
> >>selection set is static).  If the selection set is dynamic
> >>then you need
> >>to roll-your-own solution ... at least for the moment.  A similar
> >>requirement exists in the Turbine Fulcrum project and its a
> >>subject I've
> >>been working on - i.e. if you not in a desperate hurry then
> >>you get this
> >>for free sometime soon.
> >>
> >>Cheers, Steve.
> >>
> >>--
> >>
> >>Stephen J. McConnell
> >>mailto:mcconnell@apache.org
> >>
> >>
> >>
> >>
> >>------------------------------------------------------------
> ---------
> >>To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> >>For additional commands, e-mail: dev-help@avalon.apache.org
> >>
> >>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> >For additional commands, e-mail: dev-help@avalon.apache.org
> >
> >
> >
> >
>
> --
>
> Stephen J. McConnell
> mailto:mcconnell@apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org


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


Re: Merlin runtime plugins

Posted by Stephen McConnell <mc...@apache.org>.

Eric Pugh wrote:

>Can you elaborate on what components in Fulcrum need this?  Just as I am
>going to probably stub my toe over this soon..  Is this where something like
>Pool want's to load up a Factory component?
>

xmlrpc

Its basically acting as a container - receives requests for the 
deployment of a compoennt based on its configuration and registeres the 
component with the XmlRPM implementation.

Steve.

>
>ERic
>
>  
>
>>-----Original Message-----
>>From: Stephen McConnell [mailto:mcconnell@apache.org]
>>Sent: Wednesday, November 12, 2003 6:01 PM
>>To: Avalon Developers List
>>Subject: Re: Merlin runtime plugins
>>
>>
>>
>>Hi Yannick:
>>
>>I have you message on the uyser list flagged for followup.
>>
>>See notes in-line.
>>
>>
>>Yannick Menager wrote:
>>
>>    
>>
>>>I've been looking everywhere, and I'm confused how I can implements
>>>plugin components in merlin.
>>>      
>>>
>>Can you explain in more detail what you mean by a plugin.  There are
>>several access points in Merlin already and more comming - but an
>>outline of what you want to do will help.
>>
>>    
>>
>>>If I understand correctly:
>>>
>>>- ServiceSelector is not supported by Merlin
>>>      
>>>
>>Correct - the framework spec on this subject is not sufficient.
>>
>>    
>>
>>>- Dependencies are hardcoded using the @avalon.dependency tag
>>>
>>>So how can I implement runtime plugin functionality in my app ?
>>>      
>>>
>>If you want to select something then presumably you have some
>>selection
>>criteria in mind. A generic container such as Merlin does not
>>know what
>>you intentions are nor anything about a selection criteria or
>>candidate
>>ranking strategy.  What this means is that you need to supply
>>this logic
>>though a service defintion and an implementation.
>>
>>I.e. define your seelction service:
>>
>>   public interface MySelectionService
>>   {
>>          Thing selectSomething( MyCriteria criteria );
>>   }
>>
>>The define you component that implements MySelectionService
>>and includes
>>all of the selection semantics that are specific to the
>>domain you are
>>concerned with.
>>
>>Limitation: as you mentioned Merlin requires that you declare
>>dependencies for a component at the level of a type (i.e.
>>dependencies
>>are static).  This means that if you want to slect against a merlin
>>establish service, then you need to declare dependencies on
>>all of the
>>different potential types that you are going to select
>>against.  This is
>>ok in scenarios such a keystor and you selecting between a personal
>>keystore for signing as opposed to a keystore for trusted
>>keys (i.e. the
>>selection set is static).  If the selection set is dynamic
>>then you need
>>to roll-your-own solution ... at least for the moment.  A similar
>>requirement exists in the Turbine Fulcrum project and its a
>>subject I've
>>been working on - i.e. if you not in a desperate hurry then
>>you get this
>>for free sometime soon.
>>
>>Cheers, Steve.
>>
>>--
>>
>>Stephen J. McConnell
>>mailto:mcconnell@apache.org
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
>>For additional commands, e-mail: dev-help@avalon.apache.org
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
>For additional commands, e-mail: dev-help@avalon.apache.org
>
>
>  
>

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




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


RE: Merlin runtime plugins

Posted by Eric Pugh <ep...@upstate.com>.
Can you elaborate on what components in Fulcrum need this?  Just as I am
going to probably stub my toe over this soon..  Is this where something like
Pool want's to load up a Factory component?

ERic

> -----Original Message-----
> From: Stephen McConnell [mailto:mcconnell@apache.org]
> Sent: Wednesday, November 12, 2003 6:01 PM
> To: Avalon Developers List
> Subject: Re: Merlin runtime plugins
>
>
>
> Hi Yannick:
>
> I have you message on the uyser list flagged for followup.
>
> See notes in-line.
>
>
> Yannick Menager wrote:
>
> > I've been looking everywhere, and I'm confused how I can implements
> > plugin components in merlin.
>
>
> Can you explain in more detail what you mean by a plugin.  There are
> several access points in Merlin already and more comming - but an
> outline of what you want to do will help.
>
> >
> >
> > If I understand correctly:
> >
> > - ServiceSelector is not supported by Merlin
>
>
> Correct - the framework spec on this subject is not sufficient.
>
> >
> > - Dependencies are hardcoded using the @avalon.dependency tag
> >
> > So how can I implement runtime plugin functionality in my app ?
>
>
> If you want to select something then presumably you have some
> selection
> criteria in mind. A generic container such as Merlin does not
> know what
> you intentions are nor anything about a selection criteria or
> candidate
> ranking strategy.  What this means is that you need to supply
> this logic
> though a service defintion and an implementation.
>
> I.e. define your seelction service:
>
>    public interface MySelectionService
>    {
>           Thing selectSomething( MyCriteria criteria );
>    }
>
> The define you component that implements MySelectionService
> and includes
> all of the selection semantics that are specific to the
> domain you are
> concerned with.
>
> Limitation: as you mentioned Merlin requires that you declare
> dependencies for a component at the level of a type (i.e.
> dependencies
> are static).  This means that if you want to slect against a merlin
> establish service, then you need to declare dependencies on
> all of the
> different potential types that you are going to select
> against.  This is
> ok in scenarios such a keystor and you selecting between a personal
> keystore for signing as opposed to a keystore for trusted
> keys (i.e. the
> selection set is static).  If the selection set is dynamic
> then you need
> to roll-your-own solution ... at least for the moment.  A similar
> requirement exists in the Turbine Fulcrum project and its a
> subject I've
> been working on - i.e. if you not in a desperate hurry then
> you get this
> for free sometime soon.
>
> Cheers, Steve.
>
> --
>
> Stephen J. McConnell
> mailto:mcconnell@apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@avalon.apache.org
> For additional commands, e-mail: dev-help@avalon.apache.org


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


Re: Merlin runtime plugins

Posted by Stephen McConnell <mc...@apache.org>.
Hi Yannick:

I have you message on the uyser list flagged for followup.

See notes in-line.


Yannick Menager wrote:

> I've been looking everywhere, and I'm confused how I can implements 
> plugin components in merlin. 


Can you explain in more detail what you mean by a plugin.  There are 
several access points in Merlin already and more comming - but an 
outline of what you want to do will help.

>
>
> If I understand correctly:
>
> - ServiceSelector is not supported by Merlin 


Correct - the framework spec on this subject is not sufficient.

>
> - Dependencies are hardcoded using the @avalon.dependency tag
>
> So how can I implement runtime plugin functionality in my app ? 


If you want to select something then presumably you have some selection 
criteria in mind. A generic container such as Merlin does not know what 
you intentions are nor anything about a selection criteria or candidate 
ranking strategy.  What this means is that you need to supply this logic 
though a service defintion and an implementation.

I.e. define your seelction service:

   public interface MySelectionService
   {
          Thing selectSomething( MyCriteria criteria );
   }

The define you component that implements MySelectionService and includes 
all of the selection semantics that are specific to the domain you are 
concerned with.

Limitation: as you mentioned Merlin requires that you declare 
dependencies for a component at the level of a type (i.e. dependencies 
are static).  This means that if you want to slect against a merlin 
establish service, then you need to declare dependencies on all of the 
different potential types that you are going to select against.  This is 
ok in scenarios such a keystor and you selecting between a personal 
keystore for signing as opposed to a keystore for trusted keys (i.e. the 
selection set is static).  If the selection set is dynamic then you need 
to roll-your-own solution ... at least for the moment.  A similar 
requirement exists in the Turbine Fulcrum project and its a subject I've 
been working on - i.e. if you not in a desperate hurry then you get this 
for free sometime soon.

Cheers, Steve.

-- 

Stephen J. McConnell
mailto:mcconnell@apache.org




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