[jira] Commented: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Fernando (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681447#action_12681447
 ] 

Fernando commented on TAP5-577:
---

This just sounds like a HUGE change in behavior, without easily reverting to 
old way of doing things.

1) we can't cache any generated content across users!
2) we now totally mess up how we generate urls ( if we do/have to do it in 
javascript, or external services )
3) though the idea of putting locales in the url sounds cool, you can't just 
force that on us!!
  that is a huge change in site architecture, url planning, etc etc.
4) users might not care about urls, but we do, browsers do, caches do.

So I like the suggestion that we implement the old simpler more industry 
standard method be default, but let us easily change it to experiment and try 
out new things..


 TAP5-422 changes break persistent locale backwards compatibility.
 -

 Key: TAP5-577
 URL: https://issues.apache.org/jira/browse/TAP5-577
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.0, 5.1.0.1
Reporter: Andy Blower
Priority: Critical

 I think that the changes made in T5.1 for TAP5-422 break backwards 
 compatibility with T5.0's locale persistence. In T5.0 it was a simple matter 
 to override the default cookie persistence by creating a custom 
 implementation of the PersistentLocale service and contributing it to be used 
 instead of the standard internal T5 implementation.
 The TAP5-422 changes broke backwards compatibility because anyone who's 
 created their own implementation of PersistentLocale, or just wants the 5.0 
 cookie persistence behaviour, would have found that it's a lot more work and 
 involves some heavy changes to Tapestry internals. Now with the recent 
 changes for TAP5-418 (committed yesterday), the situation had been alleviated 
 somewhat by allowing the the hard-wired URl locale persistence to be switched 
 off using a new symbol.
 However, I still think that this breaks backwards compatibility in two ways:
 1) By changing the default behaviour of locale persistence so that anyone 
 relying on the locale persistence behaviour of 5.0 will have to make 
 non-trivial changes when they upgrade to 5.1 to keep the same operation.
 2) By requiring so much work for anyone wanting to keep the 5.0 cookie 
 persistence behaviour or define their own custom locale persistence. (In 5.0 
 it was easy to figure out and implement a custom locale persistence method)
 From my analysis of the changes made by TAP5-422  TAP5-418, I think anyone 
 wanting non-URL based locale persistence will need to do the following when 
 upgrading from 5.0 to 5.1:
 1) Set the ENCODE_LOCALE_INTO_PATH symbol to false.
 2) Create an implementation of PersistentLocale and contribute it to the IOC. 
 (copied from the standard 5.0 code if the old default cookie persistence is 
 desired)
 3) Create a custom filter written and created to do the same job as the 5.0 
 LocalizationFilter and contribute it to the IOC RequestHandler. This filter 
 will need to call the LocalizationSetter setLocaleFromLocaleName() method 
 instead of the old setThreadLocale() method. 
 My suggested resolution would be to re-instate the 5.0 cookie persistence 
 (LocalizationFilter  PersistentLocaleImpl) and have the new 
 ENCODE_LOCALE_INTO_PATH symbol default to false allowing 5.1 to work the same 
 way as 5.0 out of the box. If the symbol is set to true, then the 
 LocalizationFilter is disabled (not contributed to RequestHandler) and the 
 PersistentLocale service will need to just store the locale (not set it in a 
 cookie) for later use by LinkSourceImpl. 
 LocalizationSetterImpl.setLocaleFromLocaleName(String localeName) would also 
 need changing back to overriding the passed localeName if a persistent one 
 had been set into the PersistentLocale service. There may by a much better 
 solution than this as I've not spent much time on it, but I though I should 
 try to be helpful as possible.
 (It should be noted that this is purely a product of my analysis of the 5.1 
 code, I have not found the time to actually run T5.1 and test this out - I 
 should be able to do this in about a week and a half, but I'm currently 
 approaching a major milestone deadline. Hopefully someone else will find the 
 time to prove or disprove my hypothesis.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Howard M. Lewis Ship (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681470#action_12681470
 ] 

Howard M. Lewis Ship commented on TAP5-577:
---

Using cookies to track the user's locale is not industry default.  I beg to 
differ ... the majority of localized applications I've used encode the locale 
into the URL.

I don't see how this intersects caching of content ... unless you expect to 
cache English and German text as if it were interchangeable.  

 TAP5-422 changes break persistent locale backwards compatibility.
 -

 Key: TAP5-577
 URL: https://issues.apache.org/jira/browse/TAP5-577
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.0, 5.1.0.1
Reporter: Andy Blower
Priority: Critical

 I think that the changes made in T5.1 for TAP5-422 break backwards 
 compatibility with T5.0's locale persistence. In T5.0 it was a simple matter 
 to override the default cookie persistence by creating a custom 
 implementation of the PersistentLocale service and contributing it to be used 
 instead of the standard internal T5 implementation.
 The TAP5-422 changes broke backwards compatibility because anyone who's 
 created their own implementation of PersistentLocale, or just wants the 5.0 
 cookie persistence behaviour, would have found that it's a lot more work and 
 involves some heavy changes to Tapestry internals. Now with the recent 
 changes for TAP5-418 (committed yesterday), the situation had been alleviated 
 somewhat by allowing the the hard-wired URl locale persistence to be switched 
 off using a new symbol.
 However, I still think that this breaks backwards compatibility in two ways:
 1) By changing the default behaviour of locale persistence so that anyone 
 relying on the locale persistence behaviour of 5.0 will have to make 
 non-trivial changes when they upgrade to 5.1 to keep the same operation.
 2) By requiring so much work for anyone wanting to keep the 5.0 cookie 
 persistence behaviour or define their own custom locale persistence. (In 5.0 
 it was easy to figure out and implement a custom locale persistence method)
 From my analysis of the changes made by TAP5-422  TAP5-418, I think anyone 
 wanting non-URL based locale persistence will need to do the following when 
 upgrading from 5.0 to 5.1:
 1) Set the ENCODE_LOCALE_INTO_PATH symbol to false.
 2) Create an implementation of PersistentLocale and contribute it to the IOC. 
 (copied from the standard 5.0 code if the old default cookie persistence is 
 desired)
 3) Create a custom filter written and created to do the same job as the 5.0 
 LocalizationFilter and contribute it to the IOC RequestHandler. This filter 
 will need to call the LocalizationSetter setLocaleFromLocaleName() method 
 instead of the old setThreadLocale() method. 
 My suggested resolution would be to re-instate the 5.0 cookie persistence 
 (LocalizationFilter  PersistentLocaleImpl) and have the new 
 ENCODE_LOCALE_INTO_PATH symbol default to false allowing 5.1 to work the same 
 way as 5.0 out of the box. If the symbol is set to true, then the 
 LocalizationFilter is disabled (not contributed to RequestHandler) and the 
 PersistentLocale service will need to just store the locale (not set it in a 
 cookie) for later use by LinkSourceImpl. 
 LocalizationSetterImpl.setLocaleFromLocaleName(String localeName) would also 
 need changing back to overriding the passed localeName if a persistent one 
 had been set into the PersistentLocale service. There may by a much better 
 solution than this as I've not spent much time on it, but I though I should 
 try to be helpful as possible.
 (It should be noted that this is purely a product of my analysis of the 5.1 
 code, I have not found the time to actually run T5.1 and test this out - I 
 should be able to do this in about a week and a half, but I'm currently 
 approaching a major milestone deadline. Hopefully someone else will find the 
 time to prove or disprove my hypothesis.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Fernando (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681482#action_12681482
 ] 

Fernando commented on TAP5-577:
---

fair. ok. so I'm only left with : fear of change. :)

and allowing us to slowly switch to it, bit by bit, rather than forcing us to 
do it next time I upgrade :)
just to make sure that there really are no issues that we have to deal with ( i 
do worry about previously generated urls, manually generated urls, javascript, 
etc ) :)

 TAP5-422 changes break persistent locale backwards compatibility.
 -

 Key: TAP5-577
 URL: https://issues.apache.org/jira/browse/TAP5-577
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.0, 5.1.0.1
Reporter: Andy Blower
Priority: Critical

 I think that the changes made in T5.1 for TAP5-422 break backwards 
 compatibility with T5.0's locale persistence. In T5.0 it was a simple matter 
 to override the default cookie persistence by creating a custom 
 implementation of the PersistentLocale service and contributing it to be used 
 instead of the standard internal T5 implementation.
 The TAP5-422 changes broke backwards compatibility because anyone who's 
 created their own implementation of PersistentLocale, or just wants the 5.0 
 cookie persistence behaviour, would have found that it's a lot more work and 
 involves some heavy changes to Tapestry internals. Now with the recent 
 changes for TAP5-418 (committed yesterday), the situation had been alleviated 
 somewhat by allowing the the hard-wired URl locale persistence to be switched 
 off using a new symbol.
 However, I still think that this breaks backwards compatibility in two ways:
 1) By changing the default behaviour of locale persistence so that anyone 
 relying on the locale persistence behaviour of 5.0 will have to make 
 non-trivial changes when they upgrade to 5.1 to keep the same operation.
 2) By requiring so much work for anyone wanting to keep the 5.0 cookie 
 persistence behaviour or define their own custom locale persistence. (In 5.0 
 it was easy to figure out and implement a custom locale persistence method)
 From my analysis of the changes made by TAP5-422  TAP5-418, I think anyone 
 wanting non-URL based locale persistence will need to do the following when 
 upgrading from 5.0 to 5.1:
 1) Set the ENCODE_LOCALE_INTO_PATH symbol to false.
 2) Create an implementation of PersistentLocale and contribute it to the IOC. 
 (copied from the standard 5.0 code if the old default cookie persistence is 
 desired)
 3) Create a custom filter written and created to do the same job as the 5.0 
 LocalizationFilter and contribute it to the IOC RequestHandler. This filter 
 will need to call the LocalizationSetter setLocaleFromLocaleName() method 
 instead of the old setThreadLocale() method. 
 My suggested resolution would be to re-instate the 5.0 cookie persistence 
 (LocalizationFilter  PersistentLocaleImpl) and have the new 
 ENCODE_LOCALE_INTO_PATH symbol default to false allowing 5.1 to work the same 
 way as 5.0 out of the box. If the symbol is set to true, then the 
 LocalizationFilter is disabled (not contributed to RequestHandler) and the 
 PersistentLocale service will need to just store the locale (not set it in a 
 cookie) for later use by LinkSourceImpl. 
 LocalizationSetterImpl.setLocaleFromLocaleName(String localeName) would also 
 need changing back to overriding the passed localeName if a persistent one 
 had been set into the PersistentLocale service. There may by a much better 
 solution than this as I've not spent much time on it, but I though I should 
 try to be helpful as possible.
 (It should be noted that this is purely a product of my analysis of the 5.1 
 code, I have not found the time to actually run T5.1 and test this out - I 
 should be able to do this in about a week and a half, but I'm currently 
 approaching a major milestone deadline. Hopefully someone else will find the 
 time to prove or disprove my hypothesis.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Robert Zeigler (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681490#action_12681490
 ] 

Robert Zeigler commented on TAP5-577:
-

1) previously generated urls = should be gracefully handled as simply a url 
with no locale info? So the user loses his/her locale for that request...
2) manually generated urls/javascript: Hm... shouldn't those be generated via 
componentResources.create{Action,Event,Form,Page}Link, in which case: no change 
required? :)


 TAP5-422 changes break persistent locale backwards compatibility.
 -

 Key: TAP5-577
 URL: https://issues.apache.org/jira/browse/TAP5-577
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.0, 5.1.0.1
Reporter: Andy Blower
Priority: Critical

 I think that the changes made in T5.1 for TAP5-422 break backwards 
 compatibility with T5.0's locale persistence. In T5.0 it was a simple matter 
 to override the default cookie persistence by creating a custom 
 implementation of the PersistentLocale service and contributing it to be used 
 instead of the standard internal T5 implementation.
 The TAP5-422 changes broke backwards compatibility because anyone who's 
 created their own implementation of PersistentLocale, or just wants the 5.0 
 cookie persistence behaviour, would have found that it's a lot more work and 
 involves some heavy changes to Tapestry internals. Now with the recent 
 changes for TAP5-418 (committed yesterday), the situation had been alleviated 
 somewhat by allowing the the hard-wired URl locale persistence to be switched 
 off using a new symbol.
 However, I still think that this breaks backwards compatibility in two ways:
 1) By changing the default behaviour of locale persistence so that anyone 
 relying on the locale persistence behaviour of 5.0 will have to make 
 non-trivial changes when they upgrade to 5.1 to keep the same operation.
 2) By requiring so much work for anyone wanting to keep the 5.0 cookie 
 persistence behaviour or define their own custom locale persistence. (In 5.0 
 it was easy to figure out and implement a custom locale persistence method)
 From my analysis of the changes made by TAP5-422  TAP5-418, I think anyone 
 wanting non-URL based locale persistence will need to do the following when 
 upgrading from 5.0 to 5.1:
 1) Set the ENCODE_LOCALE_INTO_PATH symbol to false.
 2) Create an implementation of PersistentLocale and contribute it to the IOC. 
 (copied from the standard 5.0 code if the old default cookie persistence is 
 desired)
 3) Create a custom filter written and created to do the same job as the 5.0 
 LocalizationFilter and contribute it to the IOC RequestHandler. This filter 
 will need to call the LocalizationSetter setLocaleFromLocaleName() method 
 instead of the old setThreadLocale() method. 
 My suggested resolution would be to re-instate the 5.0 cookie persistence 
 (LocalizationFilter  PersistentLocaleImpl) and have the new 
 ENCODE_LOCALE_INTO_PATH symbol default to false allowing 5.1 to work the same 
 way as 5.0 out of the box. If the symbol is set to true, then the 
 LocalizationFilter is disabled (not contributed to RequestHandler) and the 
 PersistentLocale service will need to just store the locale (not set it in a 
 cookie) for later use by LinkSourceImpl. 
 LocalizationSetterImpl.setLocaleFromLocaleName(String localeName) would also 
 need changing back to overriding the passed localeName if a persistent one 
 had been set into the PersistentLocale service. There may by a much better 
 solution than this as I've not spent much time on it, but I though I should 
 try to be helpful as possible.
 (It should be noted that this is purely a product of my analysis of the 5.1 
 code, I have not found the time to actually run T5.1 and test this out - I 
 should be able to do this in about a week and a half, but I'm currently 
 approaching a major milestone deadline. Hopefully someone else will find the 
 time to prove or disprove my hypothesis.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Fernando (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681491#action_12681491
 ] 

Fernando commented on TAP5-577:
---

1) you mean every time a user comes to the site?
1a) we are a facebook/opensocial app, so they proxy back to us, and the base 
url can't really change.. else we will be redirecting on every single request.
 (actually, because of this I just realized that we can never use the locale in 
url :( :( :( )
2) yes all urls should be generated by tapestry, but we have a handful of 
apps/sites, handful of developers, tonnes of features we need to implements and 
just
   a slight lack of time to do it all in.. I can't guarantee that all of our 
developers and efforts are on the up and up... so I can't roll this out without 
copious amounts
   of testing. (hence the slow/controlled rollout ability, in our own terms)


 TAP5-422 changes break persistent locale backwards compatibility.
 -

 Key: TAP5-577
 URL: https://issues.apache.org/jira/browse/TAP5-577
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.0, 5.1.0.1
Reporter: Andy Blower
Priority: Critical

 I think that the changes made in T5.1 for TAP5-422 break backwards 
 compatibility with T5.0's locale persistence. In T5.0 it was a simple matter 
 to override the default cookie persistence by creating a custom 
 implementation of the PersistentLocale service and contributing it to be used 
 instead of the standard internal T5 implementation.
 The TAP5-422 changes broke backwards compatibility because anyone who's 
 created their own implementation of PersistentLocale, or just wants the 5.0 
 cookie persistence behaviour, would have found that it's a lot more work and 
 involves some heavy changes to Tapestry internals. Now with the recent 
 changes for TAP5-418 (committed yesterday), the situation had been alleviated 
 somewhat by allowing the the hard-wired URl locale persistence to be switched 
 off using a new symbol.
 However, I still think that this breaks backwards compatibility in two ways:
 1) By changing the default behaviour of locale persistence so that anyone 
 relying on the locale persistence behaviour of 5.0 will have to make 
 non-trivial changes when they upgrade to 5.1 to keep the same operation.
 2) By requiring so much work for anyone wanting to keep the 5.0 cookie 
 persistence behaviour or define their own custom locale persistence. (In 5.0 
 it was easy to figure out and implement a custom locale persistence method)
 From my analysis of the changes made by TAP5-422  TAP5-418, I think anyone 
 wanting non-URL based locale persistence will need to do the following when 
 upgrading from 5.0 to 5.1:
 1) Set the ENCODE_LOCALE_INTO_PATH symbol to false.
 2) Create an implementation of PersistentLocale and contribute it to the IOC. 
 (copied from the standard 5.0 code if the old default cookie persistence is 
 desired)
 3) Create a custom filter written and created to do the same job as the 5.0 
 LocalizationFilter and contribute it to the IOC RequestHandler. This filter 
 will need to call the LocalizationSetter setLocaleFromLocaleName() method 
 instead of the old setThreadLocale() method. 
 My suggested resolution would be to re-instate the 5.0 cookie persistence 
 (LocalizationFilter  PersistentLocaleImpl) and have the new 
 ENCODE_LOCALE_INTO_PATH symbol default to false allowing 5.1 to work the same 
 way as 5.0 out of the box. If the symbol is set to true, then the 
 LocalizationFilter is disabled (not contributed to RequestHandler) and the 
 PersistentLocale service will need to just store the locale (not set it in a 
 cookie) for later use by LinkSourceImpl. 
 LocalizationSetterImpl.setLocaleFromLocaleName(String localeName) would also 
 need changing back to overriding the passed localeName if a persistent one 
 had been set into the PersistentLocale service. There may by a much better 
 solution than this as I've not spent much time on it, but I though I should 
 try to be helpful as possible.
 (It should be noted that this is purely a product of my analysis of the 5.1 
 code, I have not found the time to actually run T5.1 and test this out - I 
 should be able to do this in about a week and a half, but I'm currently 
 approaching a major milestone deadline. Hopefully someone else will find the 
 time to prove or disprove my hypothesis.)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Issue Comment Edited: (TAP5-577) TAP5-422 changes break persistent locale backwards compatibility.

