[jira] [Commented] (TAP5-1729) Sometimes YUICompressor can fail with java.util.EmptyStackException

2012-06-08 Thread Dragan Sahpaski (JIRA)

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

Dragan Sahpaski commented on TAP5-1729:
---

Thanks that one worked just fine.

Cheers

 Sometimes YUICompressor can fail with java.util.EmptyStackException
 ---

 Key: TAP5-1729
 URL: https://issues.apache.org/jira/browse/TAP5-1729
 Project: Tapestry 5
  Issue Type: Bug
  Components: tapestry-yuicompressor
Affects Versions: 5.3
Reporter: Howard M. Lewis Ship
Priority: Blocker

 [ERROR] ioc.Registry java.util.EmptyStackException
 [ERROR] ioc.Registry Operations trace:
 [ERROR] ioc.Registry [ 1] Streaming asset stack en/core.js
 [ERROR] ioc.Registry [ 2] Minimizing JavaScript
 [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed 
 with uncaught exception: org.apache.tapestry5.ioc.internal.OperationException
 org.apache.tapestry5.ioc.internal.OperationException
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:121)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:88)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
   at 
 org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
   at 
 org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1109)
   at 
 org.apache.tapestry5.internal.TapestryInternalUtils.performIO(TapestryInternalUtils.java:576)
   at 
 org.apache.tapestry5.internal.yuicompressor.AbstractMinimizer.minimize(AbstractMinimizer.java:62)
   at 
 org.apache.tapestry5.internal.services.assets.MasterResourceMinimizer.minimize(MasterResourceMinimizer.java:44)
   at $ResourceMinimizer_1250535a97d2196c.minimize(Unknown Source)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.assembleStackContent(StackAssetRequestHandler.java:175)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.assembleStackContent(StackAssetRequestHandler.java:163)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.getUncompressedResource(StackAssetRequestHandler.java:146)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.getResource(StackAssetRequestHandler.java:123)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.access$100(StackAssetRequestHandler.java:40)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler$1.perform(StackAssetRequestHandler.java:103)
   at 
 org.apache.tapestry5.internal.TapestryInternalUtils$5.run(TapestryInternalUtils.java:582)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:51)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl$1.invoke(OperationTrackerImpl.java:48)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:74)
   at 
 org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:47)
   at 
 org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:76)
   at 
 org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1109)
   at 
 org.apache.tapestry5.internal.TapestryInternalUtils.performIO(TapestryInternalUtils.java:576)
   at 
 org.apache.tapestry5.internal.services.assets.StackAssetRequestHandler.handleAssetRequest(StackAssetRequestHandler.java:96)
   at 
 org.apache.tapestry5.internal.services.AssetDispatcher.dispatch(AssetDispatcher.java:109)
   at $Dispatcher_1250535a97d21963.dispatch(Unknown Source)
   at $Dispatcher_1250535a97d21967.dispatch(Unknown Source)
   at $Dispatcher_1250535a97d21961.dispatch(Unknown Source)
   at 
 org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
   at 
 org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
   at $RequestHandler_1250535a97d21962.service(Unknown Source)
   at 
 org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
   at $RequestHandler_1250535a97d21962.service(Unknown Source)
   at 
 org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
   at $RequestHandler_1250535a97d21962.service(Unknown Source)
   at 
 org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
   at $RequestHandler_1250535a97d21962.service(Unknown Source)
   at 

[jira] [Closed] (TAP5-1953) Does the cache for resolved page class names grow indefinetly?

2012-06-08 Thread Thiago H. de Paula Figueiredo (JIRA)

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

Thiago H. de Paula Figueiredo closed TAP5-1953.
---

Resolution: Invalid

Please post questions to the Tapestry users mailing list: 
http://tapestry.apache.org/mailing-lists.html.

 Does the cache for resolved page class names grow indefinetly?
 --

 Key: TAP5-1953
 URL: https://issues.apache.org/jira/browse/TAP5-1953
 Project: Tapestry 5
  Issue Type: Question
  Components: tapestry-core
Affects Versions: 5.3.3
Reporter: Carsten Klein

 Having implemented a decorator for the ComponentClassResolver service, I 
 noticed that my advises and the delegates thereof will be called only during 
 initial resolve of the page class name for a given request path.
 I wonder if the cache, which prevents subsequent calls to the custom resolver 
 between requests, does grow indefinitely, and if so, would it be possible to 
 change it so, as to not consume all of the available memory in situations of 
 both high load and indefinite numbers of available request paths?
 Also, I have been unable to find the class/method responsible for caching the 
 results from my custom resolver to this point. Could you please point me to 
 where I may find the caching logic?
 TIA and keep up the great work!
 -- Carsten

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (TAP5-1955) Documentation on ServiceBinder#bind(ClassT implementationClass) is wrong/lacks extra information

2012-06-08 Thread Carsten Klein (JIRA)
Carsten Klein created TAP5-1955:
---

 Summary: Documentation on ServiceBinder#bind(ClassT 
