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