Hi guys,

I'm the author of Trans4j (http://code.google.com/p/trans4j/), a
JavaBean Mapping framework (designed with simplicity in mind), and I'd
like to integrate it into Guice, it would fit very nicely with Guice's
philosophy. I've already managed to do the Spring integration and I'd
like to add the Guice integration as well.

Trans4j mappers are proxies handcrafted with cglib and I'd like to
wire them using Guice. I've managed injecting them into other Guice
components with Providers. I've managed injecting other dependencies
into Trans4j mappers using the MembersInjectors API inside a Provider
but I can't figure out how to inject mappers between them when they
have cycles, which is a very common scenario and must be supported.

Indeed, when injecting mappers between them in a Provder using the
MembersInjectors I get a Stack overflow when mappers have dependency
cycles.

Guice supports dependency cycles with Linked Bindings but doesn't seem
to support dependency cycles when using the Provider and
MembersInjector APIs.

Since, I couldn't manage to do the integration using providers, I
tried using the AOP Interceptor approach but I failed because Trans4j
mappers support a particular feature, dynamic polymorphic dispatch,
which requires rerouting the method invocation to another method of
the target object's class.

And Guice relies on AOP Alliance's Method Interceptor API which
doesn't support that use case (supports only changing the returned
value of the invocation). But it is supported by cglib, used by
Trans4j in standalone mode and by Guice under the cover.

Any suggestion would be great :)

Besides, if Guice doesn't currently support this scenario, I would be
glad to add the support myself if the Guice team is interested.

Regards,

Cédric Vidal

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