<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-339</id>
	<title>Nabble - Tapestry - Dev</title>
	<updated>2009-11-26T04:43:39Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/Tapestry---Dev-f339.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Tapestry---Dev-f339.html" />
	<subtitle type="html"></subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26528944</id>
	<title>[jira] Commented: (TAP5-936) Tapestry wiki link links to nothing for locales other then en</title>
	<published>2009-11-26T04:43:39Z</published>
	<updated>2009-11-26T04:43:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782878#action_12782878&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782878#action_12782878&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Ulrich Stärk commented on TAP5-936:
&lt;br&gt;-----------------------------------
&lt;br&gt;&lt;br&gt;The easiest thing to do then is to hard-link to FrontPage.
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Tapestry wiki link links to nothing for locales other then en
&lt;br&gt;&amp;gt; -------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-936
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: documentation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0.0, 5.1.0.5, 5.0.18
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ulrich Stärk
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The wiki link should link explicitly to &lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage&lt;/a&gt;, otherwise MoinMoin will choose a start page according to the user's browser's locale which in my case (de) leads to an empty page.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-936%29-Tapestry-wiki-link-links-to-nothing-for-locales-other-then-en-tp26517912p26528944.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528716</id>
	<title>[jira] Commented: (TAP5-936) Tapestry wiki link links to nothing for locales other then en</title>
	<published>2009-11-26T04:26:39Z</published>
	<updated>2009-11-26T04:26:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782870#action_12782870&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782870#action_12782870&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andreas Andreou commented on TAP5-936:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;Just noticed that those 'translated' front pages cannot be deleted or edited (at least by me)
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Tapestry wiki link links to nothing for locales other then en
&lt;br&gt;&amp;gt; -------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-936
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: documentation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0.0, 5.1.0.5, 5.0.18
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ulrich Stärk
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The wiki link should link explicitly to &lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage&lt;/a&gt;, otherwise MoinMoin will choose a start page according to the user's browser's locale which in my case (de) leads to an empty page.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-936%29-Tapestry-wiki-link-links-to-nothing-for-locales-other-then-en-tp26517912p26528716.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528466</id>
	<title>[Tapestry Wiki] Update of &quot;FrontPage&quot; by AndreasAndreou</title>
	<published>2009-11-26T04:03:13Z</published>
	<updated>2009-11-26T04:03:13Z</updated>
	<author>
		<name>Apache Wiki</name>
	</author>
	<content type="html">Dear Wiki user,
&lt;br&gt;&lt;br&gt;You have subscribed to a wiki page or wiki category on &amp;quot;Tapestry Wiki&amp;quot; for change notification.
&lt;br&gt;&lt;br&gt;The &amp;quot;FrontPage&amp;quot; page has been changed by AndreasAndreou.
&lt;br&gt;The comment on this change is: link orphan irc page.
&lt;br&gt;&lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage?action=diff&amp;rev1=262&amp;rev2=263&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage?action=diff&amp;rev1=262&amp;rev2=263&lt;/a&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp;* [[&lt;a href=&quot;http://www.tapestryforums.com/index.php&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.tapestryforums.com/index.php&lt;/a&gt;]]: Tapestry centric forum
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;- &amp;nbsp;* There is a #tapestry IRC channel on freenode [[irc://irc.freenode.net/tapestry]]
&lt;br&gt;+ &amp;nbsp;* [[IrcChannel]] There is a #tapestry IRC channel on freenode [[irc://irc.freenode.net/tapestry]]
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp;* [[Gotchas]]
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528466&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528466&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Tapestry-Wiki--Update-of-%22FrontPage%22-by-AndreasAndreou-tp26528466p26528466.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528398</id>
	<title>[Tapestry Wiki] Update of &quot;Tapestry5HowTos&quot; by AndreasAndreou</title>
	<published>2009-11-26T03:56:43Z</published>
	<updated>2009-11-26T03:56:43Z</updated>
	<author>
		<name>Apache Wiki</name>
	</author>
	<content type="html">Dear Wiki user,
&lt;br&gt;&lt;br&gt;You have subscribed to a wiki page or wiki category on &amp;quot;Tapestry Wiki&amp;quot; for change notification.
&lt;br&gt;&lt;br&gt;The &amp;quot;Tapestry5HowTos&amp;quot; page has been changed by AndreasAndreou.
&lt;br&gt;&lt;a href=&quot;http://wiki.apache.org/tapestry/Tapestry5HowTos?action=diff&amp;rev1=191&amp;rev2=192&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/Tapestry5HowTos?action=diff&amp;rev1=191&amp;rev2=192&lt;/a&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;* Tapestry5SimpleAndPowerfulLayouts - Creates flexible layouts, using a simple reusable component.
&lt;br&gt;&amp;nbsp; &amp;nbsp;* Tapestry5LayoutWithMenu - Layout with added menu bar
&lt;br&gt;&amp;nbsp; &amp;nbsp;* Tapestry5EnumAsComponentParameter - Defining a new enum as a component parameter, and adding the string -&amp;gt; enum type coercion for it
&lt;br&gt;+ &amp;nbsp;* [[Captcha]]
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; == Bug workarounds / patches ==
&lt;br&gt;&amp;nbsp; &amp;nbsp;* Tapestry5Utf8Encoding - How to use UTF-8 encoding to support foreign characters
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528398&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528398&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Tapestry-Wiki--Update-of-%22Tapestry5HowTos%22-by-AndreasAndreou-tp26528398p26528398.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528389</id>
	<title>[Tapestry Wiki] Update of &quot;ExtraComponents&quot; by AndreasAndreou</title>
	<published>2009-11-26T03:55:57Z</published>
	<updated>2009-11-26T03:55:57Z</updated>
	<author>
		<name>Apache Wiki</name>
	</author>
	<content type="html">Dear Wiki user,
&lt;br&gt;&lt;br&gt;You have subscribed to a wiki page or wiki category on &amp;quot;Tapestry Wiki&amp;quot; for change notification.
&lt;br&gt;&lt;br&gt;The &amp;quot;ExtraComponents&amp;quot; page has been changed by AndreasAndreou.
&lt;br&gt;&lt;a href=&quot;http://wiki.apache.org/tapestry/ExtraComponents?action=diff&amp;rev1=29&amp;rev2=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/ExtraComponents?action=diff&amp;rev1=29&amp;rev2=30&lt;/a&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &amp;nbsp;* [[&lt;a href=&quot;http://tapestrypalette.sourceforge.net/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tapestrypalette.sourceforge.net/&lt;/a&gt;|Tapestry Palette plugin for Eclipse]]. A tool to enable drag &amp; drop Tapestry component editing in the Eclipse IDE.
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;+ &amp;nbsp;* [[Captcha]]
&lt;br&gt;+ 
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; = Contributing components =
&lt;br&gt;&amp;nbsp; &amp;nbsp;* [[What]]?
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528389&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528389&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Tapestry-Wiki--Update-of-%22ExtraComponents%22-by-AndreasAndreou-tp26528389p26528389.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528258</id>
	<title>[Tapestry Wiki] Update of &quot;Captcha&quot; by AndreasAndreou</title>
	<published>2009-11-26T03:45:35Z</published>
	<updated>2009-11-26T03:45:35Z</updated>
	<author>
		<name>Apache Wiki</name>
	</author>
	<content type="html">Dear Wiki user,
&lt;br&gt;&lt;br&gt;You have subscribed to a wiki page or wiki category on &amp;quot;Tapestry Wiki&amp;quot; for change notification.
&lt;br&gt;&lt;br&gt;The &amp;quot;Captcha&amp;quot; page has been changed by AndreasAndreou.
&lt;br&gt;The comment on this change is: add chenillekit.
&lt;br&gt;&lt;a href=&quot;http://wiki.apache.org/tapestry/Captcha?action=diff&amp;rev1=3&amp;rev2=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/Captcha?action=diff&amp;rev1=3&amp;rev2=4&lt;/a&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; Simple captcha integration could be found on pages 
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;- jCaptcha &amp; Tapestry
&lt;br&gt;+ &lt;a href=&quot;http://www.chenillekit.org/chenillekit-tapestry/ref/org/chenillekit/tapestry/core/components/Kaptcha.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.chenillekit.org/chenillekit-tapestry/ref/org/chenillekit/tapestry/core/components/Kaptcha.html&lt;/a&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://www.solware.cz/Wiki/Wiki.jsp?page=Tapestry_Captcha&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.solware.cz/Wiki/Wiki.jsp?page=Tapestry_Captcha&lt;/a&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;@@ -12, +12 @@
&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; jCaptcha &amp; Tapestry 4.1
&lt;br&gt;&amp;nbsp; 
&lt;br&gt;- &lt;a href=&quot;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/&lt;/a&gt;&lt;br&gt;+ &lt;a href=&quot;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/captcha/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/captcha/&lt;/a&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528258&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528258&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Tapestry-Wiki--Update-of-%22Captcha%22-by-AndreasAndreou-tp26528258p26528258.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26528134</id>
	<title>[Tapestry Wiki] Update of &quot;Captcha&quot; by AndreasAndreou</title>
	<published>2009-11-26T03:36:18Z</published>
	<updated>2009-11-26T03:36:18Z</updated>
	<author>
		<name>Apache Wiki</name>
	</author>
	<content type="html">Dear Wiki user,
&lt;br&gt;&lt;br&gt;You have subscribed to a wiki page or wiki category on &amp;quot;Tapestry Wiki&amp;quot; for change notification.
&lt;br&gt;&lt;br&gt;The &amp;quot;Captcha&amp;quot; page has been changed by AndreasAndreou.
&lt;br&gt;&lt;a href=&quot;http://wiki.apache.org/tapestry/Captcha?action=diff&amp;rev1=2&amp;rev2=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/Captcha?action=diff&amp;rev1=2&amp;rev2=3&lt;/a&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://www.solware.cz/Wiki/Wiki.jsp?page=Tapestry_Captcha&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.solware.cz/Wiki/Wiki.jsp?page=Tapestry_Captcha&lt;/a&gt;&lt;br&gt;&amp;nbsp; 
&lt;br&gt;+ jCaptcha &amp; Tapestry 5
&lt;br&gt;+ 
&lt;br&gt;+ &lt;a href=&quot;http://forge.octo.com/jcaptcha/confluence/display/general/5+minutes+application+integration+tutorial&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://forge.octo.com/jcaptcha/confluence/display/general/5+minutes+application+integration+tutorial&lt;/a&gt;&amp;nbsp;(scroll down for &amp;quot;JCaptcha Integration with Tapestry&amp;quot;)
&lt;br&gt;+ 
&lt;br&gt;+ jCaptcha &amp; Tapestry 4.1
&lt;br&gt;+ 
&lt;br&gt;+ &lt;a href=&quot;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://tacos.svn.sourceforge.net/svnroot/tacos/tacos-4.1/trunk/tacos-contrib/src/java/net/sf/tacos/contrib/&lt;/a&gt;&lt;br&gt;+ 
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528134&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26528134&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-Tapestry-Wiki--Update-of-%22Captcha%22-by-AndreasAndreou-tp26528134p26528134.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26518330</id>
	<title>[jira] Commented: (TAP5-936) Tapestry wiki link links to nothing for locales other then en</title>
	<published>2009-11-25T10:54:39Z</published>
	<updated>2009-11-25T10:54:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782554#action_12782554&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12782554#action_12782554&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Andreas Andreou commented on TAP5-936:
&lt;br&gt;--------------------------------------
&lt;br&gt;&lt;br&gt;I see the problem for a few other locales (french) &amp;nbsp;but not all - no greek :)
&lt;br&gt;&lt;br&gt;Probably they are created by default and we can just delete them - or if someone's interested 
&lt;br&gt;he can edit them and/or add translations
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Tapestry wiki link links to nothing for locales other then en
&lt;br&gt;&amp;gt; -------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-936
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: documentation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0.0, 5.1.0.5, 5.0.18
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ulrich Stärk
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The wiki link should link explicitly to &lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage&lt;/a&gt;, otherwise MoinMoin will choose a start page according to the user's browser's locale which in my case (de) leads to an empty page.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-936%29-Tapestry-wiki-link-links-to-nothing-for-locales-other-then-en-tp26517912p26518330.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26517936</id>
	<title>[jira] Updated: (TAP5-936) Tapestry wiki link links to nothing for locales other then en</title>
	<published>2009-11-25T10:28:39Z</published>
	<updated>2009-11-25T10:28:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Ulrich Stärk updated TAP5-936:
&lt;br&gt;------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Version/s: 5.0.18
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Tapestry wiki link links to nothing for locales other then en
&lt;br&gt;&amp;gt; -------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-936
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Bug
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: documentation
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.2.0.0, 5.1.0.5, 5.0.18
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ulrich Stärk
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The wiki link should link explicitly to &lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage&lt;/a&gt;, otherwise MoinMoin will choose a start page according to the user's browser's locale which in my case (de) leads to an empty page.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-936%29-Tapestry-wiki-link-links-to-nothing-for-locales-other-then-en-tp26517912p26517936.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26517912</id>
	<title>[jira] Created: (TAP5-936) Tapestry wiki link links to nothing for locales other then en</title>
	<published>2009-11-25T10:26:39Z</published>
	<updated>2009-11-25T10:26:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Tapestry wiki link links to nothing for locales other then en
&lt;br&gt;-------------------------------------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: TAP5-936
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-936&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-936&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Tapestry 5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Bug
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: documentation
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 5.1.0.5, 5.2.0.0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Ulrich Stärk
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Priority: Minor
&lt;br&gt;&lt;br&gt;&lt;br&gt;The wiki link should link explicitly to &lt;a href=&quot;http://wiki.apache.org/tapestry/FrontPage&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://wiki.apache.org/tapestry/FrontPage&lt;/a&gt;, otherwise MoinMoin will choose a start page according to the user's browser's locale which in my case (de) leads to an empty page.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-936%29-Tapestry-wiki-link-links-to-nothing-for-locales-other-then-en-tp26517912p26517912.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26517194</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk: src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ tapestry-core/src/main/java/org/apache/tapestry5/services/ tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-25T09:41:17Z</published>
	<updated>2009-11-25T09:41:17Z</updated>
	<author>
		<name>Thiago H. de Paula Figueiredo</name>
	</author>
	<content type="html">Em Wed, 25 Nov 2009 15:25:13 -0200, Ulrich Stärk &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26517194&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uli@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;escreveu:
&lt;br&gt;&lt;br&gt;&amp;gt; I'm all for blacklisting but reasonable defaults like allowing &amp;nbsp;
&lt;br&gt;&amp;gt; css/jpg/png/gif/js from the webapp context IMHO should be added as not &amp;nbsp;
&lt;br&gt;&amp;gt; to frustrate people trying to get their project going...
&lt;br&gt;&lt;br&gt;Agreed.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Thiago H. de Paula Figueiredo
&lt;br&gt;Independent Java, Apache Tapestry 5 and Hibernate consultant, developer, &amp;nbsp;
&lt;br&gt;and instructor
&lt;br&gt;Owner, software architect and developer, Ars Machina Tecnologia da &amp;nbsp;
&lt;br&gt;Informação Ltda.
&lt;br&gt;&lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26517194&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26517194&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26517194.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26516858</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk:  src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/  tapestry-core/src/main/java/org/apache/tapestry5/services/ tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-25T09:25:13Z</published>
	<updated>2009-11-25T09:25:13Z</updated>
	<author>
		<name>Ulrich Stärk</name>
	</author>
	<content type="html">So this means, that by default, assets commonly used in an application 
&lt;br&gt;(e.g. custom css, images, javascript) are blocked by default and the 
&lt;br&gt;user has to allow them manually? You don't want to add 
&lt;br&gt;RequestConstants.CONTEXT_FOLDER + appVersion + &amp;quot;/&amp;quot; + pathPattern to the 
&lt;br&gt;regex authorizer?
&lt;br&gt;&lt;br&gt;I'm all for blacklisting but reasonable defaults like allowing 
&lt;br&gt;css/jpg/png/gif/js from the webapp context IMHO should be added as not 
&lt;br&gt;to frustrate people trying to get their project going...
&lt;br&gt;&lt;br&gt;Uli
&lt;br&gt;&lt;br&gt;Robert Zeigler schrieb:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Fair enough. It was in there originally from when the module was 
&lt;br&gt;&amp;gt; separate from the codebase; I suspect that a large portion of tapestry 
&lt;br&gt;&amp;gt; users are also chenille-kit users (I know I am :), so I had added it in 
&lt;br&gt;&amp;gt; for convenience. &amp;nbsp;With the module moving into tapestry core, it makes 
&lt;br&gt;&amp;gt; sense to move the &amp;quot;burden&amp;quot; of the contribution to the chenille-kit dev.
&lt;br&gt;&amp;gt; I should be closing out the ticket shortly, but it's pending one, 
&lt;br&gt;&amp;gt; possibly two things:
&lt;br&gt;&amp;gt; 1) An integration test asserting that the protection is in place
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Note that existing integration tests illustrated the fact that it 
&lt;br&gt;&amp;gt; /does/ work b/c they broke on addition of the module until I added the 
&lt;br&gt;&amp;gt; appropriate contribution. &amp;nbsp;But that's not the same thing as explicitly 
&lt;br&gt;&amp;gt; testing for the presence of the protection.
&lt;br&gt;&amp;gt; 2) Possibly adding in default contributions for the quickstart.
&lt;br&gt;&amp;gt; &amp;nbsp; I've been hesitant to do this, honestly, because overriding such a 
&lt;br&gt;&amp;gt; general contribution, while possible, is less straightforward (you'd 
&lt;br&gt;&amp;gt; have to contribute your own implementation of an AssetAuthorizer in 
&lt;br&gt;&amp;gt; front of the regex one). &amp;nbsp;But as I was typing this I realized that we 
&lt;br&gt;&amp;gt; can do it better than that by actually adding the contribution to the 
&lt;br&gt;&amp;gt; quickstart's AppModule, rather than to tapestry core. &amp;nbsp;So you still get 
&lt;br&gt;&amp;gt; the benefit, but you can easily fine-tune the contribution.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Robert
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Nov 24, 2009, at 11/243:09 AM , Massimo Lusetti wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:53 PM, Ulrich Stärk &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uli@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; This will break all applications using chenillekit until the chenillekit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; devs update their code and should be visibly documented somewhere.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; We agree too and we have it in our tree a contribution that we will
&lt;br&gt;&amp;gt;&amp;gt; extend to include everything needed.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Cheers
&lt;br&gt;&amp;gt;&amp;gt; -- 
&lt;br&gt;&amp;gt;&amp;gt; Massimo
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://meridio.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://meridio.blogspot.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26516858&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26516858.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26515618</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk:  src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/  tapestry-core/src/main/java/org/apache/tapestry5/services/  tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-25T08:16:20Z</published>
	<updated>2009-11-25T08:16:20Z</updated>
	<author>
		<name>Robert Zeigler</name>
	</author>
	<content type="html">Fair enough. It was in there originally from when the module was &amp;nbsp;
