Correct me if i'm wrong, but when you do this:

bind(EntityManagerImpl.class).in(TaskScoped.class);
bind(EntityLoader.class).to(EntityManagerImpl.class);
bind(ReferenceFactory.class).to(EntityManagerImpl.class);

You're asking guice to do 3 things:


   1. Bind EntityManagerImpl in TaskScoped
   2. Bind EntityLoader tp EntityManagerImpl
   3. Bind ReferenceFactory to EntityManagerImpl

When you do this:

bind(EntityLoader.class).to(EntityManagerImpl.class).in(TaskScoped.class);
bind(ReferenceFactory.class).to(EntityManagerImpl.class).in(TaskScoped.class);

You're asking for two things:

   1. Bind EntityLoader in TaskScoped, implemented by EntityManagerImpl
   2. Bind ReferenceFactory in TaskScoped, coincidently also implemented by
   EntityManagerImpl

In the second part, there's nothing telling Guice that EntityManagerImpl is
in TaskScope, only that EntityLoader and ReferenceFactory are. So the system
knows that for each Task you've got one EntityLoader and one
ReferenceFactory, it doesn't have a clue (or care) how mamy
EntityManagerImpls are required to achieve that. Everything following
bind(foo) applies to the binding for Foo, it doesn't "leak out" into
EntityManagerImpl If you want to bind EntityManagerImpl to another impl or
to a scope, you have to do it either with the annotations or a binding of
its own.

-Josh

On Mon, Sep 15, 2008 at 10:35 AM, Esko Luontola <[EMAIL PROTECTED]>wrote:

>
> I looked at the source, and actually all the to(...) methods delegate
> to the to(Key) method. Also the javadocs of to() say that it "binds to
> another binding".
> >
>


-- 
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

http://flex.joshmcdonald.info/

:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED]

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