2009-03-12 Thread Andy Blower (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681499#action_12681499
 ] 

Andy Blower edited comment on TAP5-577 at 3/12/09 2:31 PM:
---

Howard, 

I agree that using cookies to track user's persistent locale is not industry 
standard, but it happens to be the method used by the final public release of 
T5.0 which is the important point here. The fact that the default method for 
persisting locales is different is really only a backwards compatibility issue 
for anyone who's relying on the generated URLs for some reason or has issues 
with locale being in the URLs. (like our site which needs durable and shareable 
URLs regardless of a users' locale preference)

To my mind this is a judgement call for you to take as it's quite a subjective 
aspect of backwards compatibility, assuming of course that it's easy to 
override the default behaviour like it was in T5.0 where you provided an easy 
way with a public interface. This is where I have the main (less subjective, 
more objective) issue...

You are right that the functionality of persisting locale once set is still 
retained and is just done using a different method in T5.1, but only for people 
who haven't implemented their own PersistentLocale service. If they have then 
it will break on upgrading to T5.1 because the service interface (which is 
public and not internal) is now used in a different way by the internals - in 
other words the contract you made for this public interface is broken. If it 
were as simple as changing the symbol to false to re-enable the old contract 
with the public PersistentLocale service then it wouldn't be so bad, but 
currently it's non-trivial for someone to get their custom PersistentLocale 
services working in T5.1 which is why I consider backwards compatibility to be 
broken in this instance.

Regarding your statement vast majority of users (who were not mucking about in 
the internals of Tapestry to customize persistent locales) - I really don't 
think that creating and contributing a custom implementation of a public 
service interface can be characterized in this way. Especially by you. I 
thought that this was what T5 was all about; functional out of the box, but 
allowing powerful customization where it just gets out of the way to let you 
do what you need. Have I got this wrong?

I definitely have mucked about with Tapestry internals and I will have some 
upgrade pains due to these modification, but I knew that when I did it and you 
will not hear a thing from me about backwards compatibility when I've messed 
with internals (even if there was no other way in T5.0 to achieve what I needed 
to do) but that is not the case here.

I think I can safely assume that you do not consider reverting the default 
behaviour of T5.1 to cookie locale persistence an option which is fair enough. 
I don't think much of cookie persistence myself so I'm certainly not bothered 
by it, I just hope it doesn't trip up too many others. That's my only concern, 
although you seem to have confidence that it wont so my fears are most likely 
unfounded. 

However, I do think the other issue of overriding the default method of locale 
persistence becoming so much harder in T5.1 is a major issue and does break 
backwards compatibility. The aim should be that if the ENCODE_LOCALE_INTO_PATH 
symbol is set to false, then a custom PersistentLocale service that worked with 
T5.0 should work the same with T5.1 so I guess the only sticking point is the 
lack of a LocalizationFilter in T5.1 which is enabled when the symbol is false 
and allows a custom PersistentLocale service written for T5.0 to work with T5.1 
without a lot of hassle and migration work. 

This should fix the main (objective) part of this issue. As I've said before it 
will only really be a minor inconvenience to me personally if you don't resolve 
this issue - I think I know what I'm doing and have the ability to cope with 
this for my own work with Tapestry.

  was (Author: andyb):
Howard, 

I agree that using cookies to track user's persistent locale is not industry 
standard, but it happens to be the method used by the final public release of 
T5.0 which is the important point here. The fact that the default method for 
persisting locales is different is really only a backwards compatibility issue 
for anyone who's relying on the generated URLs for some reason or has issues 
with locale being in the URLs. (like our site which needs durable and shareable 
URLs regardless of a users' locale preference)

To my mind this is a judgement call for you to take as it's quite a subjective 
aspect of backwards compatibility, assuming of course that it's easy to 
override the default behaviour like it was in T5.0 where you provided an easy 
way with a public interface. This is where I have the main (less subjective, 
more objective) 

svn commit: r753034 - in /tapestry/tapestry5/trunk/tapestry-hibernate/src: main/java/org/apache/tapestry5/hibernate/ main/java/org/apache/tapestry5/hibernate/pages/ main/resources/org/apache/tapestry5

2009-03-12 Thread drobiazko
Author: drobiazko
Date: Thu Mar 12 22:09:21 2009
New Revision: 753034

URL: http://svn.apache.org/viewvc?rev=753034view=rev
Log:
TAP5-562: tapestry-hibernate should provide a built-in status page to show 
basic Hibernate statistics inlcuding cache hits, etc.

Added:

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/Statistics.java

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/resources/org/apache/tapestry5/hibernate/

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/resources/org/apache/tapestry5/hibernate/pages/

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/resources/org/apache/tapestry5/hibernate/pages/Statistics.properties

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/resources/org/apache/tapestry5/hibernate/pages/Statistics.tml
tapestry/tapestry5/trunk/tapestry-hibernate/src/site/apt/statistics.apt
tapestry/tapestry5/trunk/tapestry-hibernate/src/site/resources/
tapestry/tapestry5/trunk/tapestry-hibernate/src/site/resources/images/

tapestry/tapestry5/trunk/tapestry-hibernate/src/site/resources/images/hibernate-statistics-2.png
   (with props)

tapestry/tapestry5/trunk/tapestry-hibernate/src/site/resources/images/hibernate-statistics.png
   (with props)
Modified:

tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/HibernateModule.java
tapestry/tapestry5/trunk/tapestry-hibernate/src/site/site.xml

tapestry/tapestry5/trunk/tapestry-hibernate/src/test/java/org/apache/tapestry5/hibernate/integration/TapestryHibernateIntegrationTests.java

tapestry/tapestry5/trunk/tapestry-hibernate/src/test/resources/hibernate.cfg.xml

Modified: 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/HibernateModule.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/HibernateModule.java?rev=753034r1=753033r2=753034view=diff
==
--- 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/HibernateModule.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/HibernateModule.java
 Thu Mar 12 22:09:21 2009
@@ -29,6 +29,7 @@
 import org.apache.tapestry5.ioc.services.TypeCoercer;
 import org.apache.tapestry5.services.AliasContribution;
 import org.apache.tapestry5.services.ComponentClassTransformWorker;
+import org.apache.tapestry5.services.LibraryMapping;
 import org.apache.tapestry5.services.PersistentFieldStrategy;
 import org.apache.tapestry5.services.ValueEncoderFactory;
 import org.hibernate.Session;
@@ -126,4 +127,13 @@
 
 configuration.addInstance(CommitAfter, CommitAfterWorker.class, 
after:Log);
 }
+
+/**
+ * Contribution to the {...@link 
org.apache.tapestry5.services.ComponentClassResolver} service configuration.
+ */
+public static void 
contributeComponentClassResolver(ConfigurationLibraryMapping configuration)
+{
+configuration.add(new LibraryMapping(hibernate, 
org.apache.tapestry5.hibernate));
+}
+
 }

