tapestry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Tapestry > Release Notes 5.3
Date Wed, 22 Jun 2011 20:33:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/12/_/styles/combined.css?spaceKey=TAPESTRY&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/TAPESTRY/Release+Notes+5.3">Release
Notes 5.3</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~hlship">Howard
M. Lewis Ship</a>
    </h4>
        <br/>
                         <h4>Changes (2)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >h2. Breaking Changes <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">Some
number of interfaces and APIs in Tapestry 5.3 will be removed in Tapestry 5.4 or later. These
include: <br>* The &quot;suppress redirects&quot; functionality, which allows
component event requests to respond directly with HTML, as in Tapestry 4 <br>* The RenderSupport
environmental (replaced with the JavaScriptSupport environmental) <br>* ClassFactory
service and ClassFab interface (replaced with the PlasticProxyFactory service and PlasticClass
interface) <br> <br></td></tr>
            <tr><td class="diff-unchanged" >Many classes and interfaces marked
as deprecated in prior releases of Tapestry have been removed. <br> <br></td></tr>
            <tr><td class="diff-added-lines" style="background-color: #dfd;">h2.
New Features <br> <br>h3. Rendering comments <br> <br>It is now possible
to have Tapestry emit rendering comments; these are comments (such as {{&lt;!\-\-BEGIN
Index:loop (context:Index.tml, line 15)\-\-&gt;}}) that can assist you in debugging markup
output on the client-side. This is enabled for all requests using the configuration symbol
{{tapestry.component-render-tracing-enabled}}, and can be added to any request by adding the
query parameter {{t:component-trace=true}} to the URL. This will significantly increase the
size of the rendered markup, but can be very helpful with complex layouts to determine which
component was responsible for which portion of the rendered page. <br> <br>h3.
Adaptable service contributions <br> <br>When making contributions to a service,
you are no longer restricted to contributing a value that is assignable to the type associated
with the configuration; objects of any type may be contributed, and the TypeCoercer service
is used to coerce the value to the configuration&#39;s type. <br> <br>h3.
Component debugging improvements <br> <br>Because of how Tapestry instruments
your pages and components, it has been difficult to debug Tapestry applications; any mutable
field shows its default value in the debugger, regardless of what has been written to the
field or read out of it. In Tapestry 5.3, when in _development mode_, Tapestry now shadows
values read from or written to such fields into the fields themselves (this has also been
fixed in the 5.2.5 maintenance release). This does not occur in production, to avoid potential
memory leaks. <br> <br>h3. Reloading disabled in production <br> <br>Tapestry
no longer checks for changes to Tapestry component class files, templates, or message catalogs
in production mode. It is assumed that Tapestry applications are packaged as WAR files in
production, and that changing the WAR file causes the servlet container to redeploy the entire
application. This change is to improve throughput and reduce memory consumption in production
applications. <br> <br>h3. String-to-Enum coercions <br> <br>The TypeCoercer
service now automatically generates String-to-Enum coercions without requiring a specific
contribution. This coercion is case insensitive. A contribution is still allowed, and will
take priority over the default coercion, but is only necessary to support &quot;aliases&quot;
for enum values outside those defined by the enum type itself. <br> <br>h3. JavaScript
and CSS minimization <br> <br>A new optional library, tapestry-yuicompressor,
has been added. This library adds support for compressing JavaScript libraries and CSS files
using [the YUICompressor library|http://developer.yahoo.com/yui/compressor/]  <br> <br>h3.
ComponentClassTransformWorker Service <br> <br>The type of this service has changed
from ComponentClassTransformWorker to ComponentClassTransformWorker2.  Contributions of type
ComponentClassTransformWorker will automatically be coerced to the new ComponentClassTransformWorker2
interface. However, if you use the @Contribute annotation to mark the method that makes contributions,
you will need to update the annotation to indicate the new service interface.  If you followed
the naming convention, and named your method {{contributeComponentClassTransformWorker()}},
you don&#39;t need to change anything. <br> <br>h3. Tapestry JavaDoc <br>
<br>Tapestry now includes a new library, tapestry-javadoc, that replaces the old Maven-based
component report.  Simply by placing a @tapestrydoc annotation into your component&#39;s
JavaDoc, Tapestry will generate complete documentation as part of JavaDoc ... no more switching
back and forth, and no more reliance on Maven for component documentation. <br> <br>h3.
Skinning / Theming Support <br> <br>Tapestry now adds the ability to skin and/or
theme your pages and components. Its an extension of how Tapestry manages pages per locale,
but adds new application-defined _axes_ along with rules to find the resources. <br>
<br>There&#39;s also a new Dynamic component, which uses an external template, not
a Tapestry template, which can be chosen at runtime. <br> <br>h3. Tree Component
<br> <br>Tapestry finally has a proper Tree component for navigating hierarchical
data. It&#39;s efficient and Ajax-enabled, and fully customizable. <br> <br>
<br></td></tr>
            <tr><td class="diff-unchanged" >h2. Release Notes: Tapestry 5.3.0
<br>{include:Release Notes 5.3.0} <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color:
#f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td
class='ScrollbarPrevIcon'><a href="/confluence/display/TAPESTRY/Release+Notes+5.2"><img
border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td
width='33%' class='ScrollbarPrevName'><a href="/confluence/display/TAPESTRY/Release+Notes+5.2">Release
Notes 5.2</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a
href="/confluence/display/TAPESTRY/Release+Notes"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif'
width='8' height='8'></a></sup><a href="/confluence/display/TAPESTRY/Release+Notes">Release
Notes</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>

<p>This is the consolidated list of changes between Tapestry versions 5.2 and 5.3. 
To upgrade from 5.1 to 5.2, most users will be able to just update the Maven dependency in
their POM file (or <a href="/confluence/display/TAPESTRY/Download" title="Download">download</a>
the new JAR file) and the new version will just work.  However, please read carefully below
before upgrading.</p>

<p><b>Contents</b></p>
<div>
<ul>
    <li><a href='#ReleaseNotes5.3-BreakingChanges'>Breaking Changes</a></li>
    <li><a href='#ReleaseNotes5.3-NewFeatures'>New Features</a></li>
    <li><a href='#ReleaseNotes5.3-ReleaseNotes%3ATapestry5.3.0'>Release Notes:
Tapestry 5.3.0</a></li>
</ul></div>

<h2><a name="ReleaseNotes5.3-BreakingChanges"></a>Breaking Changes</h2>

<p>Some number of interfaces and APIs in Tapestry 5.3 will be removed in Tapestry 5.4
or later. These include:</p>
<ul>
	<li>The "suppress redirects" functionality, which allows component event requests to
respond directly with HTML, as in Tapestry 4</li>
	<li>The RenderSupport environmental (replaced with the JavaScriptSupport environmental)</li>
	<li>ClassFactory service and ClassFab interface (replaced with the PlasticProxyFactory
service and PlasticClass interface)</li>
</ul>


<p>Many classes and interfaces marked as deprecated in prior releases of Tapestry have
been removed.</p>

<h2><a name="ReleaseNotes5.3-NewFeatures"></a>New Features</h2>

<h3><a name="ReleaseNotes5.3-Renderingcomments"></a>Rendering comments</h3>

<p>It is now possible to have Tapestry emit rendering comments; these are comments (such
as <tt>&lt;!&#45;&#45;BEGIN Index:loop (context:Index.tml, line 15)&#45;&#45;&gt;</tt>)
that can assist you in debugging markup output on the client-side. This is enabled for all
requests using the configuration symbol <tt>tapestry.component-render-tracing-enabled</tt>,
and can be added to any request by adding the query parameter <tt>t:component-trace=true</tt>
to the URL. This will significantly increase the size of the rendered markup, but can be very
helpful with complex layouts to determine which component was responsible for which portion
of the rendered page.</p>

<h3><a name="ReleaseNotes5.3-Adaptableservicecontributions"></a>Adaptable
service contributions</h3>

<p>When making contributions to a service, you are no longer restricted to contributing
a value that is assignable to the type associated with the configuration; objects of any type
may be contributed, and the TypeCoercer service is used to coerce the value to the configuration's
type.</p>

<h3><a name="ReleaseNotes5.3-Componentdebuggingimprovements"></a>Component
debugging improvements</h3>

<p>Because of how Tapestry instruments your pages and components, it has been difficult
to debug Tapestry applications; any mutable field shows its default value in the debugger,
regardless of what has been written to the field or read out of it. In Tapestry 5.3, when
in <em>development mode</em>, Tapestry now shadows values read from or written
to such fields into the fields themselves (this has also been fixed in the 5.2.5 maintenance
release). This does not occur in production, to avoid potential memory leaks.</p>

<h3><a name="ReleaseNotes5.3-Reloadingdisabledinproduction"></a>Reloading
disabled in production</h3>

<p>Tapestry no longer checks for changes to Tapestry component class files, templates,
or message catalogs in production mode. It is assumed that Tapestry applications are packaged
as WAR files in production, and that changing the WAR file causes the servlet container to
redeploy the entire application. This change is to improve throughput and reduce memory consumption
in production applications.</p>

<h3><a name="ReleaseNotes5.3-StringtoEnumcoercions"></a>String-to-Enum coercions</h3>

<p>The TypeCoercer service now automatically generates String-to-Enum coercions without
requiring a specific contribution. This coercion is case insensitive. A contribution is still
allowed, and will take priority over the default coercion, but is only necessary to support
"aliases" for enum values outside those defined by the enum type itself.</p>

<h3><a name="ReleaseNotes5.3-JavaScriptandCSSminimization"></a>JavaScript
and CSS minimization</h3>

<p>A new optional library, tapestry-yuicompressor, has been added. This library adds
support for compressing JavaScript libraries and CSS files using <a href="http://developer.yahoo.com/yui/compressor/"
class="external-link" rel="nofollow">the YUICompressor library</a> </p>

<h3><a name="ReleaseNotes5.3-ComponentClassTransformWorkerService"></a>ComponentClassTransformWorker
Service</h3>

<p>The type of this service has changed from ComponentClassTransformWorker to ComponentClassTransformWorker2.
 Contributions of type ComponentClassTransformWorker will automatically be coerced to the
new ComponentClassTransformWorker2 interface. However, if you use the @Contribute annotation
to mark the method that makes contributions, you will need to update the annotation to indicate
the new service interface.  If you followed the naming convention, and named your method <tt>contributeComponentClassTransformWorker()</tt>,
you don't need to change anything.</p>

<h3><a name="ReleaseNotes5.3-TapestryJavaDoc"></a>Tapestry JavaDoc</h3>

<p>Tapestry now includes a new library, tapestry-javadoc, that replaces the old Maven-based
component report.  Simply by placing a @tapestrydoc annotation into your component's JavaDoc,
Tapestry will generate complete documentation as part of JavaDoc ... no more switching back
and forth, and no more reliance on Maven for component documentation.</p>

<h3><a name="ReleaseNotes5.3-Skinning%2FThemingSupport"></a>Skinning / Theming
Support</h3>

<p>Tapestry now adds the ability to skin and/or theme your pages and components. Its
an extension of how Tapestry manages pages per locale, but adds new application-defined <em>axes</em>
along with rules to find the resources.</p>

<p>There's also a new Dynamic component, which uses an external template, not a Tapestry
template, which can be chosen at runtime.</p>

<h3><a name="ReleaseNotes5.3-TreeComponent"></a>Tree Component</h3>

<p>Tapestry finally has a proper Tree component for navigating hierarchical data. It's
efficient and Ajax-enabled, and fully customizable.</p>


<h2><a name="ReleaseNotes5.3-ReleaseNotes%3ATapestry5.3.0"></a>Release Notes:
Tapestry 5.3.0</h2>
<style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color:
#f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td
width='33%' class='ScrollbarPrevName'>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a
href="/confluence/display/TAPESTRY/Release+Notes+5.3"><img border='0' align='middle'
src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a
href="/confluence/display/TAPESTRY/Release+Notes+5.3">Release Notes 5.3</a></td><td
width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>

<h5><a name="ReleaseNotes5.3-Renderingcomments"></a>Rendering comments</h5>

<p>It is now possible to have Tapestry emit rendering comments; these are comments (such
as <tt>&lt;!&#45;&#45;BEGIN Index:loop (context:Index.tml, line 15)&#45;&#45;&gt;</tt>)
that can assist you in debugging markup output on the client-side. This is enabled for all
requests using the configuration symbol <tt>tapestry.component-render-tracing-enabled</tt>,
and can be added to any request by adding the query parameter <tt>t:component-trace=true</tt>
to the URL. This will significantly increase the size of the rendered markup, but can be very
helpful with complex layouts to determine which component was responsible for which portion
of the rendered page.</p>

<h5><a name="ReleaseNotes5.3-Adaptableservicecontributions"></a>Adaptable
service contributions</h5>

<p>When making contributions to a service, you are no longer restricted to contributing
a value that is assignable to the type associated with the configuration; objects of any type
may be contributed, and the TypeCoercer service is used to coerce the value to the configuration's
type.</p>

<h5><a name="ReleaseNotes5.3-Componentdebuggingimprovements"></a>Component
debugging improvements</h5>

<p>Because of how Tapestry instruments your pages and components, it has been difficult
to debug Tapestry applications; any mutable field shows its default value in the debugger,
regardless of what has been written to the field or read out of it. In Tapestry 5.3, when
in <em>development mode</em>, Tapestry now shadows values read from or written
to such fields into the fields themselves (this has also been fixed in the 5.2.5 maintenance
release). This does not occur in production, to avoid potential memory leaks.</p>

<h5><a name="ReleaseNotes5.3-Reloadingdisabledinproduction"></a>Reloading
disabled in production</h5>

<p>Tapestry no longer checks for changes to Tapestry component class files, templates,
or message catalogs in production mode. It is assumed that Tapestry applications are packaged
as WAR files in production, and that changing the WAR file causes the servlet container to
redeploy the entire application. This change is to improve throughput and reduce memory consumption
in production applications.</p>

<h5><a name="ReleaseNotes5.3-StringtoEnumcoercions"></a>String-to-Enum coercions</h5>

<p>The TypeCoercer service now automatically generates String-to-Enum coercions without
requiring a specific contribution. This coercion is case insensitive. A contribution is still
allowed, and will take priority over the default coercion, but is only necessary to support
"aliases" for enum values outside those defined by the enum type itself.</p>

<h5><a name="ReleaseNotes5.3-JavaScriptandCSSminimization"></a>JavaScript
and CSS minimization</h5>

<p>A new optional library, tapestry-yuicompressor, has been added. This library adds
support for compressing JavaScript libraries and CSS files using <a href="http://developer.yahoo.com/yui/compressor/"
class="external-link" rel="nofollow">the YUICompressor library</a> </p>

<h5><a name="ReleaseNotes5.3-ComponentClassTransformWorkerService"></a>ComponentClassTransformWorker
Service</h5>

<p>The type of this service has changed from ComponentClassTransformWorker to ComponentClassTransformWorker2.
 Contributions of type ComponentClassTransformWorker will automatically be coerced to the
new ComponentClassTransformWorker2 interface. However, if you use the @Contribute annotation
to mark the method that makes contributions, you will need to update the annotation to indicate
the new service interface.  If you followed the naming convention, and named your method <tt>contributeComponentClassTransformWorker()</tt>,
you don't need to change anything.</p>

<h5><a name="ReleaseNotes5.3-TapestryJavaDoc"></a>Tapestry JavaDoc</h5>

<p>Tapestry now includes a new library, tapestry-javadoc, that replaces the old Maven-based
component report.  Simply by placing a @tapestrydoc annotation into your component's JavaDoc,
Tapestry will generate complete documentation as part of JavaDoc ... no more switching back
and forth, and no more reliance on Maven for component documentation.</p>

<h5><a name="ReleaseNotes5.3-Skinning%2FThemingSupport"></a>Skinning / Theming
Support</h5>

<p>Tapestry now adds the ability to skin and/or theme your pages and components. Its
an extension of how Tapestry manages pages per locale, but adds new application-defined <em>axes</em>
along with rules to find the resources.</p>

<p>There's also a new Dynamic component, which uses an external template, not a Tapestry
template, which can be chosen at runtime.</p>

<h5><a name="ReleaseNotes5.3-TreeComponent"></a>Tree Component</h5>

<p>Tapestry finally has a proper Tree component for navigating hierarchical data. It's
efficient and Ajax-enabled, and fully customizable.</p>

<h5><a name="ReleaseNotes5.3-Deprecations"></a>Deprecations</h5>

<p>Some number of interfaces and APIs in Tapestry 5.3 will be removed in Tapestry 5.4
or later. These include:</p>
<ul>
	<li>The "suppress redirects" functionality, which allows component event requests to
respond directly with HTML, as in Tapestry 4</li>
	<li>The RenderSupport environmental (replaced with the JavaScriptSupport environmental)</li>
	<li>ClassFactory service and ClassFab interface (replaced with the PlasticProxyFactory
service and PlasticClass interface)</li>
</ul>



<style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color:
#f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td
width='33%' class='ScrollbarPrevName'>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a
href="/confluence/display/TAPESTRY/Release+Notes+5.3"><img border='0' align='middle'
src='/confluence/images/icons/up_16.gif' width='8' height='8'></a></sup><a
href="/confluence/display/TAPESTRY/Release+Notes+5.3">Release Notes 5.3</a></td><td
width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>

<style type='text/css'>/*<![CDATA[*/
table.ScrollbarTable  {border: none;padding: 3px;width: 100%;padding: 3px;margin: 0px;background-color:
#f0f0f0}
table.ScrollbarTable td.ScrollbarPrevIcon {text-align: center;width: 16px;border: none;}
table.ScrollbarTable td.ScrollbarPrevName {text-align: left;border: none;}
table.ScrollbarTable td.ScrollbarParent {text-align: center;border: none;}
table.ScrollbarTable td.ScrollbarNextName {text-align: right;border: none;}
table.ScrollbarTable td.ScrollbarNextIcon {text-align: center;width: 16px;border: none;}

/*]]>*/</style><div class="Scrollbar"><table class='ScrollbarTable'><tr><td
class='ScrollbarPrevIcon'><a href="/confluence/display/TAPESTRY/Release+Notes+5.2"><img
border='0' align='middle' src='/confluence/images/icons/back_16.gif' width='16' height='16'></a></td><td
width='33%' class='ScrollbarPrevName'><a href="/confluence/display/TAPESTRY/Release+Notes+5.2">Release
Notes 5.2</a>&nbsp;</td><td width='33%' class='ScrollbarParent'><sup><a
href="/confluence/display/TAPESTRY/Release+Notes"><img border='0' align='middle' src='/confluence/images/icons/up_16.gif'
width='8' height='8'></a></sup><a href="/confluence/display/TAPESTRY/Release+Notes">Release
Notes</a></td><td width='33%' class='ScrollbarNextName'>&nbsp;</td></tr></table></div>
    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/TAPESTRY/Release+Notes+5.3">View
Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=27361749&revisedVersion=2&originalVersion=1">View
Changes</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message