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

<body>

<summary objsummary='localtoc'/>

<section title="Wiki">

<p>Resin now has a <a href="http://www.caucho.com/wiki">wiki</a>.</p>

</section>

<section title="Configuration functions">

<p>The configuration file EL can now support a library of
predefined functions.  The new functions are:</p>

<ul>
<li>class_exists(name) - returns true if the class is loadable
<li>jndi(name) - equivalent to jndi:lookup
<li>jndi_lookup(name) - equivalent to jndi
</ul>

</section>

<!-- feature reverted
<section title="Context.lookup">

<p>The JNDI lookup() method now throws a NameNotFoundException if the
name does not exist.</p>

</section>
-->

<section title="cookie-modulo-cluster">

<p>The cluster encoding in the session cookie is now controllable by
cookie-module-cluster, defaulting to false.</p>

<p>If true, session cookie values
can start with modulo values of the index.  So a two server cluster
could generate 'a', 'c', 'e', g', etc. for the index='1' server.</p>

<p>If false, the session cookie value matches the cluster index.
So the two server cluster would only generate the 'a' prefix.</p>

</section>

<section title="isapi_srun.dll">

<p>Important flusing/buffering issues with isapi_srun.dll fixed.</p>

</section>

<section title="GzipFilter">

<p>GzipFilter now understands "deflate" as well as "gzip".  "gzip" has
priority, currently.</p>

</section>

<section title="TaskResource">

<p>There is now a task resource for launching a thread for
long-running initialization objects.  The work task just needs
to implement java.lang.Runnable.</p>

<example>
&lt;resource type="com.caucho.resources.TaskResource">
  &lt;init>
    &lt;work resin:type="qa.TestWork"/>
  &lt;/init>
&lt;/resource>
</example>

</section>

<section title="__FILE__">

<p>The EL variable \${__FILE__} is now available, referring to the
current configuration file.</p>

</section>

<!-- feature reverted

<section title="stdout: and stderr:">

<p>The stdout: and stderr: VFS schemes now use the original values of
System.out and System.err.  They are no longer affected by the &lt;stdout> and &lt;stderr> items.</p>

</section>

-->

<section title="cache/enable-range">

<p>Added an enable-range attribute to the &lt;cache>, defaulting to true.
Makes it possible to disable the range support if necessary.</p>
</section>

<section title="ejb-server/read-data-source">

<p>Added read-data-source and xa-data-source to &lt;ejb-server>.
In some cases, deployments may use a different &lt;database> configuration
for read-only requests, e.g. a &lt;database> with multiple
load-balanced &lt;driver> blocks, but use a different &lt;database> for
the writes and transactions.
</p>

</section>

</body>
</document>