Added: 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/Statistics.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/Statistics.java?rev=753034view=auto
==
--- 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/Statistics.java
 (added)
+++ 
tapestry/tapestry5/trunk/tapestry-hibernate/src/main/java/org/apache/tapestry5/hibernate/pages/Statistics.java
 Thu Mar 12 22:09:21 2009
@@ -0,0 +1,90 @@
+// Copyright 2009 The Apache Software Foundation
+//
+// Licensed under the Apache License, Version 2.0 (the License);
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an AS IS BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.apache.tapestry5.hibernate.pages;
+
+import java.util.Collection;
+
+import org.apache.tapestry5.SymbolConstants;
+import org.apache.tapestry5.annotations.ContentType;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.ioc.annotations.Symbol;
+import org.hibernate.Session;
+import 

[jira] Closed: (TAP5-562) tapestry-hibernate should provide a built-in status page to show basic Hibernate statistics inlcuding cache hits, etc.

2009-03-12 Thread Igor Drobiazko (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Drobiazko closed TAP5-562.
---

   Resolution: Fixed
Fix Version/s: 5.1.0.2

 tapestry-hibernate should provide a built-in status page to show basic 
 Hibernate statistics inlcuding cache hits, etc.
 --

 Key: TAP5-562
 URL: https://issues.apache.org/jira/browse/TAP5-562
 Project: Tapestry 5
  Issue Type: New Feature
  Components: tapestry-hibernate
Affects Versions: 5.1.0.1
Reporter: Howard M. Lewis Ship
Assignee: Igor Drobiazko
 Fix For: 5.1.0.2


 It would be nice to get some introspection into how Hibernate is operating, 
 easily.
 This is another page that should be disabled (or at least, minimal 
 functionality) in production.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Closed: (TAP5-576) Add support for JBoss 5.x

2009-03-12 Thread Igor Drobiazko (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-576?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Igor Drobiazko closed TAP5-576.
---

   Resolution: Won't Fix
Fix Version/s: 5.1.0.2

Sorry, but tapestry-ioc is not the proper place for that code. The service 
ClasspathURLConverter was introduced to solve such issues. Just override it in 
you application and that's it. I'm also overriding this service in my OSGi apps 
because in Equinox all classes have the protocol bundelresource.

 Add support for JBoss 5.x
 -

 Key: TAP5-576
 URL: https://issues.apache.org/jira/browse/TAP5-576
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-ioc
Affects Versions: 5.0.18
Reporter: Benjamin Bentmann
 Fix For: 5.1.0.2

 Attachments: TAP5-576.patch


 The class loaders of JBoss 5.x use URLs like
 {noformat}
 vfszip:/M:/jboss/jboss-5.0.1.GA/server/default/deploy/tapestry-test.war/WEB-INF/lib/tapestry-core-5.0.18.jar/org/apache/tapestry5/corelib/pages/
 {noformat}
 to point at class path resources. Tapestry is currently not capable of 
 parsing these and as a result fails to find its own core components.
 This is related to the mail thread [JBoss5 and T5 
 configuration?|http://www.mail-archive.com/us...@tapestry.apache.org/msg31403.html]
  a collegue of mine found. The approach outlined there yields URLs that point 
 at non-existent files but served as an inspiration for our patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-576) Add support for JBoss 5.x

2009-03-12 Thread Howard M. Lewis Ship (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681523#action_12681523
 ] 

Howard M. Lewis Ship commented on TAP5-576:
---

We already are making some special cases for Tomcat classpath loading, I can 
see making a case for JBoss as well.

 Add support for JBoss 5.x
 -

 Key: TAP5-576
 URL: https://issues.apache.org/jira/browse/TAP5-576
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-ioc
Affects Versions: 5.0.18
Reporter: Benjamin Bentmann
 Fix For: 5.1.0.2

 Attachments: TAP5-576.patch


 The class loaders of JBoss 5.x use URLs like
 {noformat}
 vfszip:/M:/jboss/jboss-5.0.1.GA/server/default/deploy/tapestry-test.war/WEB-INF/lib/tapestry-core-5.0.18.jar/org/apache/tapestry5/corelib/pages/
 {noformat}
 to point at class path resources. Tapestry is currently not capable of 
 parsing these and as a result fails to find its own core components.
 This is related to the mail thread [JBoss5 and T5 
 configuration?|http://www.mail-archive.com/us...@tapestry.apache.org/msg31403.html]
  a collegue of mine found. The approach outlined there yields URLs that point 
 at non-existent files but served as an inspiration for our patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-576) Add support for JBoss 5.x

2009-03-12 Thread Howard M. Lewis Ship (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681524#action_12681524
 ] 

Howard M. Lewis Ship commented on TAP5-576:
---

Alternately, provide this is a plugin in a tapestry.formos.com project.  I just 
don't like all those JBoss users thinking Tapestry is broken (though if they've 
used JBoss for a few years, they probably know where to start laying blame!)

 Add support for JBoss 5.x
 -

 Key: TAP5-576
 URL: https://issues.apache.org/jira/browse/TAP5-576
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-ioc
Affects Versions: 5.0.18
Reporter: Benjamin Bentmann
 Fix For: 5.1.0.2

 Attachments: TAP5-576.patch


 The class loaders of JBoss 5.x use URLs like
 {noformat}
 vfszip:/M:/jboss/jboss-5.0.1.GA/server/default/deploy/tapestry-test.war/WEB-INF/lib/tapestry-core-5.0.18.jar/org/apache/tapestry5/corelib/pages/
 {noformat}
 to point at class path resources. Tapestry is currently not capable of 
 parsing these and as a result fails to find its own core components.
 This is related to the mail thread [JBoss5 and T5 
 configuration?|http://www.mail-archive.com/us...@tapestry.apache.org/msg31403.html]
  a collegue of mine found. The approach outlined there yields URLs that point 
 at non-existent files but served as an inspiration for our patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Commented: (TAP5-576) Add support for JBoss 5.x

2009-03-12 Thread Benjamin Bentmann (JIRA)

[ 
https://issues.apache.org/jira/browse/TAP5-576?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=12681532#action_12681532
 ] 

Benjamin Bentmann commented on TAP5-576:


As a minimum, an update to the documentation could be helpful. From 
http://tapestry.apache.org/tapestry5/jboss.html:
bq. JBoss's default servlet container is Tomcat, so deployment notes for Tomcat 
apply to JBoss as well.
That doesn't seem accurate AFAICT.

 Add support for JBoss 5.x
 -

 Key: TAP5-576
 URL: https://issues.apache.org/jira/browse/TAP5-576
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-ioc
Affects Versions: 5.0.18
Reporter: Benjamin Bentmann
 Fix For: 5.1.0.2

 Attachments: TAP5-576.patch


 The class loaders of JBoss 5.x use URLs like
 {noformat}
 vfszip:/M:/jboss/jboss-5.0.1.GA/server/default/deploy/tapestry-test.war/WEB-INF/lib/tapestry-core-5.0.18.jar/org/apache/tapestry5/corelib/pages/
 {noformat}
 to point at class path resources. Tapestry is currently not capable of 
 parsing these and as a result fails to find its own core components.
 This is related to the mail thread [JBoss5 and T5 
 configuration?|http://www.mail-archive.com/us...@tapestry.apache.org/msg31403.html]
  a collegue of mine found. The approach outlined there yields URLs that point 
 at non-existent files but served as an inspiration for our patch.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Created: (TAP5-578) If a component class is abstract, trying to instantiate it yields an inscrutable InstantiationError

2009-03-12 Thread Howard M. Lewis Ship (JIRA)
If a component class is abstract, trying to instantiate it yields an 
inscrutable InstantiationError
---

 Key: TAP5-578
 URL: https://issues.apache.org/jira/browse/TAP5-578
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.1
Reporter: Howard M. Lewis Ship
Priority: Critical


[ERROR] RequestExceptionHandler Processing of request failed with uncaught 
exception: com.formos.tapestry.tapx.datefield.components.DateField
java.lang.InstantiationError: 
com.formos.tapestry.tapx.datefield.components.DateField
at $Instantiator_11ffd289b27.newInstance($Instantiator_11ffd289b27.java)
at 
org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.init(InternalComponentResourcesImpl.java:132)
at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.init(ComponentPageElementImpl.java:545)
at 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl.newChild(ComponentPageElementImpl.java:627)
at 
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleEmbeddedComponent(ComponentAssemblerImpl.java:132)
at 
org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:954)
at 
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:193)
at 
org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:88)
at 
org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:159)
at $PageLoader_11ffd289b02.loadPage($PageLoader_11ffd289b02.java)