&lt;br&gt;separate from the codebase; I suspect that a large portion of tapestry &amp;nbsp;
&lt;br&gt;users are also chenille-kit users (I know I am :), so I had added it &amp;nbsp;
&lt;br&gt;in for convenience. &amp;nbsp;With the module moving into tapestry core, it &amp;nbsp;
&lt;br&gt;makes sense to move the &amp;quot;burden&amp;quot; of the contribution to the chenille- 
&lt;br&gt;kit dev.
&lt;br&gt;I should be closing out the ticket shortly, but it's pending one, &amp;nbsp;
&lt;br&gt;possibly two things:
&lt;br&gt;1) An integration test asserting that the protection is in place
&lt;br&gt;&amp;nbsp; &amp;nbsp; Note that existing integration tests illustrated the fact that it / 
&lt;br&gt;does/ work b/c they broke on addition of the module until I added the &amp;nbsp;
&lt;br&gt;appropriate contribution. &amp;nbsp;But that's not the same thing as explicitly &amp;nbsp;
&lt;br&gt;testing for the presence of the protection.
&lt;br&gt;2) Possibly adding in default contributions for the quickstart.
&lt;br&gt;&amp;nbsp; &amp;nbsp;I've been hesitant to do this, honestly, because overriding such a &amp;nbsp;
&lt;br&gt;general contribution, while possible, is less straightforward (you'd &amp;nbsp;
&lt;br&gt;have to contribute your own implementation of an AssetAuthorizer in &amp;nbsp;
&lt;br&gt;front of the regex one). &amp;nbsp;But as I was typing this I realized that we &amp;nbsp;
&lt;br&gt;can do it better than that by actually adding the contribution to the &amp;nbsp;
&lt;br&gt;quickstart's AppModule, rather than to tapestry core. &amp;nbsp;So you still &amp;nbsp;
&lt;br&gt;get the benefit, but you can easily fine-tune the contribution.
&lt;br&gt;&lt;br&gt;Robert
&lt;br&gt;&lt;br&gt;On Nov 24, 2009, at 11/243:09 AM , Massimo Lusetti wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 8:53 PM, Ulrich Stärk &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26515618&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uli@...&lt;/a&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; This will break all applications using chenillekit until the &amp;nbsp;
&lt;br&gt;&amp;gt;&amp;gt; chenillekit
&lt;br&gt;&amp;gt;&amp;gt; devs update their code and should be visibly documented somewhere.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; We agree too and we have it in our tree a contribution that we will
&lt;br&gt;&amp;gt; extend to include everything needed.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Cheers
&lt;br&gt;&amp;gt; -- 
&lt;br&gt;&amp;gt; Massimo
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://meridio.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://meridio.blogspot.com&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26515618&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26515618&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26515618&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26515618&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26515618.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26512346</id>
	<title>Re: [VOTE] Ulrich Stärk as Tapestry Committer</title>
	<published>2009-11-25T05:07:59Z</published>
	<updated>2009-11-25T05:07:59Z</updated>
	<author>
		<name>Ulrich Stärk</name>
	</author>
	<content type="html">Thank you everybody for your ayes and the confidence you plac in me. And especially thank you Robert 
&lt;br&gt;and Igor for considering me in the first place.
&lt;br&gt;&lt;br&gt;Uli
&lt;br&gt;&lt;br&gt;Am 25.11.2009 08:23 schrieb Igor Drobiazko:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Binding votes:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Andreas Andreou: +1
&lt;br&gt;&amp;gt; Howard M. Lewis Ship: +1
&lt;br&gt;&amp;gt; Thiago H. de Paula Figueiredo: +1
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Non-binding votes:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Igor Drobiazko: +1
&lt;br&gt;&amp;gt; Robert Zeigler +1
&lt;br&gt;&amp;gt; Alfonso Quiroga: +1
&lt;br&gt;&amp;gt; Dmitry Gusev: +1
&lt;br&gt;&amp;gt; Kristian Marinkovic: +1
&lt;br&gt;&amp;gt; Daniel Jue: +1
&lt;br&gt;&amp;gt; Massimo Lusetti: +1
&lt;br&gt;&amp;gt; Andy Blower: +1
&lt;br&gt;&amp;gt; Ben Dotte: +1
&lt;br&gt;&amp;gt; Kevin Menard: +1
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Welcome aboard, Ulrich.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Sat, Nov 21, 2009 at 11:11 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26512346&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Ulrich has been very active in the Tapestry community. He is a long-time
&lt;br&gt;&amp;gt;&amp;gt; Tapestry user and provided tons high quality patches. I had the pleasure to
&lt;br&gt;&amp;gt;&amp;gt; learn him during I wrote my Tapestry book. He made a great job as technical
&lt;br&gt;&amp;gt;&amp;gt; reviewer of the book. From private chat I know he is willing to become a
&lt;br&gt;&amp;gt;&amp;gt; Tapestry committer.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ulrich would make a great addition to the team.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Vote to run for three days.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Igor Drobiazko: +1 (non-binding)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26512346&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26512346&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26512346.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26508505</id>
	<title>Re: [VOTE] Ulrich Stärk as Tapestry Committer</title>
	<published>2009-11-24T23:23:03Z</published>
	<updated>2009-11-24T23:23:03Z</updated>
	<author>
		<name>Igor Drobiazko</name>
	</author>
	<content type="html">Binding votes:
&lt;br&gt;&lt;br&gt;Andreas Andreou: +1
&lt;br&gt;Howard M. Lewis Ship: +1
&lt;br&gt;Thiago H. de Paula Figueiredo: +1
&lt;br&gt;&lt;br&gt;Non-binding votes:
&lt;br&gt;&lt;br&gt;Igor Drobiazko: +1
&lt;br&gt;Robert Zeigler +1
&lt;br&gt;Alfonso Quiroga: +1
&lt;br&gt;Dmitry Gusev: +1
&lt;br&gt;Kristian Marinkovic: +1
&lt;br&gt;Daniel Jue: +1
&lt;br&gt;Massimo Lusetti: +1
&lt;br&gt;Andy Blower: +1
&lt;br&gt;Ben Dotte: +1
&lt;br&gt;Kevin Menard: +1
&lt;br&gt;&lt;br&gt;&lt;br&gt;Welcome aboard, Ulrich.
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sat, Nov 21, 2009 at 11:11 PM, Igor Drobiazko
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26508505&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Ulrich has been very active in the Tapestry community. He is a long-time
&lt;br&gt;&amp;gt; Tapestry user and provided tons high quality patches. I had the pleasure to
&lt;br&gt;&amp;gt; learn him during I wrote my Tapestry book. He made a great job as technical
&lt;br&gt;&amp;gt; reviewer of the book. From private chat I know he is willing to become a
&lt;br&gt;&amp;gt; Tapestry committer.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ulrich would make a great addition to the team.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Vote to run for three days.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Igor Drobiazko: +1 (non-binding)
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26508505.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26506653</id>
	<title>svn commit: r883963 - /tapestry/tapestry5/branches/5.0/pom.xml</title>
	<published>2009-11-24T18:28:04Z</published>
	<updated>2009-11-24T18:28:04Z</updated>
	<author>
		<name>andyhot-2</name>
	</author>
	<content type="html">Author: andyhot
&lt;br&gt;Date: Wed Nov 25 02:28:03 2009
&lt;br&gt;New Revision: 883963
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=883963&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=883963&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;Unneeded repositories - everything used comes from central
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/pom.xml
&lt;br&gt;&lt;br&gt;Modified: tapestry/tapestry5/branches/5.0/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.0/pom.xml?rev=883963&amp;r1=883962&amp;r2=883963&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.0/pom.xml?rev=883963&amp;r1=883962&amp;r2=883963&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- tapestry/tapestry5/branches/5.0/pom.xml (original)
&lt;br&gt;+++ tapestry/tapestry5/branches/5.0/pom.xml Wed Nov 25 02:28:03 2009
&lt;br&gt;@@ -379,54 +379,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/reporting&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;repositories&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;tapestry&amp;lt;/id&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://tapestry.formos.com/maven-repository&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tapestry.formos.com/maven-repository&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;tapestry-snapshot&amp;lt;/id&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://tapestry.formos.com/maven-snapshot-repository&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tapestry.formos.com/maven-snapshot-repository&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;snapshots&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/snapshots&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- Pick up the selenium JARs. --&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;OpenQA_Release&amp;lt;/id&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;name&amp;gt;OpenQA Release Repository&amp;lt;/name&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://archiva.openqa.org/repository/releases/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://archiva.openqa.org/repository/releases/&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/repository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/repositories&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;pluginRepositories&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;tapestry&amp;lt;/id&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://tapestry.formos.com/maven-repository&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://tapestry.formos.com/maven-repository&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- I believe the Cobertura plugin lives here. --&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;pluginRepository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;id&amp;gt;codehaus.snapshots&amp;lt;/id&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;url&amp;gt;&lt;a href=&quot;http://snapshots.repository.codehaus.org&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://snapshots.repository.codehaus.org&lt;/a&gt;&amp;lt;/url&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/pluginRepository&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;/pluginRepositories&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;!-- Be sure to have the following in your ~/.m2/settings.xml
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;servers&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;server&amp;gt; &amp;lt;id&amp;gt;tapestry&amp;lt;/id&amp;gt; &amp;lt;username&amp;gt;hlship&amp;lt;/username&amp;gt; &amp;nbsp;&amp;lt;/server&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/servers&amp;gt;
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;Adjust for your personal apache.org user name. Otherwise (especially on Windows),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;Maven and ssh trip over the user name when remote logging in.
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;The &amp;lt;id&amp;gt; element below is used to rendevous with server data from settings.xml
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;in order to determine meta-information such as remote username.
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;Don't put your password in settings.xml; just upload to apache.org your
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;public key and make sure to ssh-add before invoking Maven.
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;--&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;distributionManagement&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;site&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r883963----tapestry-tapestry5-branches-5.0-pom.xml-tp26506653p26506653.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26506636</id>
	<title>svn commit: r883959 - /tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml</title>
	<published>2009-11-24T18:24:18Z</published>
	<updated>2009-11-24T18:24:18Z</updated>
	<author>
		<name>andyhot-2</name>
	</author>
	<content type="html">Author: andyhot
&lt;br&gt;Date: Wed Nov 25 02:24:17 2009
&lt;br&gt;New Revision: 883959
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=883959&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=883959&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;revert javassist version - not found in defined repos or central
&lt;br&gt;&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml
&lt;br&gt;&lt;br&gt;Modified: tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml
&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml?rev=883959&amp;r1=883958&amp;r2=883959&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml?rev=883959&amp;r1=883958&amp;r2=883959&amp;view=diff&lt;/a&gt;&lt;br&gt;==============================================================================
&lt;br&gt;--- tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml (original)
&lt;br&gt;+++ tapestry/tapestry5/branches/5.0/tapestry-ioc/pom.xml Wed Nov 25 02:24:17 2009
&lt;br&gt;@@ -27,7 +27,7 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;javassist&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;javassist&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;3.9.0.GA&amp;lt;/version&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;3.8.0.GA&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/dependency&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;dependency&amp;gt;
&lt;br&gt;@@ -117,7 +117,6 @@
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;plugin&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;org.codehaus.mojo&amp;lt;/groupId&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;cobertura-maven-plugin&amp;lt;/artifactId&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;!-- Version 2.1 is broken. --&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;version&amp;gt;${cobertura-plugin-version}&amp;lt;/version&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugin&amp;gt;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/plugins&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r883959----tapestry-tapestry5-branches-5.0-tapestry-ioc-pom.xml-tp26506636p26506636.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26503253</id>
	<title>Re: [VOTE] Ulrich Stärk as Tapestry Committer</title>
	<published>2009-11-24T13:05:25Z</published>
	<updated>2009-11-24T13:05:25Z</updated>
	<author>
		<name>Kevin Menard-4</name>
	</author>
	<content type="html">+1 (non-binding)
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Kevin
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Sat, Nov 21, 2009 at 5:11 PM, Igor Drobiazko &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26503253&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt;wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Ulrich has been very active in the Tapestry community. He is a long-time
&lt;br&gt;&amp;gt; Tapestry user and provided tons high quality patches. I had the pleasure to
&lt;br&gt;&amp;gt; learn him during I wrote my Tapestry book. He made a great job as technical
&lt;br&gt;&amp;gt; reviewer of the book. From private chat I know he is willing to become a
&lt;br&gt;&amp;gt; Tapestry committer.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Ulrich would make a great addition to the team.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Vote to run for three days.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Igor Drobiazko: +1 (non-binding)
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26503253.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26497381</id>
	<title>Re: [VOTE] Ulrich Stärk as Tapestry Committer</title>
	<published>2009-11-24T06:59:16Z</published>
	<updated>2009-11-24T06:59:16Z</updated>
	<author>
		<name>Ben Dotte-2</name>
	</author>
	<content type="html">Ben Dotte: +1 (non-binding)
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 4:51 AM, Andy Blower &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andy.blower@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; +1
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Daniel Jue wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 1:58 AM, Kristian Marinkovic
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kristian.marinkovic@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Thiago H. de Paula Figueiredo&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 22.11.2009 12:40
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Bitte antworten an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Tapestry development&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; An
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;Tapestry development&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Kopie
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thema
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Re: [VOTE] Ulrich Stärk as Tapestry Committer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thiago H. de Paula Figueiredo: +1 (binding)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate consultant, developer,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; and instructor
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina Tecnologia da
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; View this message in context: &lt;a href=&quot;http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26475146.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26475146.html&lt;/a&gt;&lt;br&gt;&amp;gt; Sent from the Tapestry - Dev mailing list archive at Nabble.com.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26497381&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-VOTE--Ulrich-St%C3%A4rk-as-Tapestry-Committer-tp26460864p26497381.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26493906</id>
	<title>Re: issues to be fixed for 5.1.0.6</title>
	<published>2009-11-24T02:56:46Z</published>
	<updated>2009-11-24T02:56:46Z</updated>
	<author>
		<name>Andy Blower</name>
	</author>
	<content type="html">&lt;br&gt;Sure, I get that - I've just been waiting so long for a new release. But if there will be another one soon then that's okay.
