On 2/26/07, Bob Lee <[EMAIL PROTECTED]> wrote:
On 2/26/07, Konstantin Priblouda <[EMAIL PROTECTED]> wrote:
>
> Hi Bob,
> I'd like to say that I'm codeveloper of
> pico/nanocontainer.


I've used Pico and Nano. Nano uses my AOP framework. You should try Guice.

> What's important is that you don't depend on the
> > implementation. Depending
> > on the interface and annotation is OK. Strings are a
> > pain.
>
> We do not depend on string keys to dientify components
> - key in container  is just object, and is
> needed only in case of ambiguity ( but it could be
> string as well )


Using these key objects is more verbose than using annotations with Guice.


> Basically I just register this session component -
> and my HibernateUserManager receives it in
> constructor.
>
> Why do I need an annotation to achieve this?


The annotation indicates which constructor you want injected (to the
framework as well as other programmers). What happens if you forget to
configure a PasswordHasher in Pico? No hashing? That's not very secure.

If you can't annotate a constructor (because you don't control the code),
you can use a custom provider. For example:

class HibernateUserManagerProvider implements Provider<HibernateUserManager>
{
  @Inject Session session;
  @Inject PasswordHasher passwordHasher;
  public HibernateUserManager get() {
    return new HibernateUserManager(session, passwordHasher);
  }
}

Well, there is still a question why it is better than
> pico ;)


Write less code, and get better up front checking and better performance.
What more do you want?

Bob


Bob it sounds cool, but without documentation I would say that there
are not many chances people will look into it. I will wait for the
moment the documentation becomes available.

./alex
--
.w( the_mindstorm )p.

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

Reply via email to