This is really not much to go on (I spun my wheels for about 30 minutes). The 
problem was that the DateField class was abstract. Tapestry should display an 
error message to the effect of: This class is abstract and can not be 
instantiated..



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



svn commit: r753085 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/ main/java/org/apache/tapestry5/corelib/components/ main/java/org/apache/tapestry5/internal/service

2009-03-12 Thread hlship
Author: hlship
Date: Fri Mar 13 01:56:19 2009
New Revision: 753085

URL: http://svn.apache.org/viewvc?rev=753085view=rev
Log:
TAP5-578: If a component class is abstract, trying to instantiate it (by 
including it in a template) yields an inscrutable InstantiationError

Added:

tapestry/tapestry5/trunk/tapestry-core/src/test/app1/AbstractComponentDemo.tml

tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/components/AbstractComponent.java

tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/AbstractComponentDemo.java
Modified:

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/RenderSupport.java

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/InternalClassTransformationImpl.java

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/LocalizationSetter.java

tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/services/PropertyConduitSource.java

tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/IntegrationTests.java

tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/integration/app1/pages/Index.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/RenderSupport.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/RenderSupport.java?rev=753085r1=753084r2=753085view=diff
==
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/RenderSupport.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/RenderSupport.java
 Fri Mar 13 01:56:19 2009
