On Tue, May 19, 2009 at 12:59 AM, Raymond Feng <[email protected]> wrote:
> Hi,
>
> In Tuscany, we can declare service implementations using the
> META-INF/services/<SPI name> pattern. One of the use cases is to allow some
> of the implementations to be replaced to fit the hosting environment. If
> there are more than one services with the same name are available, we
> randomly pick the "first" one. This makes the "replacement" not
> straightforward.
>
> To fix this problem, I added the support for the "ranking" attribute (FYI,
> OSGi has the idea for services). The discovered system services will be
> sorted based on the ranking (if not present, default to 0). For example, we
> can use it to control which embedded HTTP server (Tomcat or Jetty) is used.
> The attribute can be potentially used to define the ordering of multiple
> extensions for the same extension point.
>
> Thanks,
> Raymond

I guess it would fix the random choice but a ranking approach doesn't
really make this any more flexible does it? The problem is that users
can't easily change the ranking - if we set the Jetty servlet host to
have a higher ranking than the tomcat one then how do users who want
to use Tomcat do that?

How about instead changing to use a config file where you can say
explicitly which extensions to use? That would fix this and some other
issues that we have with the current approach.

   ...ant

Reply via email to