J Aaron Farr wrote:
--- Carsten Ziegeler <[EMAIL PROTECTED]> wrote:

Berin Loritsch wrote:

However, Fortress's ContextManager doesn't put a "*" in the
selector, all it

puts is:
      selector.put( "resource", resource );
Hmm.  that is a problem.  On two accounts:

In Fortress the default selection is "default".

It stems from no formal specs on what is the default.  We can easily
change what Fortress uses as the "default".


And the Avalon framework DefaultServiceSelector which is the
ServiceSelector

called above in the SourceResolverImpl code doesn't handle "*".
It literally

looks for a key "*" which doesn't exist.

Any suggestions?
Either update Fortress to use "*", or update SourceResolverImpl to use
"default".

The change mentioned above equalizes the source factory handling which means sources that wrap a URL are now handled in the same way as
sources that allow access to jar files, webdav etc. This is a long
wished feature which now finally got implemented.

Anyway, the source resolver needs to know what to do with a URI that
has a protocol where no source factory has registered for, for example
you don't want to register a factory for each protocol the jdk already
supports (ftp, http, https etc.)

Therefore the source resolver searches for a default factory; I thought
for this particular cases that "*" is a good choice, because a "real
name", like default could also be used for a protocol. So I choose
a name that is not a valid protocol name.
So I guess updating fortress is the way to go.


Carsten

So, if I'm following correctly, we'd need to change "default" to "*" in
AbstractContainer where the key/hint is set if no other value is given? (I
think it's lines 294, 444, 496). That's the only place where I can see what
Berin is referring to.

I'm not sure if this will completely solve the problem because as I'm following
the code, the m_manager ServiceManager variable in SourceResolverImpl only has
one entry in it at execution: the "resource" entry set in the ContextManager
as mentioned above. No other entries are present -- no "default" that I can
see. Is it not being set or will it be magically returned somehow?
I'm going to play with the code a bit but any illumination would be nice.
Check the addComponent() method in AbstractContainer.

I will do the conversion myself in a few minutes.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to