@@ -1,4 +1,4 @@
-// Copyright 2006, 2007, 2008 The Apache Software Foundation
+// Copyright 2006, 2007, 2008, 2009 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
@@ -58,9 +58,7 @@
 
 /**
  * Adds some number of script links as strings representations of URLs.  
The scripts are passed down to the client
- * as-is. Note that Tapestry generates relative URLs for assets because 
the base URL varies dependending on the page
- * and its activation context; scripts added with this method will not be 
adjusted in anyway. Typically, this is
- * used to reference a script stored outside the web application entirely.
+ * as-is.  Typically, this is used to reference a script stored outside 
the web application entirely.
  *
  * @param scriptURLs URL strings of scripts
  */
@@ -77,7 +75,7 @@
 
 /**
  * Adds a link to a CSS stylesheet. As with JavaScript libraries, each 
stylesheet is added at most once. Stylesheets
- * added this way will be ordered before any other content in the 
lt;headgt; element of the document. The
+ * added this way will be ordered before any other content, in the 
lt;headgt; element of the document. The
  * lt;headgt; element will be created, if necessary.
  *
  * @param stylesheet the asset referencing the stylesheet

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java?rev=753085r1=753084r2=753085view=diff
==
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java
 Fri Mar 13 01:56:19 2009
@@ -1,4 +1,4 @@
-// Copyright 2007, 2008 The Apache Software Foundation
+// Copyright 2007, 2008, 2009 The Apache Software Foundation
 //
 // Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
@@ -49,9 +49,9 @@
  */
 // TODO: More testing; see https://issues.apache.org/jira/browse/TAPESTRY-1844
 @IncludeStylesheet(${tapestry.datepicker}/css/datepicker.css)
