<document>
  <header>
    <product>resin</product>
    <title>Resin 3.0.11 Release Notes</title>
  </header>

<body>

<summary objsummary='localtoc'/>

<section title="hessianProxy">

<p>HessianProxyFactory has a setOverloadEnable(enable) flag.  Overloading
is disabled by default.</p>

</section>

<section title="CGIServlet adds executable attribute">

<p>The CGI servlet has a new executable attribute to specify the
program to execute the CGI script with.</p>

<example>
&lt;servlet servlet-name="php-cgi"
         servlet-class="com.caucho.servlets.CGIServlet">
  &lt;init>
    &lt;executable>/usr/local/bin/php&lt;/executable>
  &lt;/init>
&lt;/servlet>
</example>

</section>

<section title="OpenSSL unclean-shutdown">

<p>Added unclean-shutdown flag to openssl configuration to handle issues
with broken browsers.</p>

</section>

<section title="&lt;user-name> on Linux">

<p>The new Linux threading model still does not properly implement
setuid for threaded programs.  So &lt;user-name> has been disabled
for Linux.  Linux uses should use iptables or an equivalent port mapper
to avoid the need for running as root to bind to port 80.</p>

</section>

<section title="ResinConfigServer current">

<p>A "current" value for ResinConfigServer uses gethostname for the
proper connection.</p>

</section>

<section title="rewrite">

<p>Added forbidden, not-found, and gone.</p>

</section>

<section title="DirectoryServlet enable">

<pre>
&lt;servlet servlet-name="directory"
         servlet-class="com.caucho.servlets.DirectoryServlet">
  &lt;init enable="false"/>
&lt;/servlet>
</pre>

</section>

<section title="expand-cleanup-filset">

<p>The expansion directives (web-app-deploy) now allow an
expand-cleanup-fileset to specify which files should be deleted on a
new .war deploy.</p>
<pre>
&lt;web-app-deploy path="webapps">
  &lt;expand-cleanup-fileset>
    &lt;exclude>WEB-INF/data/**&lt;/exclude>
  &lt;/expand-cleanup-fileset>
&lt;/web-app-deploy>
</pre>

</section>

<section title="resin:set has default attribute">

<p>resin:set can now have a default attribute.  For default, resin:set will
only set the variable if it has no other value.</p>

</section>

<section title="cmp-field auto-generate='false'">

<p>The CMP 2.1 cmp-field now has an optional auto-generate='false'
attribute to handle the situation where '0' is an allowed primary key value.
</p>

</section>

<section title="persistent-store timeout">

<p>Persistent store objects now respect the session timeout values.
The no longer have longer timeouts when passivated.  Previously,
the session timeout only applied to memory-based objects.</p>

</section>

<section title="expand-cleanup-fileset">

<p>Expansions (war, ear, host) can now specify which files, if any, should
be cleaned up on a fresh expansion.</p>

<example>
&lt;web-app-deploy path="webapps">
  &lt;expand-cleanup-fileset>
    &lt;exclude>WEB-INF/data/**&lt;/exclude>
  &lt;/expand-cleanup-fileset>
&lt;/web-app-deploy>
</example>

</section>

<section title="Acknowledgements">

<p>Special thanks to Nancy Deschenes and G Homicki
of <a href="http://www.spiders.com">Objective Consulting, Inc</a> for
identifying numerous fixes to the CGIServlet.</p>

</section>

</body>
</document>
