| ||||||||||
Resin 3.1 Documentation Examples Changes Release Notes Change Logs Resin 3.1.2 Resin 3.1.1 Resin 3.1.0 Archive Resin 3.0.20 Resin 3.0.19 Resin 3.0.18 Resin 3.0.17 Resin 3.0.16 Resin 3.0.15 Resin 3.0.14 Resin 3.0.13 Resin 3.0.12 Resin 3.0.11 Resin 3.0.10 Resin 3.0.9 Resin 3.0.8 Resin 3.0.7 Resin 3.0.6 Resin 3.0.5 Resin 3.0.4 Resin 3.0.3 Resin 3.0.2 Resin 3.0.1 Resin 3.0.0 |
Distribution/licensing changesThe Resin distribution for 3.0.9 has been refactored into two distributions:
EJB 2.1 refactoringThe 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. EJB 3.0 experimental featuresSee 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:
JDK 1.5 Transaction AnnotationsResin 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. The following code instructs Resin to enhance MyBean so a transaction
is always started when businessMethod is called. The
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 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> JDK 1.5 Injection AnnotationsAs an experimental feature, servlets can use JDK 1.5 Injection annotations. Hessian/Burlap server headersHessian and Burlap services can now pick up the protocol headers
using the 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"); } } validate-taglib-schemaAllows 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. Hessian/Burlap servlet optionsThe Hessian servlet can now specify its SerializerFactory. You can use this to avoid sending the collection type with Hessian. <servlet servlet-name="my-service" servlet-class="qa.MyService"> <init> <serializer-factory> <send-collection-type>false<send-collection-type> </serializer-factory> </init> </servlet> <servlet servlet-name="my-service" servlet-class="qa.MyService"> <init> <send-collection-type>false<send-collection-type> </init> </servlet> Filter url-pattern with include/excludeThe 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 has aliasJSSE now has an <alias> tag to select the alias from the keystore. JspCompilercom.caucho.jsp.JspCompiler can now accept a -conf argument, which points to a web-app configuration. <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> unix> java com.caucho.jsp.JspCompiler -conf /opt/resin/compile-app.xml" test/foo.jsp jsp tld-file-setThe 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-app xmlns="http://caucho.com/ns/resin"> <jsp> <tld-file-set dir="WEB-INF"> <include name="tld/**/*.tld"/> </tld-file-set> </jsp> </web-app>
|