&lt;br&gt;&lt;br&gt;&lt;blockquote class=&quot;quote light-black dark-border-color&quot;&gt;&lt;div class=&quot;quote light-border-color&quot;&gt;
&lt;div class=&quot;quote-author&quot; style=&quot;font-weight: bold;&quot;&gt;Igor Drobiazko wrote:&lt;/div&gt;
&lt;div class=&quot;quote-message shrinkable-quote&quot;&gt;I would like to put these changes in a later release. As Ulrich already
&lt;br&gt;pointed out we should release 5.1.0.6 asap. It is only possible iff we
&lt;br&gt;backport already fixed issues. If we &amp;nbsp;would fix the both issues you
&lt;br&gt;suggested somebody else could suggest some other issues. This would delay
&lt;br&gt;the release.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 1:44 PM, Ulrich Stärk &amp;lt;uli@spielviel.de&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; Oh, I missed the one for TAP5-834. I can't judge it though, since I'm not
&lt;br&gt;&amp;gt; familiar with that code or it's implications.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On second thought, TAP5-774 will probably not make it into 5.1.0.6 due to
&lt;br&gt;&amp;gt; another reason: It would break existing applications relying on Tapestry
&lt;br&gt;&amp;gt; encoding &amp; as &amp;amp;. I feel that this shouldn't be in a bugfix release.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Uli
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Am 23.11.2009 13:08 schrieb Andy Blower:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; TAP5-834 does have a patch that I added quite a long time ago. I went to
&lt;br&gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt; trouble so it would make it in the next release. It's disappointing that
&lt;br&gt;&amp;gt;&amp;gt; it's not even been looked at, or noticed even.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; TAP5-773 is a single line change as detailed in the bug report - I didn't
&lt;br&gt;&amp;gt;&amp;gt; think it warranted a patch file, but I can create one if neccessary. As
&lt;br&gt;&amp;gt;&amp;gt; for
&lt;br&gt;&amp;gt;&amp;gt; a test for 773, I'm really not familiar enough with T5's tests and test
&lt;br&gt;&amp;gt;&amp;gt; systems to even know where to start. I may be able to do it with some
&lt;br&gt;&amp;gt;&amp;gt; guidance, like if someone pointed me at where the test for this code is
&lt;br&gt;&amp;gt;&amp;gt; located.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Ulrich Stärk wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; TAP5-815 will be in the 5.1.0.6 release, Robert is just holding it open
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; for the moment.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The other two don't have patches yet and since 5.1.0.6 should be
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; realeased
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; as soon as possible due to TAP5-815, I doubt that they will make it into
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the release. If you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; provide a patch and a test for TAP5-773 though, I'm sure that one of the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; committers will look at it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Shouldn't be that hard since you already have an idea how to fix that.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Cheers,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Uli
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Am 23.11.2009 11:50 schrieb Andy Blower:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; As one of the voices calling for a 5.1 bug fix release I thought I'd
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; take
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; peek at the dev list. Glad to see things are moving, but a bit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; disappointed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; not to see some key (IMO) bugs not on the list.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can I suggest that these are added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-834&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-834&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-773&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-773&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and if possible:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-815&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-815&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Thanks,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Andy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Ulrich Stärk wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For the 5.1.0.6 release, I'd suggest to backport the fixes for the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; following issues:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Bugs:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-913&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-913&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-779&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-779&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-767&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-767&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-755&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-755&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-749&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-749&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-748&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-748&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-734&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-734&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-719&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-719&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-714&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-714&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-711&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-711&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Improvements:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-912&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-912&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-814&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-814&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-764&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-764&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-756&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-756&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-138&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-138&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I already began to integrate the fixes to the 5.1.0.x-dev branch and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; will
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; provide a patch covering those when I'm done.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Uli
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: dev-help@tapestry.apache.org
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: dev-help@tapestry.apache.org
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: dev-unsubscribe@tapestry.apache.org
&lt;br&gt;&amp;gt; For additional commands, e-mail: dev-help@tapestry.apache.org
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/issues-to-be-fixed-for-5.1.0.6-tp26423770p26493906.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26492633</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk:  src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/  tapestry-core/src/main/java/org/apache/tapestry5/services/  tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-24T01:09:47Z</published>
	<updated>2009-11-24T01:09:47Z</updated>
	<author>
		<name>Massimo Lusetti</name>
	</author>
	<content type="html">On Mon, Nov 23, 2009 at 8:53 PM, Ulrich Stärk &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26492633&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uli@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; This will break all applications using chenillekit until the chenillekit
&lt;br&gt;&amp;gt; devs update their code and should be visibly documented somewhere.
&lt;br&gt;&lt;br&gt;We agree too and we have it in our tree a contribution that we will
&lt;br&gt;extend to include everything needed.
&lt;br&gt;&lt;br&gt;Cheers
&lt;br&gt;-- 
&lt;br&gt;Massimo
&lt;br&gt;&lt;a href=&quot;http://meridio.blogspot.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://meridio.blogspot.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26492633&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26492633&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26492633.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26489880</id>
	<title>[jira] Commented: (TAP5-935) Per-script combining configuration</title>
	<published>2009-11-23T19:12:39Z</published>
	<updated>2009-11-23T19:12:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; [ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12781755#action_12781755&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&amp;focusedCommentId=12781755#action_12781755&lt;/a&gt;&amp;nbsp;] 
&lt;br&gt;&lt;br&gt;Raul Montes commented on TAP5-935:
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;One possible solution could be to just add two extra methods to RenderSupport (and one to DocumentLinker) to receive scripts assets/stringURLs that won't be combined (something like RenderSupport#addUncombinableScript(Asset script) ) and store them on a separate List&amp;lt;String&amp;gt; in DocumentLinker.
&lt;br&gt;&lt;br&gt;I'm not sure of what to do with duplicated scripts across this methods. It should go to just the uncombined list I suppose (because if a combinable script is uncombined, it hurts less than combining an uncombinable script).
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Per-script combining configuration
&lt;br&gt;&amp;gt; ----------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-935
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-935&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-935&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Improvement
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Components: tapestry-core
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;Affects Versions: 5.1.0.5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Raul Montes
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Some libraries (like TinyMCE for example) requires to be loaded from its own script tag because they look into its own src to find out the path of other related resources (like themes, languages, images, etc., in TinyMCE case). But if the initializing script of tinyMCE is combined into the virtual asset, it can't figured out its own path and thus fails to load other required resources.
&lt;br&gt;&amp;gt; Because of this problem, I had to disable this great feature, but I think it could be solved if we can set whether a script should be combined or not.
&lt;br&gt;&amp;gt; I put TinyMCE as an example because this library made me disable combined scripts, but the same teqnique is also used by many other libraries as well (as the not modified version of scriptaculous itself) or even in cases when dynamic javascript file generation is needed.
&lt;br&gt;&amp;gt; Regards.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-935%29-Per-script-combining-configuration-tp26487130p26489880.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26487130</id>
	<title>[jira] Created: (TAP5-935) Per-script combining configuration</title>
	<published>2009-11-23T14:23:39Z</published>
	<updated>2009-11-23T14:23:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">Per-script combining configuration
&lt;br&gt;----------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Key: TAP5-935
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-935&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-935&lt;/a&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Project: Tapestry 5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Issue Type: Improvement
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Components: tapestry-core
&lt;br&gt;&amp;nbsp; &amp;nbsp; Affects Versions: 5.1.0.5
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Reporter: Raul Montes
&lt;br&gt;&lt;br&gt;&lt;br&gt;Some libraries (like TinyMCE for example) requires to be loaded from its own script tag because they look into its own src to find out the path of other related resources (like themes, languages, images, etc., in TinyMCE case). But if the initializing script of tinyMCE is combined into the virtual asset, it can't figured out its own path and thus fails to load other required resources.
&lt;br&gt;&lt;br&gt;Because of this problem, I had to disable this great feature, but I think it could be solved if we can set whether a script should be combined or not.
&lt;br&gt;&lt;br&gt;I put TinyMCE as an example because this library made me disable combined scripts, but the same teqnique is also used by many other libraries as well (as the not modified version of scriptaculous itself) or even in cases when dynamic javascript file generation is needed.
&lt;br&gt;&lt;br&gt;Regards.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-935%29-Per-script-combining-configuration-tp26487130p26487130.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26485571</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T12:49:49Z</published>
	<updated>2009-11-23T12:49:49Z</updated>
	<author>
		<name>Igor Drobiazko</name>
	</author>
	<content type="html">It would be also cool if you could reset my account (I forgot my password)
&lt;br&gt;and give me the right to trigger the build manually.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 8:47 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Ok, so far I've created a nightly build (install, no docs) for
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If that's working happy, I'll add one for the other branch ... is that
&lt;br&gt;&amp;gt; 5.1-dev/ or 5.1.0.x-dev/ ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 11:41 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; Not sure what to make of those errors. &amp;nbsp;Some of the IoC stuff has been
&lt;br&gt;&amp;gt; &amp;gt; very rarely flakey, which I took to be limitations of (i.e., bugs in)
&lt;br&gt;&amp;gt; &amp;gt; the tests, or runtime problems related to running in Bamboo.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I'll got set up some CI builds for the other branches.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Mon, Nov 23, 2009 at 11:20 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; fyi, i just sent an email to infra about hudson &amp; selenium...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Also, it looks like tapestry-ioc is a bit unstable - hudson now gives
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; those failures:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; while there's no change that could affect that...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; So, should be jvm version... i think bamboo runs with 1.5, right? i
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; could set hudson to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; use that (unless someone can explain the failures)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard, is it possible to create builds for the branches at formos
&lt;br&gt;&amp;gt; bamboo?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; We need a temporal solution. I also feel uncomfortably to release
&lt;br&gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; without having a single build at CI.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox
&lt;br&gt;&amp;gt; from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; path)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ).
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging
&lt;br&gt;&amp;gt; it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending
&lt;br&gt;&amp;gt; email) -
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; that's why
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to
&lt;br&gt;&amp;gt; use
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with
&lt;br&gt;&amp;gt; the 5.0
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we
&lt;br&gt;&amp;gt; speak.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to
&lt;br&gt;&amp;gt; bamboo?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not
&lt;br&gt;&amp;gt; getting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; those
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or
&lt;br&gt;&amp;gt; anyone) can
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula
&lt;br&gt;&amp;gt; Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security
&lt;br&gt;&amp;gt; issues.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; What if
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are
&lt;br&gt;&amp;gt; willing
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; to do it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate
&lt;br&gt;&amp;gt; consultant,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; developer,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina
&lt;br&gt;&amp;gt; Tecnologia
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; da
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Software com
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; -
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support.
&lt;br&gt;&amp;gt; Contact me
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact
&lt;br&gt;&amp;gt; me to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=33&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=34&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=35&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=36&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=37&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=38&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; &amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=39&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485571&amp;i=40&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26485571.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26485535</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk:  src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/  tapestry-core/src/main/java/org/apache/tapestry5/services/  tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-23T12:47:14Z</published>
	<updated>2009-11-23T12:47:14Z</updated>
	<author>
		<name>Igor Drobiazko</name>
	</author>
	<content type="html">Release notes + maven site.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 8:53 PM, Ulrich Stärk &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485535&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;uli@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; This will break all applications using chenillekit until the chenillekit
