📄 resin-3.1.0.xtp
字号:
<document> <header> <product>resin</product> <title>Resin 3.1.0 Release Notes</title> </header><body><localtoc/><s1 title="Resin 3.1.x"><p>Resin 3.1.x is a development branch. New capabilities will be addedalong with bug fixes for future versions of the Resin 3.1.x branch.</p><p>Deployments which need a Resin version with only bug fixes shoulduse the Resin 3.0.x branch.</p></s1><s1 title="Servlet 2.5"><p>Resin 3.1 adds Servlet 2.5 support. The Servlet 2.5 specificationadds annotation-based injection to servlets, filters, and listeners.Servlets can now mark a field as a @Resource and Resin will assignthe configured database, bean, or service to the field, avoiding theneed for a JNDI lookup.</p><example title="Database configuration">package example;import javax.annotation.Resource;import javax.servlet.*;import javax.sql.*;public class MyServlet extends GenericServlet { @Resource(name="jdbc/mysql") private DataSource _database; public void service(ServletRequest req, ServletResponse res) { ... }}</example> </s1><s1 title="Amber capabilities"><p>With Resin 3.1, the JPA features have been reviewed.Amber now provides a near to complete and stable implementation of the JPA specification.</p><p>JPA queries are fully supported, including queries withparameters, named queries, and subqueries. The javax.persistence.Query API is also supported, including date/time (temporal) data types.</p><p>Embedded properties and optimistic-locking with version fields have been added to Amber in Resin 3.1.Also, inheritance combined with many-to-one, one-to-many, one-to-one, and many-to-many relationships have been reviewedand are now totally stable following the final releaseof the JPA specification.</p><p>Finally, an object relational mapping file (orm.xml) can nowbe merged together with annotations, when present. In other words, with Resin 3.1, the set of JPA features supportedby Amber is near to complete, i.e., only a few unusual featureswill be added to the next release.</p></s1><s1 title="watchdog/startup changes"><p>Resin 3.1 now uses a Java watchdog process to manage Resin instancesfor reliability. Like the older 3.0 wrapper.pl, it detects if the instancehas stopped and restarts it automatically.</p><p>Because the watchdog is now a Java process, the Resin start and stopcan now use a Java -jar command:</p><example title="starting server web-a">unix> java -jar $RESIN_HOME/lib/resin.jar -server a start</example><p>Also, because the Resin instance is started from Java itself, theJVM command-line arguments must now be specified in the resin.conf.</p><s2 title="JVM command-line arguments"><p>With Resin 3.1, JVM command-line arguments are specified in theresin.conf. The watchdog JVM will read the resin.conf, select theproper <<a href="doc|server-tags.xtp#server">server</a>>, andapply the server's arguments. As usual, the<<a href="doc|server-tags.xtp#server-default">server-default</a>>tag can provide common defaults.</p><example title="setting -Xmx and -Xss"><resin xmlns="http://caucho.com/ns/resin"> <cluster id="app-tier"> <server-default> <jvm-args>-Xmx1024m</jvm-args> <jvm-args>-Xss1m</jvm-args> <jvm-args>-verbosegc</jvm-args> <http port="8080"/> </server-default> <server id="app-a" address="192.168.2.1" port="6800"/> <server id="app-b" address="192.168.2.2" port="6800"/> ... </cluster></resin></example></s2></s1><s1 title="resin.conf changes to cluster and server"><p>Resin 3.1 has swapped the order of the <cluster> and <server>configuration tags to make the resin.conf more powerful and understandable.(The old Resin 3.0 syntax is still allowed for backwards compatibility.)In addition, the new configuration matches the JMX MXBeans more cleanly.With Resin 3.1, all servers in a load-balancing configuration can be defined ina single resin.conf.</p><p>A <server> configures a Resin JVM instance. It defines the<http> and cluster ports to listen to, JVM arguments, thread limits,keepalives and timeouts. In other words <server> configures JVMinstance information which changes from instance to instance.</p><p>See <<a href="../doc/server-tags.xtp">server</a>> tagfor the new server tags.</p><p>The <cluster> is a collection of servers serving identical content.So the <cluster> contains a set of <server> tags, plusthe <<a href="doc|host-tags.xtp#host">host</a>>,<<a href="doc|env-tags.xtp">resource</a>>, andthe <<a href="doc|webapp-tags.xtp">web-app</a>> configurationcommon to all servers.</p><p><<a href="doc|cluster-tags.xtp">cluster</a>> tagfor the new cluster tags.</p><p>The following example shows a basic load-balancing configuration inResin 3.0 with a set of web-tier servers load balancingto a larger set of app-tier servers. Since the web-tier includesa proxy <<a href="doc|cluster-tags.xtp#cache">cache</a>>configuration, the web-tier will serve static files withoutextra overhead.</p><example title="resin.conf"><resin xmlns="http://caucho.com/ns/resin"> <cluster id="web-tier"> <server-default> <user-name>resin</user-name> <http port="80"/> </server-default> <server id="web-a" address="192.168.2.10"> <server id="web-b" address="192.168.2.11"> <cache disk-size="1024m" memory-size="128m"/> <host id=""> <web-app id="/"> <rewrite-dispatch> <load-balance regexp="" cluster="app-tier"/> </rewrite-dispatch> </web-app> </host> </cluster> <cluster id="app-tier"> <root-directory>/var/www</root-directory> <server id="app-a" address="192.168.2.20"> <server id="app-b" address="192.168.2.21"> <server id="app-c" address="192.168.2.21"> <host-default> <web-app-deploy path="webapps"/> </host-default> <host-deploy path="hosts"/> </cluster></resin></example></s1><s1 title="Web services capabilities and configuration"><p>Documentation for the new web services capabilities isin the <a href="doc|soa.xtp">web services</a> section.</p><p>Resin has updated its configuration for web services likeHessian, and has extended the web service capabilities to includeSOAP and VM-local requests.</p><p>Applications can write to standard @WebService APIs, using JAXBannotations for marshalled XML (or marshalled Hessian), and exportthe services as Hessian, SOAP or Rest.</p><p>Configuration has been simplified:</p><example title="<web-service> configuration"><web-app xmlns="http://caucho.com/ns/resin"> <servlet-mapping url-pattern="/hello/*" servlet-class="example.HelloServiceImpl"> <!-- jndi registration for direct VM calls --> <jndi-name>service/HelloService</jndi-name> <!-- IoC-style configuration --> <init> <hello>hello, world</hello> </init> <!-- soap, hessian, burlap protocols --> <protocol type="hessian"> <api-class>example.HelloService</api-class> </protocol> </servlet-mapping></web-app></example><p>The client proxy can now be configured as well. Applicationscan now write to the client APIs without worrying about proxy generation.</p><example title="<web-service-client>"><web-app xmlns="http://caucho.com/ns/resin"><web-service-client jndi-name="hessian/HelloService"> <url>hessian:http://localhost:8080/hello-world/hello/</url> <interface>example.HelloService</interface></web-service-client></web-app></example></s1><s1 title="JAXB for Config IoC"><p>See <a href="../examples/jaxb-bean-config/index.xtp">JAXB BeanConfiguration tutorial</a></p></s1><s1 title="Quercus"><p>Quercus now supports the i18n and l10n features of PHP. This includesgettext, iconv, and multi-byte strings. In addition, Quercus has PHP6 Unicodesupport in anticipation of the upcoming release of PHP6.</p><p>Added Java serialization support for Quercus/PHP types. Hessian/Burlap willbe able to serialize/deserialize Quercus objects with no problem.</p><p>Revamped PHP-Java type marshaling.</p><s2 title="Applications Running on Quercus"><ol><li>DokuWiki 2006-11-06</li><li>Dragonfly CMS 9.0.6.1.7</li><li>Drupal 4.7.4</li><li>Gallery2</li><li>Joomla 1.0.11</li><li>Mambo</li><li>Mantis</li><li>MediaWiki</li><li>Phorum 5.1.16a</li><li>phpBB 2.0.21</li><li>phpMyAdmin 2.9.1.1</li><li>PHProjekt 5.2</li><li>PHP-Nuke</li><li>Wordpress 2.0.5</li><li>Xoops 2.0.16</li></ol></s2></s1><s1 title="Administration/JMX"><s2 title="ConnectionPoolMXBean"><p>Added <code>clear()</code> operation to clear idle connections inthe pool.</p></s2></s1></body></document>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -