Caucho Technology
  • resin 4.0
  • resin 4.0.0 release notes


    • Resin 10,000
    • Java Injection (JSR-299, CanDI)
    • Distributed Deployment
    • Distributed Caching
    • Dynamic Server Deployment
    • Clustered Session Refactor
    • Distributed JMX
    • Eclipse plugin
    • Maven Jar Project Repository
    • Rewrite redesign
    • FastCGI support
    • Security Redesign
    • Management services
    • JMS
    • BAM updates and refactoring
    • Win32 OpenSSL
    • Quercus: PHP on the JVM
    • PHP on Google Application Engine

    Resin 4.0.x

    Resin 4.0.x is now the development branch. Due to the addition of new features, it may be more unstable than the production branch.

    The 3.1.x branch is the stable branch.

    Resin 10,000

    Resin's concurrent connections has been tested up to 10,000 simultaneous keepalive connections. Since the CPU usage of that test was only 1.0, the actual upper limit would be even larger than 10k.

    Java Injection (JSR-299, CanDI)

    Resin's configuration and dependency injection is based on the JSR-299 (CanDI) draft specification. Applications can use Java Injection to create and configure custom components, including configuration of third party libraries.

    Distributed Deployment

    New .war versions can be deployed to a distributed cluster. All servers in the cluster will receive the new .war updates. Updates are incremental, with only changed files requiring new uploads. Plugins for distributed .war are available for eclipse, ant, and maven.

    Resin's distributed deployment uses the git file format for transactional reliability, and uses BAM/HMTP for distributed communication.

    Distributed Caching

    Clustered caching is now available using the JCache API, which is a java.util.Map extension. All servers in a cluster will receive updates for cache updates.

    The clustered caching uses BAM/HMTP to communicate cache updates.

    Dynamic Server Deployment

    Resin 4.0 now lets you add and remove servers dynamically. You'll add the new server in the /resin-admin or through JMX, and start the server normally.

    Clustered Session Refactor

    Distributed sessions now use the new distributed caching capabilities to share changes across all servers in the cluster.

    Distributed JMX

    The internal, distributed JMX implementation now uses BAM/HMTP to communicate JMX attributes and actions.

    Eclipse Plugin

    The eclipse plugin has been rewritten to include remote distribution of .war files, and improve remote control of Resin instances..

    Maven Project jar Repository

    Project and library jar files may now be placed in a project-jars directory, and selected using a WEB-INF/pom.xml in Maven project syntax. Resin will resolve the jars in the project-jars directory based on the pom.xml, selecting appropriate versions, and avoiding duplicate jar deployment.

    rewrite redesign

    Resin's rewrite rules have been improved to allow easier customization and configuration based on CanDI style configuration.

    <web-app xmlns="http://caucho.com/ns/resin">
      xmlns:resin="urn:java:com.caucho.resin">
    
      <resin:FastCgiProxy regexp="^/fcgi" address="localhost:9000"/>
      <resin:HttpProxy regexp="^/http" address="localhost:8080"/>
      
      <resin:Dispatch regexp="(\.php|\.js|\.gif|\.png)$"/>
      <resin:Dispatch regexp="^" target="/index.php"/>
      
    </web-app>
    

    fastcgi support

    Resin now supports fast cgi as a front-end protocol, allowing it to be used with servers like nginx and IIS fastcgi support.

    Example: resin.xml
    <resin xmlns="http://caucho.com/ns/resin"
        xmlns:resin="urn:java:com.caucho.resin">
    
        <cluster id="">
          <server id="">
            <resin:FastCgiPort port="9000"/>
    	...
          </server>
    
          ...
        </cluster>
    	
    </resin>
    

    security redesign

    Resin's security rules have been improved to allow easier customization and configuration based on CanDI style configuration.

    Example: resin-web.xml
    <web-app xmlns="http://caucho.com/ns/resin">
      xmlns:resin="urn:java:com.caucho.resin">
    
      <resin:XmlAuthenticator>
        <user name="harry" password="..."/>
      </resin:XmlAuthenticator>
    
      <resin:BasicLogin/>
    
      <resin:Allow url-pattern="/secure/*">
        <resin:IfUserInRole role="user"/>
      </resin:Allow>
      
    </web-app>
    

    Services

    Resin's management services have been reconfigured to use CanDI style configuration.

    Example: resin.xml
    <resin xmlns="http://caucho.com/ns/resin"
      xmlns:resin="urn:java:com.caucho.resin">
    
      <cluster id="app">
        <resin:DeployService/>
        <resin:JmxService/>
        <resin:LogService/>
        <resin:StatService/>
        <resin:XaLogService/>
        ...
      </cluster>
    
    </resin>
    

    JMS

    JMS configuration now uses CanDI style configuration.

    Example: resin-web.xml
    <web-app xmlns="http://caucho.com/ns/resin"
      xmlns:resin="urn:java:com.caucho.resin">
    
      <resin:JmsConnectionFactory/>
      <resin:MemoryQueue name="test"/>
    
    </web-app>
    

    BAM updates and refactoring

    Resin now uses BAM/HMTP for all internal messaging, including the distributed caching, dynamic servers, and distributed deployment.

    Win32 OpenSSL

    Win32 openssl version is compiled against Shining Light's 0.9.8k

    Win64 openssl version is compiled against Shining Lights 0.9.8k

    Quercus: PHP on the JVM

    Quercus continues to improve, with significant performance improvements and many compatibility bug fixes.

    PHP on Google Application Engine

    An GoogleQuercusServlet has been created to support Quercus on the Google Application Engine.


    Copyright © 1998-2011 Caucho Technology, Inc. All rights reserved.
    Resin ® is a registered trademark, and Quercustm, Ambertm, and Hessiantm are trademarks of Caucho Technology.