&lt;br&gt;&amp;gt; devs update their code and should be visibly documented somewhere.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Uli
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Howard Lewis Ship schrieb:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp;Good catch, and I agree.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 10:07 AM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485535&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I think the contribution &amp;quot;^org/chenillekit/tapestry/&amp;quot; should be removed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the configuration of the RegexpAuthorizer. App developers using
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Chenillekit
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; should contribute it.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 6:23 PM, &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485535&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertdzeigler@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Author: robertdzeigler
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Date: Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; New Revision: 834151
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Log:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; TAP5-815: Asset dispatcher allows any file inside the webapp visible and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; downloadable (5.2 branch)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Modified: tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --- tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++ tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt Mon Nov &amp;nbsp;9
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -138,6 +138,31 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;In addition, context assets will use the URL prefix
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&amp;lt;&amp;lt;/assets/ctx/&amp;gt;&amp;gt;&amp;gt;&amp;lt;app-version&amp;gt;&amp;lt;&amp;lt;&amp;lt;/&amp;gt;&amp;gt;&amp;gt;.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +Securing Assets
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;Securing assets is an important consideration for any web
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; application.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Many assets, such as hibernate configuration
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files, sit in the classpath and are exposable via the Asset service,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; which is not desirable. &amp;nbsp;To protect these and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;other sensitive assets, Tapestry provides the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;This dispatcher sits in front of the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;AssetDispatcher, the service responsible for streaming assets to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; client, and watches for Asset requests.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;When an asset request comes in, the protection dispatcher checks for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; authorization to view the file against a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;contributed list of AssetPathAuthorizer implementations.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Determination
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of whether the client can view the requested
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;resource is then made based on whether any of the contributed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer implementations explicitly allowed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;or denied access to the resource.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;Tapestry provides two AssetPathAuthorizer implemenations &amp;quot;out of the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; box&amp;quot; to which users may contribute: RegexAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;and WhitelistAuthorizer. &amp;nbsp;RegexAuthorizer uses regular expressions to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; determine assets which are viewable by the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;client; any assets that match one of its (contributed) regular
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; expressions are authorized. Anything not matched is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;passed through to the WhitelistAuthorizer. &amp;nbsp;WhitelistAuthorizer uses
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; exact-matching whitelist. &amp;nbsp;Anything matching
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;exactly one its contributions is allowed; all other asset requests
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; denied. &amp;nbsp;The default tapestry configuration
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;contributes nothing to WhitelistAuthorizer (access will be denied to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; all
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; asset requests passed through to it), and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;explicitly allows access to css, jpg, jpeg, js, png, and gif files
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; associated with tapestry (tapestry.js, blackbird
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files, date picker files, etc.). &amp;nbsp;The default contribution also
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; enables
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; access to the css, jpg, jpeg, js, png, and gif
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files provided by the popular chenille-kit 3rd party library. The
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; default configuration denies access to all other
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;assets. &amp;nbsp;To enable access to your application's assets, either
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; contribute a custom AssetPathAnalyzer, or contribute
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;appropriate regular expression or exact path contributions to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; RegexAuthorizer or WhitelistAuthorizer, respectively.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;See TapestryModule.contribteRegexAuthorizer for examples.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Performance Notes
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Assets are expected to be entirely static (not changing while the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; application is deployed). When Tapestry generates a URL
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -146,4 +171,4 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;asset.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;In addition, Tapestry will {{{compress.html}GZIP compress}} the content
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of &amp;lt;all&amp;gt; assets (if the asset
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp;is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; \ No newline at end of file
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.*;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Dispatcher that handles whether to allow or deny access to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; particular
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * assets. Actual work of authorizing a particular url is handled by
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * implementations of AssetPathAuthorizer. Configuration is an ordered
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * list of AssetPathAuthorizers. &amp;nbsp;Each authorizer specifies an order of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * operations as a list (see AssetPathAuthorizer.Order).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcher implements Dispatcher
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Collection&amp;lt;AssetPathAuthorizer&amp;gt; authorizers;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final ClasspathAssetAliasManager assetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Logger logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public AssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClasspathAssetAliasManager manager,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.authorizers = Collections.unmodifiableList(auths);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.assetAliasManager = manager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean dispatch(Request request, Response response)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = request.getPath();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//we only protect assets, and don't examine any other url's.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!path.startsWith(RequestConstants.ASSET_PATH_PREFIX))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = assetAliasManager.toResourcePath(path);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(AssetPathAuthorizer auth : authorizers)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(AssetPathAuthorizer.Order o : auth.order())
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (o == AssetPathAuthorizer.Order.ALLOW)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (auth.accessAllowed(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Allowing access to &amp;quot; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (auth.accessDenied(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Denying access to &amp;quot; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;response.sendError(HttpServletResponse.SC_FORBIDDEN,resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//if we get here, no Authorizer had anything useful to say
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; about
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the resourcePath.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//so let it fall through.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Fell through the list of authorizers. Allowing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; access to: &amp;quot; + resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.regex.Pattern;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Provides a regex-based authorization scheme for asset-access
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; authorization.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Note that this implementation doesn't actually deny access to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; anything.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * But it's placement within the chain of command of authorizers is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; just
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; before
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * the whitelist authorizer, which has an explicit deny policy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Hence, as long as the whitelist authorizer is being used in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; conjunction
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; with
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * the regex authorizer, there is no need to worry about accessDenied
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class RegexAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Collection&amp;lt;Pattern&amp;gt; _regexes;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public RegexAuthorizer(final Collection&amp;lt;String&amp;gt; regex)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//an alternate way to construct this would be to make sure that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; each pattern is grouped
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//and then to regex or the various patterns together into a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; single
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; pattern.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//that might be faster, but probably not enough to make a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; difference, and this is cleaner.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Pattern&amp;gt; tmp = new ArrayList&amp;lt;Pattern&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(String exp : regex)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp.add(Pattern.compile(exp));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_regexes = Collections.unmodifiableCollection(tmp);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(Pattern regex : _regexes)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (regex.matcher(resourcePath).matches())
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Arrays.asList(Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,59 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Map;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.concurrent.ConcurrentHashMap;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * AssetPathAuthorizer that determines access rights based on exact
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; matching to a contributed whitelist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Any resource not explicitly specified in the whitelist is denied
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; access.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Arrays.asList(Order.ALLOW, Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;//hash the resource paths for fast lookups.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Map&amp;lt;String, Boolean&amp;gt; _paths;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public WhitelistAuthorizer(Collection&amp;lt;String&amp;gt; paths)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_paths = new ConcurrentHashMap&amp;lt;String, Boolean&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(String path : paths)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_paths.put(path, true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (_paths.containsKey(resourcePath));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return !_paths.containsKey(resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Determines whether access to an asset is allowed, denied, or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; undetermined.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Each contributed authorizer makes up part of a chain of command for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; determining access.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Access is explicitly allowed if accessAllowed returns true.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Access is explicitly denied if accessDenied returns true.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Ordering depends on the order specified by the &amp;quot;order&amp;quot; parameter.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Hence, an implementation which specifies an order of:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * ALLOW, DENY, and returns true from both accessAllowed and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; accessDenied
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * will allow access for all resources. With the same return values for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * access* methods but the order switched to DENY, ALLOW, access to all
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resources
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * would be denied. &amp;nbsp;It is possible for an authorizer to have &amp;quot;nothing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * to say&amp;quot; regarding a particular resource. &amp;nbsp;If accessAllowed returns
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; false,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * it does not mean that access is denied, merely that it is not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; explicitly allowed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * If accessDenied returns false, it does not mean that access is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; allowed,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; merely that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * it is not explicitly denied. &amp;nbsp;Hence, if both accessAllowed and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; accessDenied return false,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * control will pass to the next authorizer in the chain.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public interface AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Types of orderings, either ALLOW or DENY.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;enum Order {ALLOW, DENY;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Specify the ordering for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return the operations for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Operations will be performed in the order returned by the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; iterator.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * It is assumed that the authorizer correctly implements each form
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * ordering returned. It is acceptable to only return only ALLOW or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; DENY.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;List&amp;lt;Order&amp;gt; order();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Determines whether a request to &amp;quot;resourcePath&amp;quot; is allowed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return true if access is explicitly allowed for the path. False
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resource
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * was listed, and false otherwise. &amp;nbsp;A blacklist implementation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; return
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * false regardless of whether the path was in the blacklist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Alternatively, if the blacklist specified an order of DENY,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ALLOW,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; it could
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * return true from accessAllowed if the resource was not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; explicitly
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; listed in its
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * blacklist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;boolean accessAllowed(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return true if access is explicitly prohibited for the path.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; False
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; resource was
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * not explicitly listed, and false otherwise. A blacklist
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implementation would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * return true if the resource was explicitly denied, and false
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;boolean accessDenied(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -305,6 +305,9 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(PageRenderLinkSource.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; PageRenderLinkSourceImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(ClientInfrastructure.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ClientInfrastructureImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(URLRewriter.class, URLRewriterImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(Dispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.class).withId(&amp;quot;AssetProtectionDispatcher&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WhitelistAuthorizer.class).withId(&amp;quot;WhitelistAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; RegexAuthorizer.class).withId(&amp;quot;RegexAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ========================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -1572,13 +1575,17 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; * and forwards onto {@link PageRenderRequestHandler}&amp;lt;/dd&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;dt&amp;gt;ComponentEvent&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;Identifies the {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; * ComponentEventRequestParameters} and forwards onto the {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ComponentEventRequestHandler}&amp;lt;/dd&amp;gt; &amp;lt;/dl&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp;public static void
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; configuration)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; configuration,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;@InjectService(&amp;quot;AssetProtectionDispatcher&amp;quot;) Dispatcher assetProt)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Looks for the root path and renders the start page. This is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; maintained for compatibility
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// with earlier versions of Tapestry 5, it is recommended that an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Index page be used instead.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.addInstance(&amp;quot;RootPath&amp;quot;, RootPathDispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//this goes before asset to make sure that only allowed assets
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; streamed to the client.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;AssetProtection&amp;quot;, assetProt,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// This goes first because an asset to be streamed may have an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; file
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; extension, such as
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// &amp;quot;.html&amp;quot;, that will confuse the later dispatchers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -1591,6 +1598,7 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.addInstance(&amp;quot;PageRender&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; PageRenderDispatcher.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; * Contributes a default object renderer for type Object, plus
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; specialized renderers for {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; * org.apache.tapestry5.services.Request}, {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.apache.tapestry5.ioc.Location}, {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -2480,4 +2488,41 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;};
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Contributes the default set of AssetPathAuthorizers into the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param whitelist authorization based on explicit whitelisting.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param regex authorization based on pattern matching.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param conf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void contributeAssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@InjectService(&amp;quot;WhitelistAuthorizer&amp;quot;) AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; whitelist,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@InjectService(&amp;quot;RegexAuthorizer&amp;quot;) AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; regex,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OrderedConfiguration&amp;lt;AssetPathAuthorizer&amp;gt; conf)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//putting whitelist after everything ensures that, in fact,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; nothing falls through.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//also ensures that whitelist gives other authorizers the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; chance
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to act...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.add(&amp;quot;regex&amp;quot;,regex,&amp;quot;before:whitelist&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.add(&amp;quot;whitelist&amp;quot;, whitelist,&amp;quot;after:*&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt; regex,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.scriptaculous.path&amp;quot;) String
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; scriptPath,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.blackbird.path&amp;quot;) String
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; blackbirdPath,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.datepicker.path&amp;quot;) String
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; datepickerPath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//allow any js, jpg, jpeg, png, or css under
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org/chenillekit/tapstry. The funky bit of ([^/.]+/)* is what allows
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//multiple paths, while not allowing any of those paths to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; contains ./ or ../ thereby preventing paths like:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//org/chenillekit/tapestry/../../../foo.js
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pathPattern =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;([^/.]+/)*[^/.]+\\.((css)|(js)|(jpg)|(jpeg)|(png)|(gif))$&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;^org/chenillekit/tapestry/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;^org/apache/tapestry5/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(blackbirdPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(datepickerPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(scriptPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//allow access to virtual assets. Critical for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry-combined
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; js files.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;virtual/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -257,4 +257,22 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;ReverseStringsWorker&amp;quot;, new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ReverseStringsWorker());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; configuration) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//use this rather than a blanket regex (^.*.jpg$, etc.); want
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; be sure that tests pass from the default
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//configuration setup, (eg: this way, I realized that the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;virtual&amp;quot; assets folder
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//needed to be opened up in the tapestry-provided
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; contributions)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; rather than from some blanket configuration in the appmodule
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//opening up all css, js, etc. files.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//would contribute to whitelist except that the resource path
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; between ctxt and the rest of the path can change.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/css/app\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/style\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bg\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/header\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightsmall\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightbig\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bottom\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/footer\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/images/tapestry_banner\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/images/asf_logo_wide\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.createMock;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.expect;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.*;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; org.apache.tapestry5.internal.services.AssetProtectionDispatcher;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.ClasspathAssetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Request;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Response;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcherTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void ignores_nonassets() throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//shouldn't need any configuration here...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths = Collections.emptyList();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,null,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(request.getPath()).andReturn(&amp;quot;start&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;replay(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verify(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void checks_authorizers() throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ArrayList&amp;lt;AssetPathAuthorizer&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetPathAuthorizer auth =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; createMock(AssetPathAuthorizer.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(auth.order()).andReturn(Arrays.asList(AssetPathAuthorizer.Order.ALLOW,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.DENY)).times(2);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(auth.accessAllowed(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(false);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(auth.accessDenied(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(auth.accessAllowed(&amp;quot;/org/apache/tapestry/default.css&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;auths.add(auth);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Denying access to /cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Allowing access to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; /org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response.sendError(HttpServletResponse.SC_FORBIDDEN,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClasspathAssetAliasManager manager =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; createMock(ClasspathAssetAliasManager.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(manager.toResourcePath(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;)).andReturn(&amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(manager.toResourcePath(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.andReturn(&amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;replay(auth,request,response,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(disp.dispatch(request,response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verify(auth,request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,53 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RegexAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class RegexAuthorizerTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void test_regexes()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; patterns =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Arrays.asList(&amp;quot;^.*\\.png$&amp;quot;,&amp;quot;^.*\\.jpg&amp;quot;,&amp;quot;^.*\\.jpeg&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RegexAuthorizer auth = new RegexAuthorizer(patterns);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pkg = &amp;quot;assets/com/saiwaisolutions/resources/&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String png = pkg + &amp;quot;foo.png&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpg = pkg + &amp;quot;foo.jpg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpeg = pkg + &amp;quot;foo.jpeg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String xml = pkg + &amp;quot;foo.xml&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,png,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,jpg,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,jpeg,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,xml,false);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private static void test(RegexAuthorizer auth, String one,boolean
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; allowed)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.accessAllowed(one),allowed);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;auth.accessAllowed(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;allowed);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(one));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(&amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,45 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +/*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + * Created on Jul 28, 2007
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.WhitelistAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizerTest extends Assert {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void run()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WhitelistAuthorizer auth = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; WhitelistAuthorizer(Arrays.asList(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().get(0),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().get(1),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().size(),2);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(auth.accessAllowed(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessAllowed(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(auth.accessDenied(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485535&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485535&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26485535.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26485512</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T12:45:20Z</published>
	<updated>2009-11-23T12:45:20Z</updated>
	<author>
		<name>Igor Drobiazko</name>
	</author>
	<content type="html">Thanks. It is 5.1.0.x-dev.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 8:47 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Ok, so far I've created a nightly build (install, no docs) for
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; If that's working happy, I'll add one for the other branch ... is that
&lt;br&gt;&amp;gt; 5.1-dev/ or 5.1.0.x-dev/ ?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 11:41 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; Not sure what to make of those errors. &amp;nbsp;Some of the IoC stuff has been
&lt;br&gt;&amp;gt; &amp;gt; very rarely flakey, which I took to be limitations of (i.e., bugs in)
&lt;br&gt;&amp;gt; &amp;gt; the tests, or runtime problems related to running in Bamboo.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; I'll got set up some CI builds for the other branches.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On Mon, Nov 23, 2009 at 11:20 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; fyi, i just sent an email to infra about hudson &amp; selenium...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Also, it looks like tapestry-ioc is a bit unstable - hudson now gives
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; those failures:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; while there's no change that could affect that...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; So, should be jvm version... i think bamboo runs with 1.5, right? i
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; could set hudson to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; use that (unless someone can explain the failures)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard, is it possible to create builds for the branches at formos
&lt;br&gt;&amp;gt; bamboo?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; We need a temporal solution. I also feel uncomfortably to release
&lt;br&gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; without having a single build at CI.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox
&lt;br&gt;&amp;gt; from
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; path)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ).
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging
&lt;br&gt;&amp;gt; it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending
&lt;br&gt;&amp;gt; email) -
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; that's why
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to
&lt;br&gt;&amp;gt; use
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in
&lt;br&gt;&amp;gt; a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with
&lt;br&gt;&amp;gt; the 5.0
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we
&lt;br&gt;&amp;gt; speak.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to
&lt;br&gt;&amp;gt; bamboo?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures
&lt;br&gt;&amp;gt; in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not
&lt;br&gt;&amp;gt; getting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; those
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or
&lt;br&gt;&amp;gt; anyone) can
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula
&lt;br&gt;&amp;gt; Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security
&lt;br&gt;&amp;gt; issues.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; What if
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are
&lt;br&gt;&amp;gt; willing
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; to do it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate
&lt;br&gt;&amp;gt; consultant,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; developer,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina
&lt;br&gt;&amp;gt; Tecnologia
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; da
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Software com
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; -
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support.
&lt;br&gt;&amp;gt; Contact me
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact
&lt;br&gt;&amp;gt; me to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=33&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=34&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=35&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=36&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=37&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=38&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; &amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=39&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26485512&amp;i=40&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26485512.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484729</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk: 	src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ 	tapestry-core/src/main/java/org/apache/tapestry5/services/ tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-23T11:53:19Z</published>
	<updated>2009-11-23T11:53:19Z</updated>
	<author>
		<name>Ulrich Stärk</name>
	</author>
	<content type="html">This will break all applications using chenillekit until the chenillekit 
&lt;br&gt;devs update their code and should be visibly documented somewhere.
&lt;br&gt;&lt;br&gt;Uli
&lt;br&gt;&lt;br&gt;Howard Lewis Ship schrieb:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Good catch, and I agree.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 10:07 AM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484729&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; I think the contribution &amp;quot;^org/chenillekit/tapestry/&amp;quot; should be removed from
&lt;br&gt;&amp;gt;&amp;gt; the configuration of the RegexpAuthorizer. App developers using Chenillekit
&lt;br&gt;&amp;gt;&amp;gt; should contribute it.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 9, 2009 at 6:23 PM, &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484729&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertdzeigler@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Author: robertdzeigler
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Date: Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; New Revision: 834151
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Log:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; TAP5-815: Asset dispatcher allows any file inside the webapp visible and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; downloadable (5.2 branch)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp;tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Modified: tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --- tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++ tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt Mon Nov &amp;nbsp;9
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -138,6 +138,31 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; In addition, context assets will use the URL prefix
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&amp;lt;&amp;lt;/assets/ctx/&amp;gt;&amp;gt;&amp;gt;&amp;lt;app-version&amp;gt;&amp;lt;&amp;lt;&amp;lt;/&amp;gt;&amp;gt;&amp;gt;.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +Securing Assets
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;Securing assets is an important consideration for any web application.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Many assets, such as hibernate configuration
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files, sit in the classpath and are exposable via the Asset service,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; which is not desirable. &amp;nbsp;To protect these and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;other sensitive assets, Tapestry provides the AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;This dispatcher sits in front of the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;AssetDispatcher, the service responsible for streaming assets to the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; client, and watches for Asset requests.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;When an asset request comes in, the protection dispatcher checks for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; authorization to view the file against a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;contributed list of AssetPathAuthorizer implementations. &amp;nbsp;Determination
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; of whether the client can view the requested
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;resource is then made based on whether any of the contributed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer implementations explicitly allowed
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;or denied access to the resource.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;Tapestry provides two AssetPathAuthorizer implemenations &amp;quot;out of the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; box&amp;quot; to which users may contribute: RegexAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;and WhitelistAuthorizer. &amp;nbsp;RegexAuthorizer uses regular expressions to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; determine assets which are viewable by the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;client; any assets that match one of its (contributed) regular
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; expressions are authorized. Anything not matched is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;passed through to the WhitelistAuthorizer. &amp;nbsp;WhitelistAuthorizer uses an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; exact-matching whitelist. &amp;nbsp;Anything matching
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;exactly one its contributions is allowed; all other asset requests are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; denied. &amp;nbsp;The default tapestry configuration
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;contributes nothing to WhitelistAuthorizer (access will be denied to all
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; asset requests passed through to it), and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;explicitly allows access to css, jpg, jpeg, js, png, and gif files
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; associated with tapestry (tapestry.js, blackbird
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files, date picker files, etc.). &amp;nbsp;The default contribution also enables
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; access to the css, jpg, jpeg, js, png, and gif
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;files provided by the popular chenille-kit 3rd party library. The
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; default configuration denies access to all other
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;assets. &amp;nbsp;To enable access to your application's assets, either
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; contribute a custom AssetPathAnalyzer, or contribute
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;appropriate regular expression or exact path contributions to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; RegexAuthorizer or WhitelistAuthorizer, respectively.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;See TapestryModule.contribteRegexAuthorizer for examples.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;Performance Notes
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; Assets are expected to be entirely static (not changing while the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; application is deployed). When Tapestry generates a URL
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -146,4 +171,4 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; asset.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; In addition, Tapestry will {{{compress.html}GZIP compress}} the content
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; of &amp;lt;all&amp;gt; assets (if the asset
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp;is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; \ No newline at end of file
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp;is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.*;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Dispatcher that handles whether to allow or deny access to particular
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * assets. Actual work of authorizing a particular url is handled by
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * implementations of AssetPathAuthorizer. Configuration is an ordered
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * list of AssetPathAuthorizers. &amp;nbsp;Each authorizer specifies an order of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * operations as a list (see AssetPathAuthorizer.Order).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcher implements Dispatcher
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Collection&amp;lt;AssetPathAuthorizer&amp;gt; authorizers;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final ClasspathAssetAliasManager assetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Logger logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public AssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClasspathAssetAliasManager manager,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.authorizers = Collections.unmodifiableList(auths);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.assetAliasManager = manager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;this.logger = logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean dispatch(Request request, Response response)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String path = request.getPath();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//we only protect assets, and don't examine any other url's.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!path.startsWith(RequestConstants.ASSET_PATH_PREFIX))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String resourcePath = assetAliasManager.toResourcePath(path);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(AssetPathAuthorizer auth : authorizers)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(AssetPathAuthorizer.Order o : auth.order())
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (o == AssetPathAuthorizer.Order.ALLOW)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (auth.accessAllowed(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Allowing access to &amp;quot; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (auth.accessDenied(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Denying access to &amp;quot; + resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;response.sendError(HttpServletResponse.SC_FORBIDDEN,resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//if we get here, no Authorizer had anything useful to say about
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the resourcePath.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//so let it fall through.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Fell through the list of authorizers. Allowing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; access to: &amp;quot; + resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.regex.Pattern;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Provides a regex-based authorization scheme for asset-access
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; authorization.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Note that this implementation doesn't actually deny access to anything.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * But it's placement within the chain of command of authorizers is just
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; before
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * the whitelist authorizer, which has an explicit deny policy.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Hence, as long as the whitelist authorizer is being used in conjunction
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; with
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * the regex authorizer, there is no need to worry about accessDenied in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class RegexAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Collection&amp;lt;Pattern&amp;gt; _regexes;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public RegexAuthorizer(final Collection&amp;lt;String&amp;gt; regex)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//an alternate way to construct this would be to make sure that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; each pattern is grouped
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//and then to regex or the various patterns together into a single
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; pattern.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//that might be faster, but probably not enough to make a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; difference, and this is cleaner.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;Pattern&amp;gt; tmp = new ArrayList&amp;lt;Pattern&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(String exp : regex)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;tmp.add(Pattern.compile(exp));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_regexes = Collections.unmodifiableCollection(tmp);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(Pattern regex : _regexes)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (regex.matcher(resourcePath).matches())
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return true;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return false;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Arrays.asList(Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,59 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Map;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.concurrent.ConcurrentHashMap;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * AssetPathAuthorizer that determines access rights based on exact
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; matching to a contributed whitelist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Any resource not explicitly specified in the whitelist is denied
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; access.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return Arrays.asList(Order.ALLOW, Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;//hash the resource paths for fast lookups.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private final Map&amp;lt;String, Boolean&amp;gt; _paths;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public WhitelistAuthorizer(Collection&amp;lt;String&amp;gt; paths)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_paths = new ConcurrentHashMap&amp;lt;String, Boolean&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for(String path : paths)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_paths.put(path, true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return (_paths.containsKey(resourcePath));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return !_paths.containsKey(resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Determines whether access to an asset is allowed, denied, or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; undetermined.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Each contributed authorizer makes up part of a chain of command for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; determining access.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Access is explicitly allowed if accessAllowed returns true.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Access is explicitly denied if accessDenied returns true.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Ordering depends on the order specified by the &amp;quot;order&amp;quot; parameter.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Hence, an implementation which specifies an order of:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * ALLOW, DENY, and returns true from both accessAllowed and accessDenied
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * will allow access for all resources. With the same return values for
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * access* methods but the order switched to DENY, ALLOW, access to all
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resources
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * would be denied. &amp;nbsp;It is possible for an authorizer to have &amp;quot;nothing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * to say&amp;quot; regarding a particular resource. &amp;nbsp;If accessAllowed returns
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; false,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * it does not mean that access is denied, merely that it is not
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; explicitly allowed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * If accessDenied returns false, it does not mean that access is allowed,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; merely that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * it is not explicitly denied. &amp;nbsp;Hence, if both accessAllowed and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; accessDenied return false,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * control will pass to the next authorizer in the chain.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public interface AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Types of orderings, either ALLOW or DENY.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;enum Order {ALLOW, DENY;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Specify the ordering for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return the operations for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Operations will be performed in the order returned by the iterator.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * It is assumed that the authorizer correctly implements each form of
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * ordering returned. It is acceptable to only return only ALLOW or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; DENY.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;List&amp;lt;Order&amp;gt; order();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Determines whether a request to &amp;quot;resourcePath&amp;quot; is allowed.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return true if access is explicitly allowed for the path. False
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resource
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * was listed, and false otherwise. &amp;nbsp;A blacklist implementation would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; return
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * false regardless of whether the path was in the blacklist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Alternatively, if the blacklist specified an order of DENY, ALLOW,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; it could
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * return true from accessAllowed if the resource was not explicitly
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; listed in its
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * blacklist.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;boolean accessAllowed(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @return true if access is explicitly prohibited for the path. False
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; resource was
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * not explicitly listed, and false otherwise. A blacklist
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implementation would
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * return true if the resource was explicitly denied, and false
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;boolean accessDenied(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -305,6 +305,9 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; binder.bind(PageRenderLinkSource.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; PageRenderLinkSourceImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; binder.bind(ClientInfrastructure.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ClientInfrastructureImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; binder.bind(URLRewriter.class, URLRewriterImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(Dispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.class).withId(&amp;quot;AssetProtectionDispatcher&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; WhitelistAuthorizer.class).withId(&amp;quot;WhitelistAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; RegexAuthorizer.class).withId(&amp;quot;RegexAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; //
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ========================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -1572,13 +1575,17 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* and forwards onto {@link PageRenderRequestHandler}&amp;lt;/dd&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;dt&amp;gt;ComponentEvent&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;Identifies the {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* ComponentEventRequestParameters} and forwards onto the {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ComponentEventRequestHandler}&amp;lt;/dd&amp;gt; &amp;lt;/dl&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;*/
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; - &amp;nbsp; &amp;nbsp;public static void
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt; configuration)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt; configuration,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;@InjectService(&amp;quot;AssetProtectionDispatcher&amp;quot;) Dispatcher assetProt)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Looks for the root path and renders the start page. This is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; maintained for compatibility
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // with earlier versions of Tapestry 5, it is recommended that an
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Index page be used instead.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; configuration.addInstance(&amp;quot;RootPath&amp;quot;, RootPathDispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//this goes before asset to make sure that only allowed assets are
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; streamed to the client.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;AssetProtection&amp;quot;, assetProt, &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // This goes first because an asset to be streamed may have an file
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; extension, such as
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // &amp;quot;.html&amp;quot;, that will confuse the later dispatchers.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -1591,6 +1598,7 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; configuration.addInstance(&amp;quot;PageRender&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; PageRenderDispatcher.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; /**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* Contributes a default object renderer for type Object, plus
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; specialized renderers for {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;* org.apache.tapestry5.services.Request}, {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; org.apache.tapestry5.ioc.Location}, {@link
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -2480,4 +2488,41 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;/**
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * Contributes the default set of AssetPathAuthorizers into the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param whitelist authorization based on explicit whitelisting.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param regex authorization based on pattern matching.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; * @param conf
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void contributeAssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@InjectService(&amp;quot;WhitelistAuthorizer&amp;quot;) AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; whitelist,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@InjectService(&amp;quot;RegexAuthorizer&amp;quot;) AssetPathAuthorizer regex,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;OrderedConfiguration&amp;lt;AssetPathAuthorizer&amp;gt; conf)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//putting whitelist after everything ensures that, in fact,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; nothing falls through.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//also ensures that whitelist gives other authorizers the chance
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to act...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.add(&amp;quot;regex&amp;quot;,regex,&amp;quot;before:whitelist&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;conf.add(&amp;quot;whitelist&amp;quot;, whitelist,&amp;quot;after:*&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt; regex,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.scriptaculous.path&amp;quot;) String scriptPath,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.blackbird.path&amp;quot;) String blackbirdPath,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@Symbol(&amp;quot;tapestry.datepicker.path&amp;quot;) String datepickerPath)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//allow any js, jpg, jpeg, png, or css under
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; org/chenillekit/tapstry. The funky bit of ([^/.]+/)* is what allows
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//multiple paths, while not allowing any of those paths to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; contains ./ or ../ thereby preventing paths like:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//org/chenillekit/tapestry/../../../foo.js
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pathPattern =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;([^/.]+/)*[^/.]+\\.((css)|(js)|(jpg)|(jpeg)|(png)|(gif))$&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;^org/chenillekit/tapestry/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;^org/apache/tapestry5/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(blackbirdPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(datepickerPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(scriptPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//allow access to virtual assets. Critical for tapestry-combined
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; js files.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;regex.add(&amp;quot;virtual/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -257,4 +257,22 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; configuration.add(&amp;quot;ReverseStringsWorker&amp;quot;, new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ReverseStringsWorker());
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp; &amp;nbsp; }
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public static void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; configuration) {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//use this rather than a blanket regex (^.*.jpg$, etc.); want to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; be sure that tests pass from the default
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//configuration setup, (eg: this way, I realized that the
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;virtual&amp;quot; assets folder
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//needed to be opened up in the tapestry-provided contributions)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; rather than from some blanket configuration in the appmodule
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//opening up all css, js, etc. files.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//would contribute to whitelist except that the resource path
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; between ctxt and the rest of the path can change.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/css/app\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/style\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bg\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/header\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightsmall\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightbig\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bottom\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/layout/images/footer\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/images/tapestry_banner\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configuration.add(&amp;quot;^ctx/[^/]+/images/asf_logo_wide\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.createMock;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.expect;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.*;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.AssetProtectionDispatcher;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.ClasspathAssetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Request;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Response;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcherTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void ignores_nonassets() throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//shouldn't need any configuration here...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths = Collections.emptyList();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,null,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(request.getPath()).andReturn(&amp;quot;start&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;replay(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verify(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void checks_authorizers() throws IOException
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;AssetPathAuthorizer&amp;gt; auths = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ArrayList&amp;lt;AssetPathAuthorizer&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetPathAuthorizer auth = createMock(AssetPathAuthorizer.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(auth.order()).andReturn(Arrays.asList(AssetPathAuthorizer.Order.ALLOW,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.DENY)).times(2);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(auth.accessAllowed(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(false);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(auth.accessDenied(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(auth.accessAllowed(&amp;quot;/org/apache/tapestry/default.css&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;auths.add(auth);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Denying access to /cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;logger.debug(&amp;quot;Allowing access to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; /org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;nbsp;expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;response.sendError(HttpServletResponse.SC_FORBIDDEN,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ClasspathAssetAliasManager manager =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; createMock(ClasspathAssetAliasManager.class);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(manager.toResourcePath(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;)).andReturn(&amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect(manager.toResourcePath(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;))
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;.andReturn(&amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;replay(auth,request,response,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(disp.dispatch(request,response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;verify(auth,request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,53 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RegexAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class RegexAuthorizerTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void test_regexes()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;List&amp;lt;String&amp;gt; patterns =
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Arrays.asList(&amp;quot;^.*\\.png$&amp;quot;,&amp;quot;^.*\\.jpg&amp;quot;,&amp;quot;^.*\\.jpeg&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RegexAuthorizer auth = new RegexAuthorizer(patterns);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String pkg = &amp;quot;assets/com/saiwaisolutions/resources/&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String png = pkg + &amp;quot;foo.png&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpg = pkg + &amp;quot;foo.jpg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String jpeg = pkg + &amp;quot;foo.jpeg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;String xml = pkg + &amp;quot;foo.xml&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,png,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,jpg,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,jpeg,true);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;test(auth,xml,false);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;private static void test(RegexAuthorizer auth, String one,boolean
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; allowed)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.accessAllowed(one),allowed);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;auth.accessAllowed(
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;allowed);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(one));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(&amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Mon Nov &amp;nbsp;9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; @@ -0,0 +1,45 @@
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +/*
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + * Created on Jul 28, 2007
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.WhitelistAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizerTest extends Assert {
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;@Test
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;public void run()
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;{
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WhitelistAuthorizer auth = new
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; WhitelistAuthorizer(Arrays.asList(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().get(0),
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().get(1), AssetPathAuthorizer.Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertEquals(auth.order().size(),2);
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(auth.accessAllowed(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessDenied(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertFalse(auth.accessAllowed(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;assertTrue(auth.accessDenied(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; + &amp;nbsp; &amp;nbsp;}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;/div&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484729&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484729&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26484729.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484637</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T11:47:54Z</published>
	<updated>2009-11-23T11:47:54Z</updated>
	<author>
		<name>Howard Lewis Ship</name>
	</author>
	<content type="html">Ok, so far I've created a nightly build (install, no docs) for
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/tapestry/tapestry5/branches/5.0&lt;/a&gt;&lt;br&gt;&lt;br&gt;If that's working happy, I'll add one for the other branch ... is that
&lt;br&gt;5.1-dev/ or 5.1.0.x-dev/ ?
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 11:41 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Not sure what to make of those errors.  Some of the IoC stuff has been
&lt;br&gt;&amp;gt; very rarely flakey, which I took to be limitations of (i.e., bugs in)
&lt;br&gt;&amp;gt; the tests, or runtime problems related to running in Bamboo.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'll got set up some CI builds for the other branches.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 11:20 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; fyi, i just sent an email to infra about hudson &amp; selenium...
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Also, it looks like tapestry-ioc is a bit unstable - hudson now gives
&lt;br&gt;&amp;gt;&amp;gt; those failures:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; while there's no change that could affect that...
&lt;br&gt;&amp;gt;&amp;gt; So, should be jvm version... i think bamboo runs with 1.5, right? i
&lt;br&gt;&amp;gt;&amp;gt; could set hudson to
&lt;br&gt;&amp;gt;&amp;gt; use that (unless someone can explain the failures)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Howard, is it possible to create builds for the branches at formos bamboo?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; We need a temporal solution. I also feel uncomfortably to release 5.1.0.6
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; without having a single build at CI.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; path)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending email) -
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; that's why
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to use
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with the 5.0
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we speak.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to bamboo?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not getting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; those
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or anyone) can
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security issues.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What if
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; release
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are willing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to do it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate consultant,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; developer,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina Tecnologia
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; da
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Software com
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=33&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=34&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=35&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=36&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=37&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Howard M. Lewis Ship
&lt;br&gt;&lt;br&gt;Creator of Apache Tapestry
&lt;br&gt;&lt;br&gt;The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&lt;br&gt;(971) 678-5210
&lt;br&gt;&lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=38&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484637&amp;i=39&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26484637.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484533</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T11:41:04Z</published>
	<updated>2009-11-23T11:41:04Z</updated>
	<author>
		<name>Howard Lewis Ship</name>
	</author>
	<content type="html">Not sure what to make of those errors. &amp;nbsp;Some of the IoC stuff has been
&lt;br&gt;very rarely flakey, which I took to be limitations of (i.e., bugs in)
&lt;br&gt;the tests, or runtime problems related to running in Bamboo.
&lt;br&gt;&lt;br&gt;I'll got set up some CI builds for the other branches.
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 11:20 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; fyi, i just sent an email to infra about hudson &amp; selenium...
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Also, it looks like tapestry-ioc is a bit unstable - hudson now gives
&lt;br&gt;&amp;gt; those failures:
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&lt;/a&gt;&lt;br&gt;&amp;gt; while there's no change that could affect that...
&lt;br&gt;&amp;gt; So, should be jvm version... i think bamboo runs with 1.5, right? i
&lt;br&gt;&amp;gt; could set hudson to
&lt;br&gt;&amp;gt; use that (unless someone can explain the failures)
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; Howard, is it possible to create builds for the branches at formos bamboo?
&lt;br&gt;&amp;gt;&amp;gt; We need a temporal solution. I also feel uncomfortably to release 5.1.0.6
&lt;br&gt;&amp;gt;&amp;gt; without having a single build at CI.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox from
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; path)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending email) -
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; that's why
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to use
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in a
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with the 5.0
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we speak.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to bamboo?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; I
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not getting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; those
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or anyone) can
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security issues.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; What if
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; release
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are willing
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to do it
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate consultant,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; developer,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina Tecnologia
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; da
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Software com
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=33&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=34&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=35&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=36&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Howard M. Lewis Ship
&lt;br&gt;&lt;br&gt;Creator of Apache Tapestry
&lt;br&gt;&lt;br&gt;The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&lt;br&gt;(971) 678-5210
&lt;br&gt;&lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=37&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484533&amp;i=38&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26484533.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484494</id>
	<title>Re: svn commit: r834151 - in /tapestry/tapestry5/trunk:  src/site/apt/guide/ tapestry-core/src/main/java/org/apache/tapestry5/internal/services/  tapestry-core/src/main/java/org/apache/tapestry5/services/  tapestry-core/src/test/java/org/apache/tapestry</title>
	<published>2009-11-23T11:37:53Z</published>
	<updated>2009-11-23T11:37:53Z</updated>
	<author>
		<name>Howard Lewis Ship</name>
	</author>
	<content type="html">Good catch, and I agree.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 10:07 AM, Igor Drobiazko
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484494&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I think the contribution &amp;quot;^org/chenillekit/tapestry/&amp;quot; should be removed from
&lt;br&gt;&amp;gt; the configuration of the RegexpAuthorizer. App developers using Chenillekit
&lt;br&gt;&amp;gt; should contribute it.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 9, 2009 at 6:23 PM, &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484494&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;robertdzeigler@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Author: robertdzeigler
&lt;br&gt;&amp;gt;&amp;gt; Date: Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; New Revision: 834151
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=834151&amp;view=rev&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; Log:
&lt;br&gt;&amp;gt;&amp;gt; TAP5-815: Asset dispatcher allows any file inside the webapp visible and
&lt;br&gt;&amp;gt;&amp;gt; downloadable (5.2 branch)
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt;    tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;  tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Modified: tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; --- tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt (original)
&lt;br&gt;&amp;gt;&amp;gt; +++ tapestry/tapestry5/trunk/src/site/apt/guide/assets.apt Mon Nov  9
&lt;br&gt;&amp;gt;&amp;gt; 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -138,6 +138,31 @@
&lt;br&gt;&amp;gt;&amp;gt;   In addition, context assets will use the URL prefix
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&amp;lt;&amp;lt;/assets/ctx/&amp;gt;&amp;gt;&amp;gt;&amp;lt;app-version&amp;gt;&amp;lt;&amp;lt;&amp;lt;/&amp;gt;&amp;gt;&amp;gt;.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; +Securing Assets
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +  Securing assets is an important consideration for any web application.
&lt;br&gt;&amp;gt;&amp;gt;  Many assets, such as hibernate configuration
&lt;br&gt;&amp;gt;&amp;gt; +  files, sit in the classpath and are exposable via the Asset service,
&lt;br&gt;&amp;gt;&amp;gt; which is not desirable.  To protect these and
&lt;br&gt;&amp;gt;&amp;gt; +  other sensitive assets, Tapestry provides the AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt;  This dispatcher sits in front of the
&lt;br&gt;&amp;gt;&amp;gt; +  AssetDispatcher, the service responsible for streaming assets to the
&lt;br&gt;&amp;gt;&amp;gt; client, and watches for Asset requests.
&lt;br&gt;&amp;gt;&amp;gt; +  When an asset request comes in, the protection dispatcher checks for
&lt;br&gt;&amp;gt;&amp;gt; authorization to view the file against a
&lt;br&gt;&amp;gt;&amp;gt; +  contributed list of AssetPathAuthorizer implementations.  Determination
&lt;br&gt;&amp;gt;&amp;gt; of whether the client can view the requested
&lt;br&gt;&amp;gt;&amp;gt; +  resource is then made based on whether any of the contributed
&lt;br&gt;&amp;gt;&amp;gt; AssetPathAuthorizer implementations explicitly allowed
&lt;br&gt;&amp;gt;&amp;gt; +  or denied access to the resource.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +  Tapestry provides two AssetPathAuthorizer implemenations &amp;quot;out of the
&lt;br&gt;&amp;gt;&amp;gt; box&amp;quot; to which users may contribute: RegexAuthorizer
&lt;br&gt;&amp;gt;&amp;gt; +  and WhitelistAuthorizer.  RegexAuthorizer uses regular expressions to
&lt;br&gt;&amp;gt;&amp;gt; determine assets which are viewable by the
&lt;br&gt;&amp;gt;&amp;gt; +  client; any assets that match one of its (contributed) regular
&lt;br&gt;&amp;gt;&amp;gt; expressions are authorized. Anything not matched is
&lt;br&gt;&amp;gt;&amp;gt; +  passed through to the WhitelistAuthorizer.  WhitelistAuthorizer uses an
&lt;br&gt;&amp;gt;&amp;gt; exact-matching whitelist.  Anything matching
&lt;br&gt;&amp;gt;&amp;gt; +  exactly one its contributions is allowed; all other asset requests are
&lt;br&gt;&amp;gt;&amp;gt; denied.  The default tapestry configuration
&lt;br&gt;&amp;gt;&amp;gt; +  contributes nothing to WhitelistAuthorizer (access will be denied to all
&lt;br&gt;&amp;gt;&amp;gt; asset requests passed through to it), and
&lt;br&gt;&amp;gt;&amp;gt; +  explicitly allows access to css, jpg, jpeg, js, png, and gif files
&lt;br&gt;&amp;gt;&amp;gt; associated with tapestry (tapestry.js, blackbird
&lt;br&gt;&amp;gt;&amp;gt; +  files, date picker files, etc.).  The default contribution also enables
&lt;br&gt;&amp;gt;&amp;gt; access to the css, jpg, jpeg, js, png, and gif
&lt;br&gt;&amp;gt;&amp;gt; +  files provided by the popular chenille-kit 3rd party library. The
&lt;br&gt;&amp;gt;&amp;gt; default configuration denies access to all other
&lt;br&gt;&amp;gt;&amp;gt; +  assets.  To enable access to your application's assets, either
&lt;br&gt;&amp;gt;&amp;gt; contribute a custom AssetPathAnalyzer, or contribute
&lt;br&gt;&amp;gt;&amp;gt; +  appropriate regular expression or exact path contributions to
&lt;br&gt;&amp;gt;&amp;gt; RegexAuthorizer or WhitelistAuthorizer, respectively.
&lt;br&gt;&amp;gt;&amp;gt; +  See TapestryModule.contribteRegexAuthorizer for examples.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  Performance Notes
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   Assets are expected to be entirely static (not changing while the
&lt;br&gt;&amp;gt;&amp;gt; application is deployed). When Tapestry generates a URL
&lt;br&gt;&amp;gt;&amp;gt; @@ -146,4 +171,4 @@
&lt;br&gt;&amp;gt;&amp;gt;   asset.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;   In addition, Tapestry will {{{compress.html}GZIP compress}} the content
&lt;br&gt;&amp;gt;&amp;gt; of &amp;lt;all&amp;gt; assets (if the asset
&lt;br&gt;&amp;gt;&amp;gt; -  is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt; \ No newline at end of file
&lt;br&gt;&amp;gt;&amp;gt; +  is compressable, and the client supports it).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcher.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.*;
&lt;br&gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt; + * Dispatcher that handles whether to allow or deny access to particular
&lt;br&gt;&amp;gt;&amp;gt; + * assets. Actual work of authorizing a particular url is handled by
&lt;br&gt;&amp;gt;&amp;gt; + * implementations of AssetPathAuthorizer. Configuration is an ordered
&lt;br&gt;&amp;gt;&amp;gt; + * list of AssetPathAuthorizers.  Each authorizer specifies an order of
&lt;br&gt;&amp;gt;&amp;gt; + * operations as a list (see AssetPathAuthorizer.Order).
&lt;br&gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcher implements Dispatcher
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    private final Collection&amp;lt;AssetPathAuthorizer&amp;gt; authorizers;
&lt;br&gt;&amp;gt;&amp;gt; +    private final ClasspathAssetAliasManager assetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt; +    private final Logger logger;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public AssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt; +            List&amp;lt;AssetPathAuthorizer&amp;gt; auths,
&lt;br&gt;&amp;gt;&amp;gt; +            ClasspathAssetAliasManager manager,
&lt;br&gt;&amp;gt;&amp;gt; +            Logger logger)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        this.authorizers = Collections.unmodifiableList(auths);
&lt;br&gt;&amp;gt;&amp;gt; +        this.assetAliasManager = manager;
&lt;br&gt;&amp;gt;&amp;gt; +        this.logger = logger;
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public boolean dispatch(Request request, Response response)
&lt;br&gt;&amp;gt;&amp;gt; +            throws IOException
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        String path = request.getPath();
&lt;br&gt;&amp;gt;&amp;gt; +        //we only protect assets, and don't examine any other url's.
&lt;br&gt;&amp;gt;&amp;gt; +        if (!path.startsWith(RequestConstants.ASSET_PATH_PREFIX))
&lt;br&gt;&amp;gt;&amp;gt; +        {
&lt;br&gt;&amp;gt;&amp;gt; +            return false;
&lt;br&gt;&amp;gt;&amp;gt; +        }
&lt;br&gt;&amp;gt;&amp;gt; +        String resourcePath = assetAliasManager.toResourcePath(path);
&lt;br&gt;&amp;gt;&amp;gt; +        for(AssetPathAuthorizer auth : authorizers)
&lt;br&gt;&amp;gt;&amp;gt; +        {
&lt;br&gt;&amp;gt;&amp;gt; +            for(AssetPathAuthorizer.Order o : auth.order())
&lt;br&gt;&amp;gt;&amp;gt; +            {
&lt;br&gt;&amp;gt;&amp;gt; +                if (o == AssetPathAuthorizer.Order.ALLOW)
&lt;br&gt;&amp;gt;&amp;gt; +                {
&lt;br&gt;&amp;gt;&amp;gt; +                    if (auth.accessAllowed(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt; +                    {
&lt;br&gt;&amp;gt;&amp;gt; +                        logger.debug(&amp;quot;Allowing access to &amp;quot; +
&lt;br&gt;&amp;gt;&amp;gt; resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +                        return false;
&lt;br&gt;&amp;gt;&amp;gt; +                    }
&lt;br&gt;&amp;gt;&amp;gt; +                }
&lt;br&gt;&amp;gt;&amp;gt; +                else
&lt;br&gt;&amp;gt;&amp;gt; +                {
&lt;br&gt;&amp;gt;&amp;gt; +                    if (auth.accessDenied(resourcePath))
&lt;br&gt;&amp;gt;&amp;gt; +                    {
&lt;br&gt;&amp;gt;&amp;gt; +                        logger.debug(&amp;quot;Denying access to &amp;quot; + resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  response.sendError(HttpServletResponse.SC_FORBIDDEN,resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +                        return true;
&lt;br&gt;&amp;gt;&amp;gt; +                    }
&lt;br&gt;&amp;gt;&amp;gt; +                }
&lt;br&gt;&amp;gt;&amp;gt; +            }
&lt;br&gt;&amp;gt;&amp;gt; +        }
&lt;br&gt;&amp;gt;&amp;gt; +        //if we get here, no Authorizer had anything useful to say about
&lt;br&gt;&amp;gt;&amp;gt; the resourcePath.
&lt;br&gt;&amp;gt;&amp;gt; +        //so let it fall through.
&lt;br&gt;&amp;gt;&amp;gt; +        logger.debug(&amp;quot;Fell through the list of authorizers. Allowing
&lt;br&gt;&amp;gt;&amp;gt; access to: &amp;quot; + resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +        return false;
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/RegexAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.regex.Pattern;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt; + * Provides a regex-based authorization scheme for asset-access
&lt;br&gt;&amp;gt;&amp;gt; authorization.
&lt;br&gt;&amp;gt;&amp;gt; + * Note that this implementation doesn't actually deny access to anything.
&lt;br&gt;&amp;gt;&amp;gt; + * But it's placement within the chain of command of authorizers is just
&lt;br&gt;&amp;gt;&amp;gt; before
&lt;br&gt;&amp;gt;&amp;gt; + * the whitelist authorizer, which has an explicit deny policy.
&lt;br&gt;&amp;gt;&amp;gt; + * Hence, as long as the whitelist authorizer is being used in conjunction
&lt;br&gt;&amp;gt;&amp;gt; with
&lt;br&gt;&amp;gt;&amp;gt; + * the regex authorizer, there is no need to worry about accessDenied in
&lt;br&gt;&amp;gt;&amp;gt; this authorizer.
&lt;br&gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt; +public class RegexAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    private final Collection&amp;lt;Pattern&amp;gt; _regexes;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public RegexAuthorizer(final Collection&amp;lt;String&amp;gt; regex)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        //an alternate way to construct this would be to make sure that
&lt;br&gt;&amp;gt;&amp;gt; each pattern is grouped
&lt;br&gt;&amp;gt;&amp;gt; +        //and then to regex or the various patterns together into a single
&lt;br&gt;&amp;gt;&amp;gt; pattern.
&lt;br&gt;&amp;gt;&amp;gt; +        //that might be faster, but probably not enough to make a
&lt;br&gt;&amp;gt;&amp;gt; difference, and this is cleaner.
&lt;br&gt;&amp;gt;&amp;gt; +        List&amp;lt;Pattern&amp;gt; tmp = new ArrayList&amp;lt;Pattern&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt; +        for(String exp : regex)
&lt;br&gt;&amp;gt;&amp;gt; +        {
&lt;br&gt;&amp;gt;&amp;gt; +            tmp.add(Pattern.compile(exp));
&lt;br&gt;&amp;gt;&amp;gt; +        }
&lt;br&gt;&amp;gt;&amp;gt; +        _regexes = Collections.unmodifiableCollection(tmp);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        for(Pattern regex : _regexes)
&lt;br&gt;&amp;gt;&amp;gt; +        {
&lt;br&gt;&amp;gt;&amp;gt; +            if (regex.matcher(resourcePath).matches())
&lt;br&gt;&amp;gt;&amp;gt; +            {
&lt;br&gt;&amp;gt;&amp;gt; +                return true;
&lt;br&gt;&amp;gt;&amp;gt; +            }
&lt;br&gt;&amp;gt;&amp;gt; +        }
&lt;br&gt;&amp;gt;&amp;gt; +        return false;
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        return false;
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        return Arrays.asList(Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/WhitelistAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,59 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collection;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Map;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.concurrent.ConcurrentHashMap;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt; + * AssetPathAuthorizer that determines access rights based on exact
&lt;br&gt;&amp;gt;&amp;gt; matching to a contributed whitelist.
&lt;br&gt;&amp;gt;&amp;gt; + * Any resource not explicitly specified in the whitelist is denied
&lt;br&gt;&amp;gt;&amp;gt; access.
&lt;br&gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizer implements AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public List&amp;lt;Order&amp;gt; order()
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        return Arrays.asList(Order.ALLOW, Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    //hash the resource paths for fast lookups.
&lt;br&gt;&amp;gt;&amp;gt; +    private final Map&amp;lt;String, Boolean&amp;gt; _paths;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public WhitelistAuthorizer(Collection&amp;lt;String&amp;gt; paths)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        _paths = new ConcurrentHashMap&amp;lt;String, Boolean&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt; +        for(String path : paths)
&lt;br&gt;&amp;gt;&amp;gt; +        {
&lt;br&gt;&amp;gt;&amp;gt; +            _paths.put(path, true);
&lt;br&gt;&amp;gt;&amp;gt; +        }
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public boolean accessAllowed(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        return (_paths.containsKey(resourcePath));
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public boolean accessDenied(String resourcePath)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        return !_paths.containsKey(resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/AssetPathAuthorizer.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,76 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +/**
&lt;br&gt;&amp;gt;&amp;gt; + * Determines whether access to an asset is allowed, denied, or
&lt;br&gt;&amp;gt;&amp;gt; undetermined.
&lt;br&gt;&amp;gt;&amp;gt; + * Each contributed authorizer makes up part of a chain of command for
&lt;br&gt;&amp;gt;&amp;gt; determining access.
&lt;br&gt;&amp;gt;&amp;gt; + * Access is explicitly allowed if accessAllowed returns true.
&lt;br&gt;&amp;gt;&amp;gt; + * Access is explicitly denied if accessDenied returns true.
&lt;br&gt;&amp;gt;&amp;gt; + * Ordering depends on the order specified by the &amp;quot;order&amp;quot; parameter.
&lt;br&gt;&amp;gt;&amp;gt; + * Hence, an implementation which specifies an order of:
&lt;br&gt;&amp;gt;&amp;gt; + * ALLOW, DENY, and returns true from both accessAllowed and accessDenied
&lt;br&gt;&amp;gt;&amp;gt; + * will allow access for all resources. With the same return values for
&lt;br&gt;&amp;gt;&amp;gt; the
&lt;br&gt;&amp;gt;&amp;gt; + * access* methods but the order switched to DENY, ALLOW, access to all
&lt;br&gt;&amp;gt;&amp;gt; resources
&lt;br&gt;&amp;gt;&amp;gt; + * would be denied.  It is possible for an authorizer to have &amp;quot;nothing
&lt;br&gt;&amp;gt;&amp;gt; + * to say&amp;quot; regarding a particular resource.  If accessAllowed returns
&lt;br&gt;&amp;gt;&amp;gt; false,
&lt;br&gt;&amp;gt;&amp;gt; + * it does not mean that access is denied, merely that it is not
&lt;br&gt;&amp;gt;&amp;gt; explicitly allowed.
&lt;br&gt;&amp;gt;&amp;gt; + * If accessDenied returns false, it does not mean that access is allowed,
&lt;br&gt;&amp;gt;&amp;gt; merely that
&lt;br&gt;&amp;gt;&amp;gt; + * it is not explicitly denied.  Hence, if both accessAllowed and
&lt;br&gt;&amp;gt;&amp;gt; accessDenied return false,
&lt;br&gt;&amp;gt;&amp;gt; + * control will pass to the next authorizer in the chain.
&lt;br&gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt; +public interface AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    /**
&lt;br&gt;&amp;gt;&amp;gt; +     * Types of orderings, either ALLOW or DENY.
&lt;br&gt;&amp;gt;&amp;gt; +     */
&lt;br&gt;&amp;gt;&amp;gt; +    enum Order {ALLOW, DENY;}
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    /**
&lt;br&gt;&amp;gt;&amp;gt; +     * Specify the ordering for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt; +     * @return the operations for this authorizer.
&lt;br&gt;&amp;gt;&amp;gt; +     * Operations will be performed in the order returned by the iterator.
&lt;br&gt;&amp;gt;&amp;gt; +     * It is assumed that the authorizer correctly implements each form of
&lt;br&gt;&amp;gt;&amp;gt; +     * ordering returned. It is acceptable to only return only ALLOW or
&lt;br&gt;&amp;gt;&amp;gt; DENY.
&lt;br&gt;&amp;gt;&amp;gt; +     */
&lt;br&gt;&amp;gt;&amp;gt; +    List&amp;lt;Order&amp;gt; order();
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    /**
&lt;br&gt;&amp;gt;&amp;gt; +     * Determines whether a request to &amp;quot;resourcePath&amp;quot; is allowed.
&lt;br&gt;&amp;gt;&amp;gt; +     * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt; +     * @return true if access is explicitly allowed for the path. False
&lt;br&gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt; +     * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt; resource
&lt;br&gt;&amp;gt;&amp;gt; +     * was listed, and false otherwise.  A blacklist implementation would
&lt;br&gt;&amp;gt;&amp;gt; return
&lt;br&gt;&amp;gt;&amp;gt; +     * false regardless of whether the path was in the blacklist.
&lt;br&gt;&amp;gt;&amp;gt; +     * Alternatively, if the blacklist specified an order of DENY, ALLOW,
&lt;br&gt;&amp;gt;&amp;gt; it could
&lt;br&gt;&amp;gt;&amp;gt; +     * return true from accessAllowed if the resource was not explicitly
&lt;br&gt;&amp;gt;&amp;gt; listed in its
&lt;br&gt;&amp;gt;&amp;gt; +     * blacklist.
&lt;br&gt;&amp;gt;&amp;gt; +     */
&lt;br&gt;&amp;gt;&amp;gt; +    boolean accessAllowed(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    /**
&lt;br&gt;&amp;gt;&amp;gt; +     *
&lt;br&gt;&amp;gt;&amp;gt; +     * @param resourcePath
&lt;br&gt;&amp;gt;&amp;gt; +     * @return true if access is explicitly prohibited for the path. False
&lt;br&gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt; +     * For example, a whitelist implementation would return true if the
&lt;br&gt;&amp;gt;&amp;gt; resource was
&lt;br&gt;&amp;gt;&amp;gt; +     * not explicitly listed, and false otherwise. A blacklist
&lt;br&gt;&amp;gt;&amp;gt; implementation would
&lt;br&gt;&amp;gt;&amp;gt; +     * return true if the resource was explicitly denied, and false
&lt;br&gt;&amp;gt;&amp;gt; otherwise.
&lt;br&gt;&amp;gt;&amp;gt; +     */
&lt;br&gt;&amp;gt;&amp;gt; +    boolean accessDenied(String resourcePath);
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/TapestryModule.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -305,6 +305,9 @@
&lt;br&gt;&amp;gt;&amp;gt;         binder.bind(PageRenderLinkSource.class,
&lt;br&gt;&amp;gt;&amp;gt; PageRenderLinkSourceImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;         binder.bind(ClientInfrastructure.class,
&lt;br&gt;&amp;gt;&amp;gt; ClientInfrastructureImpl.class);
&lt;br&gt;&amp;gt;&amp;gt;         binder.bind(URLRewriter.class, URLRewriterImpl.class);
&lt;br&gt;&amp;gt;&amp;gt; +        binder.bind(Dispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.class).withId(&amp;quot;AssetProtectionDispatcher&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt; WhitelistAuthorizer.class).withId(&amp;quot;WhitelistAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        binder.bind(AssetPathAuthorizer.class,
&lt;br&gt;&amp;gt;&amp;gt; RegexAuthorizer.class).withId(&amp;quot;RegexAuthorizer&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;     }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;     //
&lt;br&gt;&amp;gt;&amp;gt; ========================================================================
&lt;br&gt;&amp;gt;&amp;gt; @@ -1572,13 +1575,17 @@
&lt;br&gt;&amp;gt;&amp;gt;      * and forwards onto {@link PageRenderRequestHandler}&amp;lt;/dd&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;dt&amp;gt;ComponentEvent&amp;lt;/dt&amp;gt; &amp;lt;dd&amp;gt;Identifies the {@link
&lt;br&gt;&amp;gt;&amp;gt;      * ComponentEventRequestParameters} and forwards onto the {@link
&lt;br&gt;&amp;gt;&amp;gt; ComponentEventRequestHandler}&amp;lt;/dd&amp;gt; &amp;lt;/dl&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;      */
&lt;br&gt;&amp;gt;&amp;gt; -    public static void
&lt;br&gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt; configuration)
&lt;br&gt;&amp;gt;&amp;gt; +    public static void
&lt;br&gt;&amp;gt;&amp;gt; contributeMasterDispatcher(OrderedConfiguration&amp;lt;Dispatcher&amp;gt; configuration,
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  @InjectService(&amp;quot;AssetProtectionDispatcher&amp;quot;) Dispatcher assetProt)
&lt;br&gt;&amp;gt;&amp;gt;     {
&lt;br&gt;&amp;gt;&amp;gt;         // Looks for the root path and renders the start page. This is
&lt;br&gt;&amp;gt;&amp;gt; maintained for compatibility
&lt;br&gt;&amp;gt;&amp;gt;         // with earlier versions of Tapestry 5, it is recommended that an
&lt;br&gt;&amp;gt;&amp;gt; Index page be used instead.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;         configuration.addInstance(&amp;quot;RootPath&amp;quot;, RootPathDispatcher.class,
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; +        //this goes before asset to make sure that only allowed assets are
&lt;br&gt;&amp;gt;&amp;gt; streamed to the client.
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;AssetProtection&amp;quot;, assetProt, &amp;quot;before:Asset&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;         // This goes first because an asset to be streamed may have an file
&lt;br&gt;&amp;gt;&amp;gt; extension, such as
&lt;br&gt;&amp;gt;&amp;gt;         // &amp;quot;.html&amp;quot;, that will confuse the later dispatchers.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; @@ -1591,6 +1598,7 @@
&lt;br&gt;&amp;gt;&amp;gt;         configuration.addInstance(&amp;quot;PageRender&amp;quot;,
&lt;br&gt;&amp;gt;&amp;gt; PageRenderDispatcher.class);
&lt;br&gt;&amp;gt;&amp;gt;     }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;     /**
&lt;br&gt;&amp;gt;&amp;gt;      * Contributes a default object renderer for type Object, plus
&lt;br&gt;&amp;gt;&amp;gt; specialized renderers for {@link
&lt;br&gt;&amp;gt;&amp;gt;      * org.apache.tapestry5.services.Request}, {@link
&lt;br&gt;&amp;gt;&amp;gt; org.apache.tapestry5.ioc.Location}, {@link
&lt;br&gt;&amp;gt;&amp;gt; @@ -2480,4 +2488,41 @@
&lt;br&gt;&amp;gt;&amp;gt;         };
&lt;br&gt;&amp;gt;&amp;gt;     }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; +    /**
&lt;br&gt;&amp;gt;&amp;gt; +     * Contributes the default set of AssetPathAuthorizers into the
&lt;br&gt;&amp;gt;&amp;gt; AssetProtectionDispatcher.
&lt;br&gt;&amp;gt;&amp;gt; +     * @param whitelist authorization based on explicit whitelisting.
&lt;br&gt;&amp;gt;&amp;gt; +     * @param regex authorization based on pattern matching.
&lt;br&gt;&amp;gt;&amp;gt; +     * @param conf
&lt;br&gt;&amp;gt;&amp;gt; +     */
&lt;br&gt;&amp;gt;&amp;gt; +    public static void contributeAssetProtectionDispatcher(
&lt;br&gt;&amp;gt;&amp;gt; +            @InjectService(&amp;quot;WhitelistAuthorizer&amp;quot;) AssetPathAuthorizer
&lt;br&gt;&amp;gt;&amp;gt; whitelist,
&lt;br&gt;&amp;gt;&amp;gt; +            @InjectService(&amp;quot;RegexAuthorizer&amp;quot;) AssetPathAuthorizer regex,
&lt;br&gt;&amp;gt;&amp;gt; +            OrderedConfiguration&amp;lt;AssetPathAuthorizer&amp;gt; conf)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        //putting whitelist after everything ensures that, in fact,
&lt;br&gt;&amp;gt;&amp;gt; nothing falls through.
&lt;br&gt;&amp;gt;&amp;gt; +        //also ensures that whitelist gives other authorizers the chance
&lt;br&gt;&amp;gt;&amp;gt; to act...
&lt;br&gt;&amp;gt;&amp;gt; +        conf.add(&amp;quot;regex&amp;quot;,regex,&amp;quot;before:whitelist&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        conf.add(&amp;quot;whitelist&amp;quot;, whitelist,&amp;quot;after:*&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt; regex,
&lt;br&gt;&amp;gt;&amp;gt; +                @Symbol(&amp;quot;tapestry.scriptaculous.path&amp;quot;) String scriptPath,
&lt;br&gt;&amp;gt;&amp;gt; +                @Symbol(&amp;quot;tapestry.blackbird.path&amp;quot;) String blackbirdPath,
&lt;br&gt;&amp;gt;&amp;gt; +                @Symbol(&amp;quot;tapestry.datepicker.path&amp;quot;) String datepickerPath)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        //allow any js, jpg, jpeg, png, or css under
&lt;br&gt;&amp;gt;&amp;gt; org/chenillekit/tapstry. The funky bit of ([^/.]+/)* is what allows
&lt;br&gt;&amp;gt;&amp;gt; +        //multiple paths, while not allowing any of those paths to
&lt;br&gt;&amp;gt;&amp;gt; contains ./ or ../ thereby preventing paths like:
&lt;br&gt;&amp;gt;&amp;gt; +        //org/chenillekit/tapestry/../../../foo.js
&lt;br&gt;&amp;gt;&amp;gt; +        String pathPattern =
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;([^/.]+/)*[^/.]+\\.((css)|(js)|(jpg)|(jpeg)|(png)|(gif))$&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(&amp;quot;^org/chenillekit/tapestry/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(&amp;quot;^org/apache/tapestry5/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(blackbirdPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(datepickerPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(scriptPath + &amp;quot;/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +        //allow access to virtual assets. Critical for tapestry-combined
&lt;br&gt;&amp;gt;&amp;gt; js files.
&lt;br&gt;&amp;gt;&amp;gt; +        regex.add(&amp;quot;virtual/&amp;quot; + pathPattern);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Modified:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java?rev=834151&amp;r1=834150&amp;r2=834151&amp;view=diff&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt; (original)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/services/AppModule.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -257,4 +257,22 @@
&lt;br&gt;&amp;gt;&amp;gt;     {
&lt;br&gt;&amp;gt;&amp;gt;         configuration.add(&amp;quot;ReverseStringsWorker&amp;quot;, new
&lt;br&gt;&amp;gt;&amp;gt; ReverseStringsWorker());
&lt;br&gt;&amp;gt;&amp;gt;     }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    public static void contributeRegexAuthorizer(Configuration&amp;lt;String&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; configuration) {
&lt;br&gt;&amp;gt;&amp;gt; +        //use this rather than a blanket regex (^.*.jpg$, etc.); want to
&lt;br&gt;&amp;gt;&amp;gt; be sure that tests pass from the default
&lt;br&gt;&amp;gt;&amp;gt; +        //configuration setup, (eg: this way, I realized that the
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;virtual&amp;quot; assets folder
&lt;br&gt;&amp;gt;&amp;gt; +        //needed to be opened up in the tapestry-provided contributions)
&lt;br&gt;&amp;gt;&amp;gt; rather than from some blanket configuration in the appmodule
&lt;br&gt;&amp;gt;&amp;gt; +        //opening up all css, js, etc. files.
&lt;br&gt;&amp;gt;&amp;gt; +        //would contribute to whitelist except that the resource path
&lt;br&gt;&amp;gt;&amp;gt; between ctxt and the rest of the path can change.
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/css/app\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/style\\.css$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bg\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/header\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightsmall\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/rightbig\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/bottom\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/layout/images/footer\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/images/tapestry_banner\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        configuration.add(&amp;quot;^ctx/[^/]+/images/asf_logo_wide\\.gif$&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt;  }
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/AssetProtectionDispatcherTest.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,92 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.createMock;
&lt;br&gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.expect;
&lt;br&gt;&amp;gt;&amp;gt; +import static org.easymock.EasyMock.*;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.io.IOException;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.ArrayList;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Collections;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import javax.servlet.http.HttpServletResponse;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RequestConstants;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.AssetProtectionDispatcher;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.ClasspathAssetAliasManager;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Request;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.Response;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt; +import org.slf4j.Logger;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +public class AssetProtectionDispatcherTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    @Test
&lt;br&gt;&amp;gt;&amp;gt; +    public void ignores_nonassets() throws IOException
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        //shouldn't need any configuration here...
&lt;br&gt;&amp;gt;&amp;gt; +        List&amp;lt;AssetPathAuthorizer&amp;gt; auths = Collections.emptyList();
&lt;br&gt;&amp;gt;&amp;gt; +        Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt; +        AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,null,logger);
&lt;br&gt;&amp;gt;&amp;gt; +        Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt; +        expect(request.getPath()).andReturn(&amp;quot;start&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt; +        replay(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt; +        verify(request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    @Test
&lt;br&gt;&amp;gt;&amp;gt; +    public void checks_authorizers() throws IOException
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        Logger logger = createMock(Logger.class);
&lt;br&gt;&amp;gt;&amp;gt; +        List&amp;lt;AssetPathAuthorizer&amp;gt; auths = new
&lt;br&gt;&amp;gt;&amp;gt; ArrayList&amp;lt;AssetPathAuthorizer&amp;gt;();
&lt;br&gt;&amp;gt;&amp;gt; +        AssetPathAuthorizer auth = createMock(AssetPathAuthorizer.class);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  expect(auth.order()).andReturn(Arrays.asList(AssetPathAuthorizer.Order.ALLOW,
&lt;br&gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.DENY)).times(2);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        expect(auth.accessAllowed(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(false);
&lt;br&gt;&amp;gt;&amp;gt; +        expect(auth.accessDenied(&amp;quot;/cayenne.xml&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  expect(auth.accessAllowed(&amp;quot;/org/apache/tapestry/default.css&amp;quot;)).andReturn(true);
&lt;br&gt;&amp;gt;&amp;gt; +        auths.add(auth);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        logger.debug(&amp;quot;Denying access to /cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        logger.debug(&amp;quot;Allowing access to
&lt;br&gt;&amp;gt;&amp;gt; /org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        Request request = createMock(Request.class);
&lt;br&gt;&amp;gt;&amp;gt; +        Response response = createMock(Response.class);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt;  expect(request.getPath()).andReturn(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        response.sendError(HttpServletResponse.SC_FORBIDDEN,
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        ClasspathAssetAliasManager manager =
&lt;br&gt;&amp;gt;&amp;gt; createMock(ClasspathAssetAliasManager.class);
&lt;br&gt;&amp;gt;&amp;gt; +        expect(manager.toResourcePath(RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;/cayenne.xml&amp;quot;)).andReturn(&amp;quot;/cayenne.xml&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        expect(manager.toResourcePath(
&lt;br&gt;&amp;gt;&amp;gt; +                RequestConstants.ASSET_PATH_PREFIX +
&lt;br&gt;&amp;gt;&amp;gt; &amp;quot;/org/apache/tapestry/default.css&amp;quot;))
&lt;br&gt;&amp;gt;&amp;gt; +            .andReturn(&amp;quot;/org/apache/tapestry/default.css&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        replay(auth,request,response,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt; +        AssetProtectionDispatcher disp = new
&lt;br&gt;&amp;gt;&amp;gt; AssetProtectionDispatcher(auths,manager,logger);
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        assertTrue(disp.dispatch(request,response));
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(disp.dispatch(request, response));
&lt;br&gt;&amp;gt;&amp;gt; +        verify(auth,request,response,logger);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/RegexAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,53 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.List;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.RegexAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +public class RegexAuthorizerTest extends Assert
&lt;br&gt;&amp;gt;&amp;gt; +{
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    @Test
&lt;br&gt;&amp;gt;&amp;gt; +    public void test_regexes()
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        List&amp;lt;String&amp;gt; patterns =
&lt;br&gt;&amp;gt;&amp;gt; Arrays.asList(&amp;quot;^.*\\.png$&amp;quot;,&amp;quot;^.*\\.jpg&amp;quot;,&amp;quot;^.*\\.jpeg&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +        RegexAuthorizer auth = new RegexAuthorizer(patterns);
&lt;br&gt;&amp;gt;&amp;gt; +        String pkg = &amp;quot;assets/com/saiwaisolutions/resources/&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        String png = pkg + &amp;quot;foo.png&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        String jpg = pkg + &amp;quot;foo.jpg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        String jpeg = pkg + &amp;quot;foo.jpeg&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        String xml = pkg + &amp;quot;foo.xml&amp;quot;;
&lt;br&gt;&amp;gt;&amp;gt; +        test(auth,png,true);
&lt;br&gt;&amp;gt;&amp;gt; +        test(auth,jpg,true);
&lt;br&gt;&amp;gt;&amp;gt; +        test(auth,jpeg,true);
&lt;br&gt;&amp;gt;&amp;gt; +        test(auth,xml,false);
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    private static void test(RegexAuthorizer auth, String one,boolean
&lt;br&gt;&amp;gt;&amp;gt; allowed)
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        assertEquals(auth.accessAllowed(one),allowed);
&lt;br&gt;&amp;gt;&amp;gt; +        assertEquals(
&lt;br&gt;&amp;gt;&amp;gt; +                auth.accessAllowed(
&lt;br&gt;&amp;gt;&amp;gt; +                        &amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one),
&lt;br&gt;&amp;gt;&amp;gt; +                allowed);
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(auth.accessDenied(one));
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(auth.accessDenied(&amp;quot;&lt;a href=&quot;http://localhost:8080&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://localhost:8080&lt;/a&gt;&amp;quot; + one));
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Added:
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; URL:
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java?rev=834151&amp;view=auto&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ==============================================================================
&lt;br&gt;&amp;gt;&amp;gt; ---
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; (added)
&lt;br&gt;&amp;gt;&amp;gt; +++
&lt;br&gt;&amp;gt;&amp;gt; tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/WhitelistAuthorizerTest.java
&lt;br&gt;&amp;gt;&amp;gt; Mon Nov  9 17:23:10 2009
&lt;br&gt;&amp;gt;&amp;gt; @@ -0,0 +1,45 @@
&lt;br&gt;&amp;gt;&amp;gt; +// Copyright 2009 The Apache Software Foundation
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);
&lt;br&gt;&amp;gt;&amp;gt; +// you may not use this file except in compliance with the License.
&lt;br&gt;&amp;gt;&amp;gt; +// You may obtain a copy of the License at
&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +//      &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.apache.org/licenses/LICENSE-2.0&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; +//
&lt;br&gt;&amp;gt;&amp;gt; +// Unless required by applicable law or agreed to in writing, software
&lt;br&gt;&amp;gt;&amp;gt; +// distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,
&lt;br&gt;&amp;gt;&amp;gt; +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
&lt;br&gt;&amp;gt;&amp;gt; implied.
&lt;br&gt;&amp;gt;&amp;gt; +// See the License for the specific language governing permissions and
&lt;br&gt;&amp;gt;&amp;gt; +// limitations under the License.
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +/*
&lt;br&gt;&amp;gt;&amp;gt; + * Created on Jul 28, 2007
&lt;br&gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt; + *
&lt;br&gt;&amp;gt;&amp;gt; + */
&lt;br&gt;&amp;gt;&amp;gt; +package org.apache.tapestry5.internal.services;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import java.util.Arrays;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.Assert;
&lt;br&gt;&amp;gt;&amp;gt; +import org.testng.annotations.Test;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.internal.services.WhitelistAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +import org.apache.tapestry5.services.AssetPathAuthorizer;
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +public class WhitelistAuthorizerTest extends Assert {
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +    @Test
&lt;br&gt;&amp;gt;&amp;gt; +    public void run()
&lt;br&gt;&amp;gt;&amp;gt; +    {
&lt;br&gt;&amp;gt;&amp;gt; +        WhitelistAuthorizer auth = new
&lt;br&gt;&amp;gt;&amp;gt; WhitelistAuthorizer(Arrays.asList(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt; +        assertEquals(auth.order().get(0),
&lt;br&gt;&amp;gt;&amp;gt; AssetPathAuthorizer.Order.ALLOW);
&lt;br&gt;&amp;gt;&amp;gt; +        assertEquals(auth.order().get(1), AssetPathAuthorizer.Order.DENY);
&lt;br&gt;&amp;gt;&amp;gt; +        assertEquals(auth.order().size(),2);
&lt;br&gt;&amp;gt;&amp;gt; +        assertTrue(auth.accessAllowed(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(auth.accessDenied(&amp;quot;foo&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +        assertFalse(auth.accessAllowed(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt; +        assertTrue(auth.accessDenied(&amp;quot;bar&amp;quot;));
&lt;br&gt;&amp;gt;&amp;gt; +    }
&lt;br&gt;&amp;gt;&amp;gt; +
&lt;br&gt;&amp;gt;&amp;gt; +}
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Howard M. Lewis Ship
&lt;br&gt;&lt;br&gt;Creator of Apache Tapestry
&lt;br&gt;&lt;br&gt;The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&lt;br&gt;(971) 678-5210
&lt;br&gt;&lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484494&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484494&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Re%3A-svn-commit%3A-r834151---in--tapestry-tapestry5-trunk%3A--src-site-apt-guide--tapestry-core-src-main-java-org-apache-tapestry5-internal-services---tapestry-core-src-main-java-org-apache-tapestry5-services---tapestry-core-src-test-java-org-apache-tapestry-tp26483150p26484494.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484260</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T11:20:32Z</published>
	<updated>2009-11-23T11:20:32Z</updated>
	<author>
		<name>Andreas Andreou-4</name>
	</author>
	<content type="html">fyi, i just sent an email to infra about hudson &amp; selenium...
&lt;br&gt;&lt;br&gt;Also, it looks like tapestry-ioc is a bit unstable - hudson now gives
&lt;br&gt;those failures:
&lt;br&gt;&lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-5.1-trunk/org.apache.tapestry$tapestry-ioc/4/testReport/&lt;/a&gt;&lt;br&gt;while there's no change that could affect that...
&lt;br&gt;So, should be jvm version... i think bamboo runs with 1.5, right? i
&lt;br&gt;could set hudson to
&lt;br&gt;use that (unless someone can explain the failures)
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 8:58 PM, Igor Drobiazko
&lt;br&gt;&amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Howard, is it possible to create builds for the branches at formos bamboo?
&lt;br&gt;&amp;gt; We need a temporal solution. I also feel uncomfortably to release 5.1.0.6
&lt;br&gt;&amp;gt; without having a single build at CI.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox from
&lt;br&gt;&amp;gt;&amp;gt; path)
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as a
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; ).
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging it
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending email) -
&lt;br&gt;&amp;gt;&amp;gt; that's why
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to use
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in a
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with the 5.0
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we speak.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to bamboo?
&lt;br&gt;&amp;gt;&amp;gt; I
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures in
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not getting
&lt;br&gt;&amp;gt;&amp;gt; those
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or anyone) can
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security issues.
&lt;br&gt;&amp;gt;&amp;gt; What if
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt;&amp;gt; release
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are willing
&lt;br&gt;&amp;gt;&amp;gt; to do it
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate consultant,
&lt;br&gt;&amp;gt;&amp;gt; developer,
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina Tecnologia
&lt;br&gt;&amp;gt;&amp;gt; da
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt;&amp;gt; Software com
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me
&lt;br&gt;&amp;gt;&amp;gt; to
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=32&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=33&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;Tapestry / Tacos developer
&lt;br&gt;Open Source / JEE Consulting
&lt;br&gt;&lt;br&gt;---------------------------------------------------------------------
&lt;br&gt;To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=34&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26484260&amp;i=35&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26484260.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484069</id>
	<title>svn commit: r883465 - in /tapestry/tapestry5/branches/5.0: tapestry-annotations/ tapestry-annotations/.classpath tapestry-annotations/.project tapestry-test/ tapestry-test/.classpath tapestry-test/.project</title>
	<published>2009-11-23T11:07:31Z</published>
	<updated>2009-11-23T11:07:31Z</updated>
	<author>
		<name>andyhot-2</name>
	</author>
	<content type="html">Author: andyhot
&lt;br&gt;Date: Mon Nov 23 19:07:31 2009
&lt;br&gt;New Revision: 883465
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=883465&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=883465&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;TAP5-819: some more ide files ignored (5.0)
&lt;br&gt;&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-annotations/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-annotations/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-test/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-test/.project
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-annotations/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.0/tapestry-test/ &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.0/tapestry-annotations/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:07:31 2009
&lt;br&gt;@@ -1 +1,4 @@
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.0/tapestry-test/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:07:31 2009
&lt;br&gt;@@ -1,2 +1,5 @@
&lt;br&gt;&amp;nbsp;bin
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r883465---in--tapestry-tapestry5-branches-5.0%3A-tapestry-annotations--tapestry-annotations-.classpath-tapestry-annotations-.project-tapestry-test--tapestry-test-.classpath-tapestry-test-.project-tp26484069p26484069.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26484006</id>
	<title>[jira] Updated: (TAP5-819) remove ide-specific files from all sub-modules and add them to svn:ignore</title>
	<published>2009-11-23T11:03:39Z</published>
	<updated>2009-11-23T11:03:39Z</updated>
	<author>
		<name>JIRA jira@apache.org</name>
	</author>
	<content type="html">&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;[ &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel&lt;/a&gt;&amp;nbsp;]
&lt;br&gt;&lt;br&gt;Andreas Andreou updated TAP5-819:
&lt;br&gt;---------------------------------
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Fix Version/s: 5.1.0.6
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; remove ide-specific files from all sub-modules and add them to svn:ignore
&lt;br&gt;&amp;gt; -------------------------------------------------------------------------
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key: TAP5-819
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; URL: &lt;a href=&quot;https://issues.apache.org/jira/browse/TAP5-819&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://issues.apache.org/jira/browse/TAP5-819&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Project: Tapestry 5
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Issue Type: Task
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Reporter: Ulrich Stärk
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Assignee: Kevin Menard
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Priority: Minor
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Fix For: 5.2.0.0, 5.1.0.6, 5.0.19
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; remove ide-specific files from all sub-modules and add them to svn:ignore, along with any output directories like target.
&lt;/div&gt;&lt;br&gt;-- 
&lt;br&gt;This message is automatically generated by JIRA.
&lt;br&gt;-
&lt;br&gt;You can reply to this email to add a comment to the issue online.
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/-jira--Created%3A-%28TAP5-819%29-remove-ide-specific-files-from-all-sub-modules-and-add-them-to-svn%3Aignore-tp25044536p26484006.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26483960</id>
	<title>svn commit: r883462 - in /tapestry/tapestry5/branches/5.1.0.x-dev: tapestry-annotations/ tapestry-component-report/ tapestry-core/ tapestry-core/.settings/ tapestry-hibernate-core/ tapestry-hibernate/ tapestry-ioc/ tapestry-ioc/.settings/ tapestry-spri...</title>
	<published>2009-11-23T11:00:36Z</published>
	<updated>2009-11-23T11:00:36Z</updated>
	<author>
		<name>andyhot-2</name>
	</author>
	<content type="html">Author: andyhot
&lt;br&gt;Date: Mon Nov 23 19:00:32 2009
&lt;br&gt;New Revision: 883462
&lt;br&gt;&lt;br&gt;URL: &lt;a href=&quot;http://svn.apache.org/viewvc?rev=883462&amp;view=rev&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/viewvc?rev=883462&amp;view=rev&lt;/a&gt;&lt;br&gt;Log:
&lt;br&gt;TAP5-819: remove ide specific files in 5.1 branch
&lt;br&gt;&lt;br&gt;Removed:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-annotations/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-annotations/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-component-report/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-component-report/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/.settings/
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-ioc/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-ioc/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-ioc/.settings/
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-spring/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-spring/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-test/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-test/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-tutorial1/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-tutorial1/.project
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-tutorial1/.settings/
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-upload/.classpath
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-upload/.project
&lt;br&gt;Modified:
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-annotations/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-component-report/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate-core/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-ioc/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-spring/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-test/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-tutorial1/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-upload/ &amp;nbsp; (props changed)
&lt;br&gt;&amp;nbsp; &amp;nbsp; tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-webflow/ &amp;nbsp; (props changed)
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-annotations/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -1 +1,4 @@
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-component-report/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -1,2 +1,5 @@
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;&amp;nbsp;bin
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -8,3 +8,6 @@
&lt;br&gt;&amp;nbsp;testng.xml
&lt;br&gt;&amp;nbsp;null
&lt;br&gt;&amp;nbsp;bin-test
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -4,3 +4,6 @@
&lt;br&gt;&amp;nbsp;cobertura.ser
&lt;br&gt;&amp;nbsp;null
&lt;br&gt;&amp;nbsp;test-output
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-hibernate-core/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (added)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -0,0 +1,4 @@
&lt;br&gt;+target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-ioc/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -5,3 +5,6 @@
&lt;br&gt;&amp;nbsp;test-output
&lt;br&gt;&amp;nbsp;null
&lt;br&gt;&amp;nbsp;bin-test
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-spring/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -4,3 +4,6 @@
&lt;br&gt;&amp;nbsp;cobertura.ser
&lt;br&gt;&amp;nbsp;null
&lt;br&gt;&amp;nbsp;bin-test
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-test/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -1,2 +1,5 @@
&lt;br&gt;&amp;nbsp;bin
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-tutorial1/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -1,2 +1,5 @@
&lt;br&gt;&amp;nbsp;bin
&lt;br&gt;&amp;nbsp;target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-upload/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (original)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -3,3 +3,6 @@
&lt;br&gt;&amp;nbsp;bin
&lt;br&gt;&amp;nbsp;cobertura.ser
&lt;br&gt;&amp;nbsp;temp-testng-customsuite.xml
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;Propchange: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-webflow/
&lt;br&gt;------------------------------------------------------------------------------
&lt;br&gt;--- svn:ignore (added)
&lt;br&gt;+++ svn:ignore Mon Nov 23 19:00:32 2009
&lt;br&gt;@@ -0,0 +1,4 @@
&lt;br&gt;+target
&lt;br&gt;+.classpath
&lt;br&gt;+.project
&lt;br&gt;+.settings
&lt;br&gt;&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/svn-commit%3A-r883462---in--tapestry-tapestry5-branches-5.1.0.x-dev%3A-tapestry-annotations--tapestry-component-report--tapestry-core--tapestry-core-.settings--tapestry-hibernate-core--tapestry-hibernate--tapestry-ioc--tapestry-ioc-.settings--tapestry-spri...-tp26483960p26483960.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-26483924</id>
	<title>Re: 5.1 - 5.0 next releases?</title>
	<published>2009-11-23T10:58:50Z</published>
	<updated>2009-11-23T10:58:50Z</updated>
	<author>
		<name>Igor Drobiazko</name>
	</author>
	<content type="html">Howard, is it possible to create builds for the branches at formos bamboo?
&lt;br&gt;We need a temporal solution. I also feel uncomfortably to release 5.1.0.6
&lt;br&gt;without having a single build at CI.
&lt;br&gt;&lt;br&gt;On Mon, Nov 23, 2009 at 8:58 AM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; I don't feel comfortable until the code executes properly in the full
&lt;br&gt;&amp;gt; stack, including browser, servlet container and Tapestry, and
&lt;br&gt;&amp;gt; including Ajax updates. Anything simulated in that stack is a
&lt;br&gt;&amp;gt; potential to be different than the end user's experience. Selenium is
&lt;br&gt;&amp;gt; a pain in the ass, but it's as close as you'll get to hiring actual
&lt;br&gt;&amp;gt; people to validate your web app.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; On Sun, Nov 22, 2009 at 7:14 PM, Kalle Korhonen
&lt;br&gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;kalle.o.korhonen@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt; On Sun, Nov 22, 2009 at 11:42 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Integration tests aren't currently able to run (missing firefox from
&lt;br&gt;&amp;gt; path)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; and all 4 failing tests in 5.1 are due to that.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; 5.0 has a few more failures which confirm what i'm seeing locally
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; (
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/view/All/job/tapestry-5.0-trunk/3/&lt;/a&gt;&amp;nbsp;)
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; On that note, I've had very good success doing integration testing
&lt;br&gt;&amp;gt; &amp;gt; with HtmlUnit and embedded Jetty. The tests run faster than
&lt;br&gt;&amp;gt; &amp;gt; Selenium-based ones and are more independent of the environment. The
&lt;br&gt;&amp;gt; &amp;gt; recent versions of HtmlUnit run any kind of Javascript just fine
&lt;br&gt;&amp;gt; &amp;gt; (dojo, prototype, etc.) but obviously it's not *exactly* the same as a
&lt;br&gt;&amp;gt; &amp;gt; real browser. I've re-written both Apache Shiro's and Tynamo's (at
&lt;br&gt;&amp;gt; &amp;gt; Codehaus) integration tests to use the same concepts (see e.g.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://svn.apache.org/repos/asf/incubator/shiro/trunk/samples/web/src/test/java/org/apache/shiro/test/AbstractContainerTest.java&lt;/a&gt;&lt;br&gt;&amp;gt; ).
&lt;br&gt;&amp;gt; &amp;gt; Just thought it might be worth considering - I know how challenging it
&lt;br&gt;&amp;gt; &amp;gt; can be at times to rely on infrastructure you are not in control of.
&lt;br&gt;&amp;gt; &amp;gt; But perhaps Apache infra folks can help making firefox available on
&lt;br&gt;&amp;gt; &amp;gt; the path.
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It's not difficult, just means running Xvfb (X virtual frame buffer).
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; Kalle
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 6:49 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm fine with moving stuff off of tapestry.formos.com.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I do want to maintain some site with nightly snapshots, though.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 8:39 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I have the same problem (lost password &amp; bamboo not sending email) -
&lt;br&gt;&amp;gt; that's why
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I started investigating apache's hudson infrastructure...
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I got 4.1 building there,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://hudson.zones.apache.org/hudson/job/tapestry-4.1-trunk/&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; (the trick was to set the build node to master - we were told to use
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; minerva or vesta but
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; it looks like those are missing maven)
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; I want to go ahead and add 5.0 and 5.1 there anyway. Howard, you
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; already have an account
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but it don't see any T5 builds there, should i just go ahead?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; As for nexus, doing a mvn release will actually just stage it in a
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; one-time only repo so that
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; anyone can try it from there. I really wanted to try that with the 5.0
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; but some build failures
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; i'm having haven't allowed that - hoping to tackle them as we speak.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 3:55 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Can someone please add builds for 5.1.x and 5.0.x branches to bamboo?
&lt;br&gt;&amp;gt; I
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; forgot my password and bamboo fails to send me a new one.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Sun, Nov 22, 2009 at 1:38 PM, Howard Lewis Ship &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;hlship@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; What's the process for staging things in Nexus?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; On Fri, Nov 20, 2009 at 7:50 AM, Andreas Andreou &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=7&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.0 branch] So, i'm basically still getting 3 test failures in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-ioc and 2 in
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; tapestry-core (jdk5 &amp; jdk6)... the good thing is i'm not getting
&lt;br&gt;&amp;gt; those
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in the 5.1 branch, so, i'll try to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; look for diffs.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; [5.1 branch] All look fine here, once we say GO, I (or anyone) can
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; just try to stage the release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; in nexus and once that works, send the email for the vote
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; On Fri, Nov 20, 2009 at 2:24 PM, Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=8&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;thiagohp@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; +1
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Em Fri, 20 Nov 2009 07:09:03 -0200, David Rees &amp;lt;
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=9&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;drees76@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; escreveu:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; On Thu, Nov 19, 2009 at 10:24 PM, Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=10&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;igor.drobiazko@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; We should release 5.1.0.6 asap because of the security issues.
&lt;br&gt;&amp;gt; What if
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; we
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; only backport already fixed issues in 5.2.0.0 snapshots,
&lt;br&gt;&amp;gt; release
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; 5.1.0.6
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; immidiately go on with 5.1.0.7?
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; I'm a big fan of &amp;quot;release often&amp;quot; as long as people are willing
&lt;br&gt;&amp;gt; to do it
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; -
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; so +1.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; -Dave
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=11&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=12&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Thiago H. de Paula Figueiredo
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Independent Java, Apache Tapestry 5 and Hibernate consultant,
&lt;br&gt;&amp;gt; developer,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; and
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; instructor
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Owner, software architect and developer, Ars Machina Tecnologia
&lt;br&gt;&amp;gt; da
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Informação Ltda.
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Consultor, desenvolvedor e instrutor em Java, Tapestry e
&lt;br&gt;&amp;gt; Hibernate
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Coordenador e professor da Especialização em Engenharia de
&lt;br&gt;&amp;gt; Software com
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; Ênfase em Java da Faculdade Pitágoras
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; &lt;a href=&quot;http://www.arsmachina.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.arsmachina.com.br&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=13&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=14&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=15&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=16&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=17&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me
&lt;br&gt;&amp;gt; to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=18&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=19&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Best regards,
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Igor Drobiazko
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=20&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=21&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=22&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=23&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=24&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; --
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Andreas Andreou - &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=25&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;andyhot@...&lt;/a&gt; - &lt;a href=&quot;http://blog.andyhot.gr&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://blog.andyhot.gr&lt;/a&gt;&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Tapestry / Tacos developer
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; Open Source / JEE Consulting
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=26&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=27&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; &amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=28&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=29&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt; &amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; --
&lt;br&gt;&amp;gt; Howard M. Lewis Ship
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Creator of Apache Tapestry
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; The source for Tapestry training, mentoring and support. Contact me to
&lt;br&gt;&amp;gt; learn how I can get you up and productive in Tapestry fast!
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; (971) 678-5210
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://howardlewisship.com&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://howardlewisship.com&lt;/a&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; ---------------------------------------------------------------------
&lt;br&gt;&amp;gt; To unsubscribe, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=30&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-unsubscribe@...&lt;/a&gt;
&lt;br&gt;&amp;gt; For additional commands, e-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26483924&amp;i=31&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;dev-help@...&lt;/a&gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;/div&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Best regards,
&lt;br&gt;&lt;br&gt;Igor Drobiazko
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/5.1---5.0-next-releases--tp26406209p26483924.html" />
</entry>

</feed>