-...@includejavascriptlibrary({${tapestry.datepicker}/js/datepicker.js,
+...@includejavascriptlibrary({ ${tapestry.datepicker}/js/datepicker.js,
 datefield.js
-})
+})
 public class DateField extends AbstractField
 {
 /**
@@ -112,7 +112,7 @@
 
 @Inject
 private FieldValidationSupport fieldValidationSupport;
-
+
 @Inject
 private Messages messages;
 
@@ -210,7 +210,7 @@
 String clientId = getClientId();
 

[jira] Updated: (TAP5-578) If a component class is abstract, trying to instantiate it (by including it in a template) yields an inscrutable InstantiationError

2009-03-12 Thread Howard M. Lewis Ship (JIRA)

 [ 
https://issues.apache.org/jira/browse/TAP5-578?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship updated TAP5-578:
--

Summary: If a component class is abstract, trying to instantiate it (by 
including it in a template) yields an inscrutable InstantiationError  (was: If 
a component class is abstract, trying to instantiate it yields an inscrutable 
InstantiationError)

 If a component class is abstract, trying to instantiate it (by including it 
 in a template) yields an inscrutable InstantiationError
 ---

 Key: TAP5-578
 URL: https://issues.apache.org/jira/browse/TAP5-578
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-core
Affects Versions: 5.1.0.1
Reporter: Howard M. Lewis Ship
Assignee: Howard M. Lewis Ship
Priority: Critical

 [ERROR] RequestExceptionHandler Processing of request failed with uncaught 
 exception: com.formos.tapestry.tapx.datefield.components.DateField
 java.lang.InstantiationError: 
 com.formos.tapestry.tapx.datefield.components.DateField
   at $Instantiator_11ffd289b27.newInstance($Instantiator_11ffd289b27.java)
   at 
 org.apache.tapestry5.internal.structure.InternalComponentResourcesImpl.init(InternalComponentResourcesImpl.java:132)
   at 
 org.apache.tapestry5.internal.structure.ComponentPageElementImpl.init(ComponentPageElementImpl.java:545)
   at 
 org.apache.tapestry5.internal.structure.ComponentPageElementImpl.newChild(ComponentPageElementImpl.java:627)
   at 
 org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleEmbeddedComponent(ComponentAssemblerImpl.java:132)
   at 
 org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:954)
   at 
 org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:193)
   at 
 org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:88)
   at 
 org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:159)
   at $PageLoader_11ffd289b02.loadPage($PageLoader_11ffd289b02.java)
 This is really not much to go on (I spun my wheels for about 30 minutes). The 
 problem was that the DateField class was abstract. Tapestry should display an 
 error message to the effect of: This class is abstract and can not be 
 instantiated..

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.