I don't know, that's what it seems like (url on one single line):

http://www.google.be/codesearch/p?hl=fr#a9vGG9ncPig/src/share/classes/java/util/ServiceProvider.java



2009/5/10 Dan Godfrey <[email protected]>

>
> Are they changing it for Java7? I haven't read about using annotations
> with the ServiceLoader.
> http://java.sun.com/javase/6/docs/api/java/util/ServiceLoader.html
>
>
> On May 8, 12:07 pm, Olivier <[email protected]> wrote:
> >
> > About the ServiceProvider. Is it the annotation that "will" exist in
> > Java 7, with the base existing as java.util.ServiceLoader in Java 6?
> > This system is basicly what I want to have (and was about to
> > implement), but I didn't know about it until I researched after your
> > reply. (So, many thanks!)
> >
> > On 8 mai, 11:47, Dan Godfrey <[email protected]> wrote:
> >
> > > You'd still need to use the Multibinder to register more than one
> > > implementation of the same interface though or jump throw some hoops
> > > using eager singletons (see below).
> >
> > > We're doing something similar, but using the Service Provider
> > > interface rather than a properties file. This allows us to just drop a
> > > jar onto the classpath and any "plugins" defined in that jar are
> > > automatically added to the system at start-up. It means that the
> > > "core" system doesn't need any dependencies upon the plugins either.
> >
> > > * As we're not using Guice 2 yet, we actually bind the plugins as
> > > eager singletons using a different annotation for each, and have an
> > > @inject method on the plugin that it uses to register itself with a
> > > plugin registry.
> >
> > > On May 7, 6:57 pm, Eduardo Nunes <[email protected]> wrote:
> >
> > > > I'm using a different approach. I created a main module that reads a
> > > > modules.properties file with full path to each module that should be
> > > > installed. Each module implements an interface that provides a method
> > > > to create the guice module, something like this:
> >
> > > > interface Module {
> >
> > > >   google.Module createGuiceModule();
> >
> > > >   /* some other domain relevant methods */
> >
> > > > }
> >
> > > > In the configure method of the MainModule, I call install method for
> > > > each module that should be installed.
> >
> > > > It looks a little bit complex because my Module interface has more
> > > > things. I'm using warp-persist, so my Module interface has two other
> > > > methods related to it:
> > > > - Class<Serializable> getEntities();
> > > > - Class<Object> getAccessors();
> >
> > > > My framework will be opensource soon, the source code is not stable
> yet.
> >
> > > > Well, I hope that I helped you a little bit,
> >
> > > > 2009/5/7 Olivier Grégoire <[email protected]>:
> >
> > > > > Yes, you seem to be right. I'll have to think (and test) a bit more
> > > > > MultiBinding, especially in the case I would like the extension to
> be
> > > > > hotplugged and unplugged.
> >
> > > > > Thank you anyway!
> >
> > > > > Olivier
> >
> > > > > Daniel a écrit :
> > > > >> Use the MultiBinding functionality.
> >
> > > > >>
> http://publicobject.com/2008/05/guice-multibindings-extension-checked...
> >
> > > > >> On May 6, 4:21 pm, Olivier Grégoire <[email protected]> wrote:
> > > > >>> Dears,
> >
> > > > >>> Behind my title, I have to admit that I obviously know about the
> > > > >>> Injector.createChildInjector(Module...) method. However I was
> wondering
> > > > >>> essentially about modules that interact between them:
> >
> > > > >>> I hope my explanation will be clear enough:
> >
> > > > >>> Main module:
> > > > >>> + interface Plugin (no implementation)
> > > > >>> + Plugin manager
> > > > >>> + injector mainInjector created through Guice.createInjector()
> >
> > > > >>> Extension 1 module:
> > > > >>> + defines an implementation of Plugin
> > > > >>> + injector ext1Injector created through
> mainInjector.createChildInjector()
> >
> > > > >>> Extension 2 module (does not require any components of Extension
> 1):
> > > > >>> + defines an implementation of Plugin
> > > > >>> + injector ext2Injector created through
> mainInjector.createChildInjector()
> >
> > > > >>> Extension 3 module (requires components of Extension 1)
> > > > >>> + defines an implementation of Plugin (aouch : it already exists)
> > > > >>> + injector ext3Injector created through
> ext1Injector.createChildInjector()
> >
> > > > >>> The problem of extension 3 is that, since I create an injector
> with the
> > > > >>> extension 1 injector, I cannot provide a new implementation for
> my Plugin
> > > > >>> interface.
> >
> > > > >>> The file in attachment shows a basic implementation of the error
> I receive.
> >
> > > > >>> The problem can easily be worked around by creating another entry
> point in
> > > > >>> Extension 1 accessible to extension 3, but I don't find it
> efficient at all
> > > > >>> since the plugin-manager is handled at the main module level, and
> the main
> > > > >>> module shouldn't know the various entry points of extension 1.
> >
> > > > >>> I've immediately thought about Modules.override() but it only
> overrides
> > > > >>> Modules with Modules, not Injectors with Modules.
> >
> > > > >>> I can clearly see a problem here. However I don't know how to
> solve it with
> > > > >>> the current implementation of Guice. I also don't know how to
> handle a
> > > > >>> single module that needs two modules as prerequisites.
> >
> > > > >>> So, does anyone know how I can manage extensions that need
> components found
> > > > >>> in other extensions with Guice?
> >
> > > > >>> This is my first modular application, so if all this is based
> upon
> > > > >>> misunderstood basics about modular applications, please let me
> know why.
> >
> > > > >>> Thank you and best regards,
> >
> > > > >>> Olivier
> >
> > > > >>>  ModularityTest.java
> > > > >>> 2KViewDownload
> >
> > > > --
> > > > Eduardo S. Nuneshttp://e-nunes.com.br
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to