You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2007/06/24 15:48:46 UTC
svn commit: r550229 [3/3] - in /tapestry/tapestry4/trunk: src/main/assembly/
src/site/resources/jsdoc/files/ src/site/resources/jsdoc/index/
src/site/resources/jsdoc/javascript/ src/site/resources/jsdoc/search/
src/site/xdoc/ tapestry-framework/src/jav...
Modified: tapestry/tapestry4/trunk/src/site/xdoc/release-notes.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/release-notes.xml?view=diff&rev=550229&r1=550228&r2=550229
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/release-notes.xml (original)
+++ tapestry/tapestry4/trunk/src/site/xdoc/release-notes.xml Sun Jun 24 06:48:45 2007
@@ -10,6 +10,369 @@
<section name="Tapestry 4 Releases">
+ <subsection name="Release Notes - Tapestry - Version 4.1.2">
+ <h2> Sub-task
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1231'>TAPESTRY-1231</a>] - org.apache.tapestry.form.ImageSubmit renders invalid XHTML attribute 'border="0"'
+ </li>
+ </ul>
+
+ <h2> Bug
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/HIVEMIND-206'>HIVEMIND-206</a>] - registryDidShutdown not called on Hivemind services on undeploy
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-403'>TAPESTRY-403</a>] - Bean binding with contrib:tablerows
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-415'>TAPESTRY-415</a>] - For component should use line precise error reporting for data conversions
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-572'>TAPESTRY-572</a>] - NumberValidator should accept Strings
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-633'>TAPESTRY-633</a>] - Default behavior of NumberTranslator treats zeros asymmetrically.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-638'>TAPESTRY-638</a>] - Recursive components result in a StackOverflowError
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-695'>TAPESTRY-695</a>] - WebRequestServicerFilter lacks support for tapestry.globals.*
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-825'>TAPESTRY-825</a>] - Cookies failing due to improper timing on flush() method
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-851'>TAPESTRY-851</a>] - DatePicker does not error when bound to values of wrong type
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-853'>TAPESTRY-853</a>] - Palette silently fails when bound to wrong collection type
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-872'>TAPESTRY-872</a>] - Persitent page properties are not set before PageAttachListener#pageAttached method is fired
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-873'>TAPESTRY-873</a>] - Minor XHTML 1.0 Strict compliance issues
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-881'>TAPESTRY-881</a>] - Allow global i18n bundle location to be customized
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-907'>TAPESTRY-907</a>] - overridden parameter problem
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-937'>TAPESTRY-937</a>] - Custom binding prefixes shorter than 2 characters fail without useful diagnostics
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-954'>TAPESTRY-954</a>] - Session lost when PageLInk inside a form
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-958'>TAPESTRY-958</a>] - Table column headers with a custom render block cannot be sorted
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-988'>TAPESTRY-988</a>] - Function mismatch with description in document: Form.jwc and tapestry.request.xml
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1014'>TAPESTRY-1014</a>] - java.util.ConcurrentModificationException in portlet when trying to show ArrayList
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1026'>TAPESTRY-1026</a>] - PageSpecificationResolverImpl doesn't search "implict" page specifications/templates in all the right places.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1065'>TAPESTRY-1065</a>] - TreeDataView.renderComponent() and TreeTableDataView.generateNodeList() cause ClassCastException in ITreeDataModel.getUniqueKey()
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1071'>TAPESTRY-1071</a>] - Client-side number validation does not work
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1091'>TAPESTRY-1091</a>] - Invalid URL for injected using annotation assets
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1101'>TAPESTRY-1101</a>] - @Persist("session") does not make the accessor fetch from session everytime
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1120'>TAPESTRY-1120</a>] - UploadPart / getFileName() doesn't work cross-platform
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1145'>TAPESTRY-1145</a>] - Unable to trigger EventListener when it is inside a block
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1151'>TAPESTRY-1151</a>] - PagePool doesnt remove idle pages, heap memory doens't get reallocated
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1179'>TAPESTRY-1179</a>] - practical component class naming for For, If and Else
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1193'>TAPESTRY-1193</a>] - .script files: "index" property of "foreach" tag is stored as a String, not an integer
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1198'>TAPESTRY-1198</a>] - problem with Checkbox + custom validators
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1199'>TAPESTRY-1199</a>] - multiple Autocompleters on the same page b0rken
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1203'>TAPESTRY-1203</a>] - boolean.getBoolean doesn't work as expected in InjectMetaWorker
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1204'>TAPESTRY-1204</a>] - boolean meta values in the component descriptor does not work
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1205'>TAPESTRY-1205</a>] - bad links in "Defining new Application State Objects" doc's chapter
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1206'>TAPESTRY-1206</a>] - Asynchronous Selection Boxes work with Firefox 2.0 but not with Internet Explorer 6/7
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1208'>TAPESTRY-1208</a>] - bad links in "Determining the Page Class"
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1210'>TAPESTRY-1210</a>] - Problem with InlineEditBox on persisted page property
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1212'>TAPESTRY-1212</a>] - AlertDialog widget button text should be "OK"
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1214'>TAPESTRY-1214</a>] - @Submit with submitType="refresh" : JavaScript syntax error
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1215'>TAPESTRY-1215</a>] - Autocomplete triggers a syntax error in dojo.js when getValues() returns an empty list
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1216'>TAPESTRY-1216</a>] - async Submit won't skip client side validation
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1217'>TAPESTRY-1217</a>] - IE watchInFlight Error when receiving a <tr>
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1218'>TAPESTRY-1218</a>] - URL to dojo.js is not escaped
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1222'>TAPESTRY-1222</a>] - HTTP headers setting through WebResponse is ignored
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1227'>TAPESTRY-1227</a>] - IUploadFile implementations should be prepared for "all" file name-separator characters in getFileName()
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1228'>TAPESTRY-1228</a>] - core.js doesn't process embedded <script></script> elements in ajax fragments
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1229'>TAPESTRY-1229</a>] - AssetService not thread safe
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1234'>TAPESTRY-1234</a>] - ResourceMatcherImpl not thread safe on multi-CPU system
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1240'>TAPESTRY-1240</a>] - LinkSubmit with parameters causes exception although it has validators attached
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1241'>TAPESTRY-1241</a>] - @EventListener produces multiple events
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1242'>TAPESTRY-1242</a>] - Typing in autocompleter does not display dropdown values
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1247'>TAPESTRY-1247</a>] - When a div containing a DirectLink using a PopupLinkRenderer is updated asynchronously, the attached javascript portion of the ajax response is ignored.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1248'>TAPESTRY-1248</a>] - Localization Problem when using Min Max Validator
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1249'>TAPESTRY-1249</a>] - 4.1.1 binary downloads include non-Apache modules (including OGNL and Javassist).
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1253'>TAPESTRY-1253</a>] - Meta injection throws exception unless property accessor is defined
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1254'>TAPESTRY-1254</a>] - IE7 mixed secure/nonsecure SSL warning on https using dojo dialog component
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1256'>TAPESTRY-1256</a>] - IllegalStateException if you try to access an ASO with OGNL, before accessing it in code
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1259'>TAPESTRY-1259</a>] - EventListener generates duplicate javascript with page caching on
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1261'>TAPESTRY-1261</a>] - need default styling on async exception responses somehow
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1268'>TAPESTRY-1268</a>] - setting focus=false on EventListener doesn't prevent focus from being claimed on form elements
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1273'>TAPESTRY-1273</a>] - ValidationStrings_de.properties is incomplete
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1280'>TAPESTRY-1280</a>] - add exclusion filter for Generic persistent types
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1288'>TAPESTRY-1288</a>] - Incorrect link in documentation
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1301'>TAPESTRY-1301</a>] - Class not found with cglib loaded in a parent (non-webapp) classloader. (CglibProxiedPropertyChangeObserverImpl)
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1309'>TAPESTRY-1309</a>] - clearValidationDecorations in validation.js has huge performance issues with many form elements
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1312'>TAPESTRY-1312</a>] - When an EventListener updates a datepicker, the new date is not rendered to the user
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1313'>TAPESTRY-1313</a>] - css classes fieldMissing/fieldInvalid not written in default ValidationDelegate
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1347'>TAPESTRY-1347</a>] - Shell refresh tag incorrectly encoded with cookies disabled
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1366'>TAPESTRY-1366</a>] - calling IRequestCycle.redirect() and then setting page properties causes property changes to be lost
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1374'>TAPESTRY-1374</a>] - GenericsMethodSignatureImpl throw exception!
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1376'>TAPESTRY-1376</a>] - can't find page if template has parse error
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1380'>TAPESTRY-1380</a>] - Page name validation regex is incorrect.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1383'>TAPESTRY-1383</a>] - number translator
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1390'>TAPESTRY-1390</a>] - DatePicker component doesn't work in IE
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1391'>TAPESTRY-1391</a>] - @EventListener method in component doesn't rewind the containing page's client-persistent properties
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1396'>TAPESTRY-1396</a>] - Specless components in libraries don't get their assets properly resolved
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1398'>TAPESTRY-1398</a>] - @EventListener in any component doesn't get called
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1399'>TAPESTRY-1399</a>] - NumberTranslator omitZero attribute doesn't default to true like docs say
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1402'>TAPESTRY-1402</a>] - OGNL Workaround doesn't work
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1407'>TAPESTRY-1407</a>] - XHR Exception page renders exception page && partial content
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1410'>TAPESTRY-1410</a>] - fail to test GenericsMethodSignatureImpl class.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1413'>TAPESTRY-1413</a>] - absolute classpath asset paths not found when no "classpath" specifier used
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1415'>TAPESTRY-1415</a>] - A page with a form and a getOrg() method will crash on retrieval
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1418'>TAPESTRY-1418</a>] - ComponentEventInvoker sometimes throws a NPE
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1419'>TAPESTRY-1419</a>] - Bracket notation with addition in OGNL expression causes failure to find appropriate listener
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1420'>TAPESTRY-1420</a>] - ognl string concatenation + static syntax does not render properly
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1426'>TAPESTRY-1426</a>] - Style component bug
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1428'>TAPESTRY-1428</a>] - Validators contribution fails regexp match
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1432'>TAPESTRY-1432</a>] - Regression in the AssetFactory().createAsset()
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1437'>TAPESTRY-1437</a>] - Unnecessary logging of MalformedURLException while searching for component templates
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1452'>TAPESTRY-1452</a>] - RedirectException does not work on Safari
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1459'>TAPESTRY-1459</a>] - Can't use dojo Editor
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1462'>TAPESTRY-1462</a>] - LinkFactoryImpl caches context path and servlet path
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1468'>TAPESTRY-1468</a>] - dojo.i18n.number needs explicit groupSize parameter of 0 for patterns with no grouping separator
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1477'>TAPESTRY-1477</a>] - IF component's condition expression get evaluated 3 or more times when it should only be evaluated once.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1496'>TAPESTRY-1496</a>] - getTableRow() returns incorrect Class
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1512'>TAPESTRY-1512</a>] - someone added local parameter to Autocompleter but didn't document it
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1517'>TAPESTRY-1517</a>] - form submitAsync doesn't set a JSON load handler
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1520'>TAPESTRY-1520</a>] - Tapestry 4.1 is no longer jdk 1.4 compatible - compiled by java 5
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1527'>TAPESTRY-1527</a>] - @Dialog component triggers a lot a javascript errors on scroll after show/hide by EventListener
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1534'>TAPESTRY-1534</a>] - Fix of Bug TAPESTRY-988 results in java.lang.IllegalArgumentException at hivemind.util.PropertyAdaptor.write trying to set the "org.apache.tapestry.default-cookie-max-age"
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1535'>TAPESTRY-1535</a>] - Suggest component doesn't work in a loop
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1536'>TAPESTRY-1536</a>] - LinkSubmit creates duplicate onclick event listener when combined with submitBindings() superclass method
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1548'>TAPESTRY-1548</a>] - tapestry.form.focusField on non displayed field
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1549'>TAPESTRY-1549</a>] - event connection evaluations via XHR
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1552'>TAPESTRY-1552</a>] - @Any divs with no body content render <div /> shorthand form
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1553'>TAPESTRY-1553</a>] - ETag header incorrect format
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1563'>TAPESTRY-1563</a>] - LinkSubmit async broken with new href javascript event change
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1569'>TAPESTRY-1569</a>] - If component doesn't render client id
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1574'>TAPESTRY-1574</a>] - cyclic page rendering of exception pages not detected in DojoAjaxResponseBuilder
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1577'>TAPESTRY-1577</a>] - optionRenderer not documented in PropertySelection
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1578'>TAPESTRY-1578</a>] - ParseException in AssetService
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1582'>TAPESTRY-1582</a>] - whole shadow foreground color not supported
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1587'>TAPESTRY-1587</a>] - Script assets without a DTD result in a Server Error 500
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1591'>TAPESTRY-1591</a>] - Encoding for Ajax Request is always UTF-8
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1592'>TAPESTRY-1592</a>] - TemplateParser converts <div ...></div> structures into <div ... /> structures
+ </li>
+ </ul>
+
+ <h2> Improvement
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-410'>TAPESTRY-410</a>] - IdentityValidator
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-550'>TAPESTRY-550</a>] - IMarkupWriter should automatically filter out duplicate attributes when rendering an element
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-573'>TAPESTRY-573</a>] - would like InjectStateWorker to add an "exists" method
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-697'>TAPESTRY-697</a>] - Add getters for validators properties.
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-717'>TAPESTRY-717</a>] - Easier accessing the hivemind registry
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-738'>TAPESTRY-738</a>] - Create ability to use SqueezeAdaptors for @Persist("client:app")
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-792'>TAPESTRY-792</a>] - Defining page property in definition file versus using implemented methods
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-856'>TAPESTRY-856</a>] - lazy initialization of abstract properties
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-867'>TAPESTRY-867</a>] - Do not display errors or errored field decoration on form refresh
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-933'>TAPESTRY-933</a>] - Add getRowCount() to ITableModel interface
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-962'>TAPESTRY-962</a>] - enhance ExpressionEvaluator
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-989'>TAPESTRY-989</a>] - Improve @PropertySelection
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-996'>TAPESTRY-996</a>] - Better locale detection for fully localized applications
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1035'>TAPESTRY-1035</a>] - Allow common stylesheets/favicon/geoinfo/doctype settings across pages/requests
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1068'>TAPESTRY-1068</a>] - allow throwing of RenderRewoundException from (submit) listeners
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1088'>TAPESTRY-1088</a>] - Exception page should have a "reset" ServiceLink
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1182'>TAPESTRY-1182</a>] - make ComponentAnnotationWorker extensible
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1183'>TAPESTRY-1183</a>] - @InjectParameterFlag annotation
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1184'>TAPESTRY-1184</a>] - @InjectPageLink and @InjectExternalLink annotations
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1196'>TAPESTRY-1196</a>] - When <let unique="true" ..> is used, make sure the output string is a valid js identifier
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1201'>TAPESTRY-1201</a>] - tapestry-contrib depends on jboss-j2ee
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1245'>TAPESTRY-1245</a>] - Alter LinkSubmit to output javascript in onclick (instead of in href)
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1260'>TAPESTRY-1260</a>] - add logging interceptor to ResponseBuilder services as well as logging of ajax xml response output / etc
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1266'>TAPESTRY-1266</a>] - Style should not render anything if href is null and no body present
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1305'>TAPESTRY-1305</a>] - ServiceEncoding needs ability to set the PathInfo variable
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1350'>TAPESTRY-1350</a>] - add Shell component parameter to disable Tapestry meta runtime info
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1378'>TAPESTRY-1378</a>] - Make Dropdown date/time pickers capable of taking a generic object - so that things like Joda time can be used as well
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1449'>TAPESTRY-1449</a>] - Leave off port 443 when generating https URLs
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1453'>TAPESTRY-1453</a>] - upgrade dojo to 0.4.2 version
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1474'>TAPESTRY-1474</a>] - autowiring of generic service properties
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1489'>TAPESTRY-1489</a>] - ValidationStrings for de and ru
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1513'>TAPESTRY-1513</a>] - convert StringToListConverter strings going to a binding property of updateComponents to their component clientId equivalents
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1550'>TAPESTRY-1550</a>] - don't log exceptions when browser IO connections close serving asset resources
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1554'>TAPESTRY-1554</a>] - remove description from AbstractBinding
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1561'>TAPESTRY-1561</a>] - improve the user experience of javascript-based links
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1589'>TAPESTRY-1589</a>] - have debugEnabled=false by default for @Shell component
+ </li>
+ </ul>
+
+ <h2> New Feature
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-330'>TAPESTRY-330</a>] - Add uninitialization tag to Script specification and component
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-817'>TAPESTRY-817</a>] - Translator for BigDecimal values
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1414'>TAPESTRY-1414</a>] - I am new about tapestry pls send me user friendly document
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1531'>TAPESTRY-1531</a>] - Integrate prototype and provide alternative @Suggest component for Autocompleter that uses the more robust scriptaculous version
+ </li>
+ </ul>
+
+ <h2> Task
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-659'>TAPESTRY-659</a>] - Document available services
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1285'>TAPESTRY-1285</a>] - Upload http://tapestry.apache.org/dtd/Script_4_0.dtd
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1392'>TAPESTRY-1392</a>] - Update validation strings for locale pt
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1519'>TAPESTRY-1519</a>] - upgrade dojo to 0.4.3 release
+ </li>
+ </ul>
+
+ <h2> Wish
+ </h2>
+ <ul>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-396'>TAPESTRY-396</a>] - RequestLocaleManagerImpl: Change private members to protected, to enable overriding implementation
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-765'>TAPESTRY-765</a>] - Create testing guide
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-838'>TAPESTRY-838</a>] - ListenerInvokerFilter provides no way to find out what listener method is being invoked
+ </li>
+ <li>[<a href='https://issues.apache.org/jira/browse/TAPESTRY-1454'>TAPESTRY-1454</a>] - isDisabledDate() in DatePicker in Dojo4.1
+ </li>
+ </ul>
+
+ </subsection>
+
<subsection name="Release Notes - Tapestry - Version 4.1.1">
<h2> Sub-task
</h2>
Modified: tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/PageRenderSupportImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/PageRenderSupportImpl.java?view=diff&rev=550229&r1=550228&r2=550229
==============================================================================
--- tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/PageRenderSupportImpl.java (original)
+++ tapestry/tapestry4/trunk/tapestry-framework/src/java/org/apache/tapestry/util/PageRenderSupportImpl.java Sun Jun 24 06:48:45 2007
@@ -14,31 +14,24 @@
package org.apache.tapestry.util;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.hivemind.Locatable;
import org.apache.hivemind.Location;
import org.apache.hivemind.Resource;
import org.apache.hivemind.util.Defense;
-import org.apache.tapestry.IAsset;
-import org.apache.tapestry.IComponent;
-import org.apache.tapestry.IMarkupWriter;
-import org.apache.tapestry.IRequestCycle;
-import org.apache.tapestry.PageRenderSupport;
-import org.apache.tapestry.Tapestry;
+import org.apache.tapestry.*;
import org.apache.tapestry.asset.AssetFactory;
import org.apache.tapestry.services.ResponseBuilder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* Implementation of {@link org.apache.tapestry.PageRenderSupport}. The
* {@link org.apache.tapestry.html.Body} component uses an instance of this class.
- *
+ *
* @author Howard M. Lewis Ship
* @since 4.0
*/
@@ -49,7 +42,7 @@
private final Location _location;
private final ResponseBuilder _builder;
-
+
// Lines that belong inside the onLoad event handler for the <body> tag.
private StringBuffer _initializationScript;
@@ -69,7 +62,7 @@
/**
* List of included scripts. Values are Strings.
- *
+ *
* @since 1.0.5
*/
@@ -78,22 +71,22 @@
private final IdAllocator _idAllocator;
private final String _preloadName;
-
+
private final Map _requires = new HashMap();
-
- public PageRenderSupportImpl(AssetFactory assetFactory, String namespace,
- Location location, ResponseBuilder builder)
+
+ public PageRenderSupportImpl(AssetFactory assetFactory, String namespace,
+ Location location, ResponseBuilder builder)
{
Defense.notNull(assetFactory, "assetService");
-
+
_assetFactory = assetFactory;
_location = location;
_idAllocator = new IdAllocator(namespace);
_builder = builder;
-
+
_preloadName = (namespace.equals("") ? "tapestry." : namespace) + "preload";
}
-
+
/**
* Returns the location, which may be used in error messages. In practical terms, this is the
* location of the {@link org.apache.tapestry.html.Body} component.
@@ -103,26 +96,26 @@
{
return _location;
}
-
+
public String getPreloadedImageReference(String URL)
{
return getPreloadedImageReference(null, URL);
}
-
+
public String getPreloadedImageReference(IComponent target, IAsset source)
{
return getPreloadedImageReference(target, source.buildURL());
}
-
+
public String getPreloadedImageReference(IComponent target, String URL)
{
- if (target != null
- && !_builder.isImageInitializationAllowed(target))
+ if (target != null
+ && !_builder.isImageInitializationAllowed(target))
return URL;
-
+
if (_imageMap == null)
_imageMap = new HashMap();
-
+
String reference = (String) _imageMap.get(URL);
if (reference == null)
@@ -133,7 +126,7 @@
if (_imageInitializations == null)
_imageInitializations = new StringBuffer();
-
+
_imageInitializations.append(" ");
_imageInitializations.append(varName);
_imageInitializations.append(" = new Image();\n");
@@ -142,31 +135,31 @@
_imageInitializations.append(" = \"");
_imageInitializations.append(URL);
_imageInitializations.append("\";\n");
-
+
_imageMap.put(URL, reference);
}
return reference;
}
-
+
public void addBodyScript(String script)
{
addBodyScript(null, script);
}
-
+
public void addBodyScript(IComponent target, String script)
{
- if (!_builder.isBodyScriptAllowed(target))
+ if (!_builder.isBodyScriptAllowed(target))
return;
-
+
String val = stripDuplicateIncludes(script);
-
+
if (_bodyScript == null)
_bodyScript = new StringBuffer(val.length());
-
+
_bodyScript.append("\n").append(val);
}
-
+
/**
* {@inheritDoc}
*/
@@ -198,62 +191,62 @@
public void addInitializationScript(IComponent target, String script)
{
- if (!_builder.isInitializationScriptAllowed(target))
+ if (!_builder.isInitializationScriptAllowed(target))
return;
-
+
String val = stripDuplicateIncludes(script);
-
+
if (_initializationScript == null)
_initializationScript = new StringBuffer(val.length() + 1);
-
+
_initializationScript.append("\n").append(val);
}
-
+
/**
* Provides a mechanism to strip out duplicate dojo.require calls made in script
* templates in order to reduce amount of redundant javascript written to client.
- *
+ *
* @param input The incoming script string to check for requires.
* @return The input string stripped of all known dojo.require calls, if any.
*/
String stripDuplicateIncludes(String input)
{
String[] lines = StringUtils.splitPreserveAllTokens(input, ';');
-
+
if (lines == null || lines.length < 1)
return input;
-
+
String ret = input;
-
+
for (int i=0; i < lines.length; i++) {
if (lines[i].indexOf("dojo.require") < 0)
continue;
-
+
String line = StringUtils.stripToEmpty(lines[i]);
-
+
if (_requires.containsKey(line)) {
ret = StringUtils.replaceOnce(ret, line+";", "");
} else {
_requires.put(line, "t");
}
}
-
+
return StringUtils.stripToEmpty(ret.trim());
}
-
+
public void addExternalScript(Resource scriptLocation)
{
addExternalScript(null, scriptLocation);
}
-
+
public void addExternalScript(IComponent target, Resource scriptLocation)
{
- if (!_builder.isExternalScriptAllowed(target))
+ if (!_builder.isExternalScriptAllowed(target))
return;
-
+
if (_externalScripts == null)
_externalScripts = new ArrayList();
-
+
if (_externalScripts.contains(scriptLocation))
return;
@@ -266,25 +259,25 @@
{
return _idAllocator.allocateId(baseValue);
}
-
+
private void writeExternalScripts(IMarkupWriter writer, IRequestCycle cycle)
{
int count = Tapestry.size(_externalScripts);
for (int i = 0; i < count; i++)
{
Resource scriptLocation = (Resource) _externalScripts.get(i);
-
+
IAsset asset = _assetFactory.createAsset(scriptLocation, null);
-
+
String url = asset.buildURL();
-
+
// Note: important to use begin(), not beginEmpty(), because browser don't
// interpret <script .../> properly.
-
+
_builder.writeExternalScript(writer, url, cycle);
}
}
-
+
/**
* Writes a single large JavaScript block containing:
* <ul>
@@ -292,7 +285,7 @@
* <li>Any included scripts (via {@link #addExternalScript(Resource)}).
* <li>Any contributions (via {@link #addBodyScript(String)}).
* </ul>
- *
+ *
* @see #writeInitializationScript(IMarkupWriter)
*/
@@ -300,28 +293,28 @@
{
if (!Tapestry.isEmpty(_externalScripts))
writeExternalScripts(writer, cycle);
-
+
if (!(any(_bodyScript) || any(_imageInitializations)))
return;
-
+
_builder.beginBodyScript(writer, cycle);
-
+
if (any(_imageInitializations))
{
_builder.writeImageInitializations(writer, StringUtils.stripToEmpty(_imageInitializations.toString())
- , _preloadName, cycle);
+ , _preloadName, cycle);
}
-
+
if (any(_bodyScript))
{
_builder.writeBodyScript(writer, StringUtils.stripToEmpty(_bodyScript.toString())
- ,
- cycle);
+ ,
+ cycle);
}
-
+
_builder.endBodyScript(writer, cycle);
}
-
+
/**
* Writes any image initializations; this should be invoked at the end of the render, after all
* the related HTML will have already been streamed to the client and parsed by the web browser.
@@ -332,9 +325,8 @@
{
if (!any(_initializationScript))
return;
-
- _builder.writeInitializationScript(writer, StringUtils.stripToEmpty(_initializationScript.toString())
- );
+
+ _builder.writeInitializationScript(writer, StringUtils.stripToEmpty(_initializationScript.toString()));
}
private boolean any(StringBuffer buffer)