Caucho maker of Resin Server | Application Server (Java EE Certified) and Web Server


 

Resin Documentation

home company blog docs 
app server 
 Resin Server | Application Server (Java EE Certified) and Web Server
 

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-2015 Caucho Technology, Inc. All rights reserved. Resin ® is a registered trademark. Quercustm, and Hessiantm are trademarks of Caucho Technology.