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.