implementationClass) is wrong/lacks extra information
 Key: TAP5-1955
 URL: https://issues.apache.org/jira/browse/TAP5-1955
 Project: Tapestry 5
  Issue Type: Improvement
  Components: tapestry-core
Affects Versions: 5.3.3
Reporter: Carsten Klein
Priority: Minor


The documentation on the above mentioned method states that

 Defines a service in terms of an implementation class, without a service 
 interface. In this case, the service
 will not be proxiable (proxying requires a service interface) and {@link 
 ServiceDef#getServiceInterface()} will
 return the implementation class. In this situation, the service will not be 
 proxied; it will be instantiated
 fully on first reference (ignoring its scope, if any) and will not be 
 decorated.

In tapestry-core InternalModule I found usages of that interface, where you 
bind an interface class.
Looking at the code, the implementation will try to resolve the implementation 
class and then bind
it using the standard bind(ClassT serviceInterface, Class? extends T 
implementationClass) method.

Bound as such, the interface can both be proxied and decorated.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira




[CONF] Apache Tapestry JavaScript Rewrite

2012-06-08 Thread confluence







_javascript_ Rewrite
Page edited by Howard M. Lewis Ship


Comment:
added some notes about cdns


 Changes (5)
 




...
* Compressible resources will be automatically GZip compressed if the client supports it  
However, _javascript_ support in Tapestry is still unsatisfactory. Too often, Tapestry falls into an [uncanny valley|http://en.wikipedia.org/wiki/Uncanny_valley] where the framework (server-side and client-side) does so much automatically that it becomes accepted that it does everything ... developers later discover, to their dismay, that the last 10% of custom behavior they desire is very hard to implement, because of all the common problems that plague any complex system: insufficient APIs, unexpected leaky abstractions, or just plain bugs.Common examples of the challenges imposed by Tapestry include implementing a Confirm mixin, customizing behavior when a Zone component is dynamically updated, or any number of issues related to Forms, form elements, and Ajax updates.  This document is a roadmap for how Tapestry 5.4 will revisit the relationship between server-side Java and client-side _javascript_. Ultimately, we hope to convert this relationship from an obstacle to using Tapestry into an essential reason to select Tapestry in the first place.  
h1. Tapestry _javascript_ Limitations (through 5.3)  
...
There has not, to date, been an adequate documentation of the {{T5}} and {{Tapestry}} namespaces, beyond the code itself.  
h2. The Uncanny Valley  Too often, Tapestry falls into an [uncanny valley|http://en.wikipedia.org/wiki/Uncanny_valley] where the framework (server-side and client-side) does so much automatically that it becomes accepted that it does everything ... developers later discover, to their dismay, that the last 10% of custom behavior they desire is very hard to implement, because Tapestry gets in the way.  Common examples include implementing a Confirm mixin, customizing behavior when a Zone component is dynamically updated, or any number of issues related to Forms, form elements, and Ajax updates.  In effect, Tapestry should get out of the business of doing most things, especially visual things, and stick to publishing messages about things (see the notes below on Publish/Subscribe).  Specifically, Tapestry should avoid animations and other visual effects (which also significantly tie Tapestry to a specific client-side foundational framework), and simply facilitate the informing the client-side that events have happend, and allow the user application to decide how to present that information.  
h2. Lack of Module Structure  
...
In the (hopefully) common case that a module can operate without additional configuration, the @Require annotation will be analagous to the Tapestry 5.2 [@Import|http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Import.html] annotation.  It will allow one or more modules to be required. This is only useful when the modules are stand-alone (not needing any explicit configuration).  
h2. Increased Used Of Publish/Subscribe 
 An inherent limitation of Tapestry 5.3 and earlier is the too-direct connection between DOM events and client behaviors. Coding in terms of the user clicks and the event handler submits a request makes it very hard to fine tune behavior.  For example, much work and experimentation was needed in order to introduce a Confirm mixin that could be used to introduce a confirmation dialog before allowing an event (clicking a link or submitting a form) to continue. 
...
Twitter Bootstrap also includes a number of jQuery-based plugins; these will be exposed in the module system.  
h1. Content Delivery Network Integration 
 
Tapestry 5.3 has limited ability to integrate into a [content delivery network|http://en.wikipedia.org/wiki/Content_delivery_network]; it can dynamically rewrite URLs for assets (including _javascript_ libraries, CSS files, image files, etc.). However, it assumes that the CDN can pull the content, as needed, from the live site.  A desirable feature would be request URL that would produce a JSON-formatted report of all assets that should be mirrored by the CDN: this would include all files that might be exposed to the browser, including virtual assets (such as _javascript_ stacks, aggregated modules, and so forth).  This could be leveraged by a tool that would use this information to extract the assets from the live application and exported to the CDN.  Determining what assets are available is somewhat problematic as Tapestry mixes server-side only resources (.class files, .tml files, etc.) freely with assets that might be exposed to the