The Resin distribution for 3.0.9 has been refactored into two distributions:
- Resin Professional - Most companies and organizations will use Resin Professional. Includes performance, caching, and clustering capabilities.
- Resin Open Source (GPL) - Contains all functional components of Resin,
including EJB, but excludes performance and clustering capabilities.
The EJB implementation has been refactored to use a new underlying
persistence engine (Amber). It would be wise for current CMP/EJB users
to take extra care verifying Resin 3.0.9 before putting it into production.
See the EJB 3.0 tutorials for examples.
Resin 3.0.9 includes an implementation the EJB 3.0 early-draft spec features.
EJB 3.0 has a number of significant changes over EJB 2.1:
- Uses JDK 1.5 annotations (@Entity, @Column, etc.) instead of deployment descriptors.
- Home interfaces are no longer needed
- Entities are beans (i.e. not pooled objects as in EJB 2.1)
- Entities can use JDO-style field-enhancement instead of method enhancement
Resin 3.0.9 has an experimental support for annotation-based transactions.
The annotations use the EJB 3.0 markers. The enhancement is configured
as part of the <class-loader> configuration.
See the @ResinEnhanced transaction tutorial for an example.
The following code instructs Resin to enhance MyBean so a transaction
is always started when businessMethod is called. The
ResinEnhanced is required.
MyBean.java
package qa;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import com.caucho.java.enhancer.ResinEnhanced;
@ResinEnhanced
public class MyBean {
...
@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void businessMethod(String arg1)
throws FooException
{
...
}
}
|
The configuration adds the bytecode enhancer with
the transaction enhancer enabled.
web.xml
<web-xml xmlns="http://caucho.com/ns/resin">
<class-loader>
<enhancer resin:type="com.caucho.java.enhancer.ClassEnhancer">
<enhancer resin:type="com.caucho.transaction.enhancer.TransactionEnhancer"/>
</enhancer>
</class-loader>
..
</web-xml>
|
As an experimental feature, servlets can use JDK 1.5
Injection annotations.
Hessian and Burlap services can now pick up the protocol headers
using the ServiceContext.getHeader method.
package qa;
import com.caucho.services.server.GenericService;
import com.caucho.services.server.ServiceContext;
public class MyService extends GenericService {
public Object header() {
return ServiceContext.getContextHeader("a");
}
}
|
Allows the taglib schema validation to be turned off.
This should only be used in the case where a .tld file in a
third-party jar is invalid.
The Hessian servlet can now specify its SerializerFactory. You can use
this to avoid sending the collection type with Hessian.
web.xml
<servlet servlet-name="my-service" servlet-class="qa.MyService">
<init>
<serializer-factory>
<send-collection-type>false<send-collection-type>
</serializer-factory>
</init>
</servlet>
|
web.xml
<servlet servlet-name="my-service" servlet-class="qa.MyService">
<init>
<send-collection-type>false<send-collection-type>
</init>
</servlet>
|
The filter-mapping can now accept more sophisticated matches,
allowing filters to exclude URLs.
<filter-mapping filter-name="gzip">
<url-pattern>
<exclude-regexp>\.(pdf,mov)</exclude-regexp>
</url-pattern>
</filter-mapping>
|
JSSE now has an <alias> tag to select the alias from the keystore.
com.caucho.jsp.JspCompiler can now accept a -conf argument, which
points to a web-app configuration.
compile-app.xml
<web-app xmlns="http://caucho.com/ns/resin">
<document-directory>/opt/www/foo</document-directory>
<resin:import path="/opt/resin/conf/app-default.xml"/>
</web-app>
|
command line
unix> java com.caucho.jsp.JspCompiler -conf /opt/resin/compile-app.xml" test/foo.jsp
|
The preloaded tlds can now be configured with the <tld-file-set>
tag. By default all tlds in WEB-INF are loaded. In some cases where
the WEB-INF contains many files, this is inappropriate.
web-xml
<web-app xmlns="http://caucho.com/ns/resin">
<jsp>
<tld-file-set dir="WEB-INF">
<include name="tld/**/*.tld"/>
</tld-file-set>
</jsp>
</web-app>
|
Copyright © 1998-2005 Caucho Technology, Inc. All rights reserved.
Resin® is a registered trademark,
and HardCoretm and Quercustm are trademarks of Caucho Technology, Inc. | |
|