Le 09/03/2010 18:35, David Pollak a écrit :
On Tue, Mar 9, 2010 at 9:25 AM, Timothy Perrett <[email protected]
<mailto:[email protected]>> wrote:
Wow, I wish I had 5 machines ;-) lol.
Thats an interesting outlook and an explanatory rationale. Can you
explain the implementation? Perhaps I can be persuaded. Right now,
i'm not convinced about hampering development mode in this way.
Basically, Boot will be run and then LiftRules will be snapshot. Then
the function in the dynamic block is run. This gives us the baseline
LiftRules.
Tapestry 5 has such a functionnality build-in (JRebel wasn't around at
the time when T5 was built, so there was no alternatives - and JRebel is
not free for Java application)
The user view is here:
http://tapestry.apache.org/tapestry5.1/guide/reload.html
I think that the implementation is somewhat like what you described (a
classloader that can be dismissed used for class that could be reload)
with some more logic to handle when reloads happen
I'm not sure into what extends the comparison may be followed (T5
internal is quite different than Lift, there is pools of already
instantiated component/pages waiting to be assembled for a request.
See[0] for the component instantiation logic)
Basically, there is a resquest filter[1] that look for time elapsed
since last reload, and a update listener hub[2] is said to say to each
of its registered resources to check for update[3]. Resources know how
to check for update depending of their type (template resource,
class[5], etc).
If it is inspiring...
The corresponding code is here, for last release:
[0]
http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.1.0.7/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/ComponentInstantiatorSourceImpl.java?view=markup
[1] Tapestry request filter:
http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.1.0.7/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/CheckForUpdatesFilter.java?view=markup
[2] Update Listener Hub:
http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.1.0.7/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/UpdateListenerHubImpl.java?view=markup
[4] Update listener:
http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.1.0.7/tapestry-core/src/main/java/org/apache/tapestry5/services/UpdateListener.java?view=markup
[5] Page (checkForUpdate):
http://svn.apache.org/viewvc/tapestry/tapestry5/tags/releases/5.1.0.7/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/PagePoolImpl.java?view=markup
--
Francois ARMAND
http://fanf42.blogspot.com
--
You received this message because you are subscribed to the Google Groups
"Lift" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/liftweb?hl=en.