Over a million developers have joined DZone.

Caucho CanDI: Early Access Java Injection in Resin 4

DZone's Guide to

Caucho CanDI: Early Access Java Injection in Resin 4

Free Resource

The Caucho development team invites early adopters, technology watchers, and developers looking for new patterns to try CanDI, Caucho Technology's implementation of JSR-299 in the Resin 4.0.1 release. A growing list of Java Injection design patterns are emerging that will help even experienced developers solve old and new problems.  We have documented some of the patterns in a recent whitepaper and hope the community will contribute even more.

The JSR-299 standard and the CanDI implementation are gaining more and more attention with the advent of JavaEE 6. Open source projects using Java Injection as a foundation are already appearing (such as the Subetha mailing list manager), showing the power and simplicity of the standard.  Some of the features of Caucho's JSR-299 implementation include:

  • Java Injection using @Current and custom @BindingTypes
  • JSP and JSF expression language integration using @Named annotations
  • @Interceptor and @Decorator aspect programming
  • Integrated event system


Caucho's CanDI implementation integrates the standard throughout the Resin Application Server to create a unified framework for developers and administrators.  This unique feature allows developers to inject configured objects such as pooled data sources, JMS queues, distributed caches, and more, avoiding JNDI or factories.  CanDI is also integrated with the Pomegranate runtime dependency manager to control the visibility of classes outside of a library.

To learn about CanDI, more information is available:


Opinions expressed by DZone contributors are their own.


Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.


{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}