Loading/unloading of modules is tricky.  It's something an application
server can do, but not necessarily an application framework like
Tapestry.

Notice the leaky abstractions around components, to support reloading
(and transformation) of them. The reloading requires a special class
loader, and that makes the component classes incompatible with service
layers that don't use the special class loader.

Once you get into the IoC layer, with contributions and decorations
and services building services etc., etc. ... well, it gets much more
complex. Managing the life cycle of the services and other objects
becomes overly intrusive (i.e., you aren't allowed to use new anymore)
and that's really bad.  The IoC code is, by design, incestuous, with
objects flowing about and connecting in ways that are both
unpredictable and opaque to the container (the Registry).  I'm not
content with a solution where a "live change" results in a operational
set that is anything but indistinguishable from a full restart.

On top of this, Tapestry is a servlet application and servlets have
their own framework for redeployment.  The bad part of redeployment is
the loss of HttpSession data, but other than that, its quite
reasonable. A couple of seconds for Tapestry to re-initialize, a few
more seconds for Hibernate, and your app is back in business.

I suppose anything is possible, but effort vs. benefit is the real
question, and I'd rather absorb those few seconds a redeployment
requires, rather than add instability and unpredictability to the
Tapestry runtime environment.


On Mon, May 5, 2008 at 12:59 AM, Michael Gerzabek
<[EMAIL PROTECTED]> wrote:
> Interesting, espscially https://issues.apache.org/jira/browse/TAPESTRY-1904
> and https://issues.apache.org/jira/browse/TAPESTRY-1679.
>
>  I've another question. Do you think there's a need for loading/ unloading
> modules? This would add a very powerful feature the Java world does leak in
> comparison to php. Think of WordPress or drupal. There you can add modules
> to your installation, activate (load) them, uninstall (unload) them and
> everything is neatly integrated into the GUI. I think some apps also allow
> for autodetection of new module versions.
>
>  I researched T5 a little and found that from many points (UI, Services,
> Configuration) it should be able to make modules loadable. But I'm an T5-IoC
> beginner and know far to less to get my hands dirty now. Though from user
> perspective I would love to see this. Dreammode: Have eclipse/ OSGi like T5
> where I can drop a jar file and the next time I log into the admin area
> everything is loaded, could be configured and activated.
>
>  My basic questions here are
>  ALL: i.) Would it be of benefit to make modules loadable (deployable,
> etc.)?
>  HLS/ ALL: ii.) Where would I have to look into to get things on go?
>
>  Michael
>
>  Howard Lewis Ship schrieb:
>
>
> > You can see that there are a few issues in JIRA to make the IoC stuff
> > (even) more refactoring-safe.
> >
> > On Sun, May 4, 2008 at 11:06 PM, Michael Gerzabek
> > <[EMAIL PROTECTED]> wrote:
> >
> >
> > > Thank you Howard,
> > >
> > >  It was a typo after a refactoring (DatabaseManager |->
> > > DatabaseUpdateManager). I didn't check the update textual occurences in
> > > eclipse.
> > >
> > >
> >
>
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to