team has always focused on delivering a lightweight, fast, reliable and easy-to-use application server. We are as proud of our lightweight heritage as we are of our small, independent and personal nature as an organization that treats engineering as a craft. We have also always respected the value in standardization, developer choice, multilateral collaboration and having competing but compatible products.
Before the Java EE 6 Web Profile, it was difficult to reconcile these concepts in Resin. The choices were really split between either creating a lightweight application server or aiming for full standards compliance. Resin has historically chosen the lightweight implementation route along the same lines as a plain Servlet container while still offering APIs like JPA and EJB 3 as well as features like a high performance JTA compatible transaction manager, database connection pooling, authentication providers, security, clustering and an administration console.
With CDI and the Web Profile, we feel confident that we can deliver a fully standards compliant version of Resin that is on the mark in terms of the features and usability necessary for Java EE to stand the test of time. We believe the Web Profile enables us to create a lightweight implementation fit for a new breed of Java EE application servers that are perhaps more compelling than any other server-side Java development option with a great development experience. Along with GlassFish and JBoss, we are aiming to provide one of the earliest solid implementations for Java EE 6. In fact, Resin is the only major application server focused solely on just the Web Profile.
Resin 4 is centered around our CDI, Servlet 3 and EJB 3.1 Lite implementations. In addition to Web Profile APIs like JSF 2, Servlet 3, CDI, EJB 3.1 Lite, JPA 2 and bean validation, we see value in adding support for scheduling, asynchronous processing, messaging, message driven beans and Hessian based remoting.
There are a number of extensions being developed that are centered on CanDI, our independent implementation of the CDI standard for next generation dependency injection that forms the basis for Resin itself. This includes integration with popular third-party APIs like Struts 2, Wicket, iBATIS, Quartz and many more. CanDI enables the use of EJB annotations like @TransactionAttribute, @Schedule, @Asynchronous, @RolesAllowed, @RunAs, @Lock, @Startup and @Remote outside EJBs. CanDI now also includes excellent out-of-container testing support for both JUnit and TestNG.
This blog entry discusses the Resin Java EE 6 Web Profile implementation in greater detail including more on the Web Profile, our relationship to Java EE (past, present and future), our perspectives on Servlet containers as well as specific implementation details and code examples: http://blog.caucho.com/?p=384
We look forward to your support, feedback and comments in driving these efforts as we work through the next few months of a promising new year for Resin.