Caucho Resin is Officially Certified Against the Java EE 6 Web Profile

| by Kostis Kapelonis Follow 0 Followers on Jun 08, 2011. Estimated reading time: 2 minutes |

Caucho Resin has recently been certified a compliant implementation of the EE 6 Web Profile, starting with version 4.0.17. The company had already revealed their intention to become certified, and the implementation details are now described in a free PDF whitepaper.

The general philosophy is to develop custom implementations for core APIs, while re-using already certified modules for the rest of the required technologies. So Resin has developed its own CDI implementation (called CanDI), which is at the core of the server. They also have their own custom Servlet 3.0 and EJB 3.1 Lite implementations. Other components (JSF2/Facelets, JPA and Bean Validation) are taken from Oracle's GlassFish reference implementation.

CanDI is an integral part of the server since it is used by Resin itself. Caucho was an active participant in the respective specification (JSR-299 Contexts and Dependency Injection) so it is no surprise that they offer their own implementation in the form of CanDI. This is the third implementation of JSR-299 after the one from Apache (OpenWebBeans) and the reference one (Weld) from RedHat's JBoss Division, on which Seam 3 is built.

Caucho has decided to add some additional features that are not part of the Web Profile to both CanDI and EJB Lite:

Note Profiles do not stop a vendor from adding APIs and features as they see fit. As we will discuss shortly, we have chosen to add a very small number of Java EE APIs and features on top of the Web Profile. Specifically, we see value in adding support for scheduling, asynchronous processing, messaging, message driven beans and Hessian based remoting.

Therefore CanDI provides some extra extensions such as @TransactionScoped/@ThreadScoped in addition to the standard @ApplicationScoped, @SessionScoped, @RequestScoped and @ConversationScoped. Explicit support is offered for Spring and Seam 3 web applications.

The implementation of EJB 3.1 Lite also comes with extra features apart from those required by the Web Profile. Resin includes support for EJB scheduling (@Schedule, @Timeout), asynchronous processing (@Asynchronous), message driven beans (@MessageDriven) and Hessian based remoting (@Remote). Hessian is a custom binary communication protocol (based on HTTP) focused on network performance, developed by Caucho as well.

Caucho will continue to support the EE 6 Web Profile since they can for the first time offer a lightweight Application Server that is also standards compliant. This was not possible in the previous versions of Java EE, Caucho have argued, since a lightweight server and full compliance often contradicted each other:

The choices were really split between either creating a lightweight Java application server or aiming for full standards compliance. Resin has historically chosen the lightweight implementation route along the same lines as Tomcat and Jetty.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you