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

Bob Schellink resolved CLK-703.
-------------------------------

    Resolution: Won't Fix

I've spent some time creating a lazy class loading scheme using various 
approaches. Couldn't find an easy way which preserved the simplicity and 
performance of ConfigService. I'm sure with enough time and effort the 
performance and locking issues could be resolved, however the complexity goes 
up drastically when dealing with multiple threads. This is especially true for 
services dependent on page class metadata such as SpringClickServlet. Under an 
eager loading scheme, SpringClickServlet can cache page class metadata (ie page 
setters) during the Servlet init() event without concern for synchronization. 
Under a lazy loading scheme, metadata has to be obtained at runtime, pushing 
synchronization handling onto this class. Not something I'd like to face.

My main motivation for this change was to address an issue with Google App 
Engine where it doesn't allow Click to lookup template files under the root 
("/") web folder. However it seems that GAE does allow looking up resources 
under subfolders of root. By introducing a convention where pages are located 
under the 'page' or 'pages' folder, we can again support automapping in 
production environments, albeit with a small caveat.

> Load pages and templates on demand
> ----------------------------------
>
>                 Key: CLK-703
>                 URL: https://issues.apache.org/jira/browse/CLK-703
>             Project: Click
>          Issue Type: Improvement
>          Components: core
>            Reporter: Bob Schellink
>            Assignee: Bob Schellink
>             Fix For: 2.3.0-M1
>
>
> At startup time Click eagerly loads templates (and associated page classes) 
> found under the web folder. 
> The proposed change is to switch to a lazy loading scheme where pages and 
> templates are only loaded when requested. Scenarios needed to be catered for 
> include:
> - HTTP Request
> - Page.setRedirect
> - Page.setForward
> There is also an outstanding bug which depends on this proposal: 
> https://issues.apache.org/jira/browse/CLK-639

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

Reply via email to