hmm no. I delete the "annotatedWith(ToDot.class)". so I don't use
anotation,

My main class look like that :

        public static void main(String[] args) {
                Injector demoInjector = Guice.createInjector(new DemoModule());
                Injector clientInjector = Guice.createInjector(new 
ClientModule());
                ISimpleGraph demo = 
demoInjector.getInstance(ISimpleGraph.class);
                IClient client = clientInjector.getInstance(IClient.class);

                System.out.println("Drawing graph...");
                try {
                        client.executeService(demo, DrawGraphType.DOT, 
"demo.dot");
                        client.executeService(demo, DrawGraphType.TEXT, 
"demo.txt");
                } catch (IOException e) {
                        System.out.println("failed !!!");
                        System.out.println(e);
                        e.printStackTrace();
                }
                System.out.println("Done.");

        }

Jeremie

On 20 juil, 23:03, IvanoBulo <[email protected]> wrote:
> Because you've specified "annotatedWith(ToDot.class)". But when you
> getting instance through injector, as a key you are using an interface
> only.
>
> You may try:
>
> class Test {
> @Inject @ToDot
> IDrawGraphService drawDotService;
>
> public Test () {
>  Injector drawGraphInjector = Guice.createInjector(new DrawModule());
>  drawGraphInjector.injectMembers(this);
>
> drawDotService.draw(); ///or whatever
>
>  }
>
> }
>
> - Ivan
>
> On 19 Лип, 17:21, "Jerem's" <[email protected]> wrote:
>
>
>
> > Hello I try to use annotatoij on a local variable :
>
> > this is my module :
>
> > public class DrawModule extends AbstractModule {
>
> >         @Override
> >         protected void configure() {
>
> > this.bind(IDrawGraphService.class).annotatedWith(ToDot.class).to(DrawDotSer 
> > viceImpl.class);
> >         }
>
> > }
>
> > and my Annotation look like that :
>
> > @Retention(RUNTIME)
> > @Target({ LOCAL_VARIABLE, FIELD, PARAMETER })
> > @BindingAnnotation
> > public @interface ToDot {
>
> > }
>
> > and I try to do that :
>
> > Injector drawGraphInjector = Guice.createInjector(new DrawModule());
> > @ToDot
> > IDrawGraphService drawDotService =
> > drawGraphInjector.getInstance(IDrawGraphService.class);
>
> > But I have an exception :
>
> > Exception in thread "main" com.google.inject.ConfigurationException:
> > Guice configuration errors:
>
> > 1) No implementation for
> > fr.irisa.cairn.simpleGraph.drawGraph.service.IDrawGraphService was
> > bound.
> >   while locating
> > fr.irisa.cairn.simpleGraph.drawGraph.service.IDrawGraphService
>
> > 1 error
> >         at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:784)
> >         at com.google.inject.InjectorImpl.getProvider(InjectorImpl.java:743)
> >         at com.google.inject.InjectorImpl.getInstance(InjectorImpl.java:793)
> >         at
> > fr.irisa.cairn.test.simpleGraph.runTimeTest.Launch.Main.main(Main.java:
> > 25)
>
> > do you know why?
>
> > jérémie

-- 
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