You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Henrik Schlanbusch <he...@enovate.no> on 2009/05/11 09:29:12 UTC

Upgrade from T4 to T5.1

Hi all

We have a rather big system that has been written in tapestry 4. We started out
in tapestry 3 some years ago and during upgrade to T4 we spent quite a long
time, which was very critical for our customers. But in the end, the upgrade was
really worth it.

Now we would like to upgrade to T5.1. I know about the backwards compatibility
issues here, so what I would like to do is to upgrade "lazily". What I would
like to do is to run T4 and T5 at the same time, while we develop new stuff in
T5, and slowly transform old T4 functionality to T5.

So my question is: is it possible to run T4 and T5 from the same webapp? And if
it does, what is the best practice in order to do so?

Best regards
Henrik


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Upgrade from T4 to T5.1

Posted by Bryan Lewis <jb...@gmail.com>.
We're in a similar situation and the same history.  Recently I did a little
work on mixing new Tap5 pages with an older Tap4 app.  It works but it feels
a bit awkward and we haven't acid-tested it in production.  I'd be
interested in your results if you try it.

Basically I deployed the new Tap5 pages as a separate app.  For example,
let's say we have an old app deployed (in JBoss) as oldapp.war and the new
pages are deployed as newapp.war.  The two apps coexist peacefully in the
same server instance, as you'd expect for any two web-apps in the same
server.  The only communication between the two is through the page URLs.
If the old app's menus want to link to one of the new pages, it uses
<server>/newapp/page.  Note that there's no tight coupling between the two
sets of pages, no setting of objects from one to the other.  That's okay
with us because the new-page development would represent a fairly
independent new section.  Some limited passing of state could be done in the
URL.

The awkward bit was sharing lower-level components and libraries that we'd
already written.  Of course any Tapestry components (such as a border
component) have to be rewritten.  This is the main reason why we haven't
tested this in production; we've written quite a few components.  As for the
lower-level jars, they're shared because they're deployed independently and
not packaged in either app's war.  (For my experiment I simply removed them
from newapp.war after building it with 'mvn package'.)

We had good separation between our model and view layers, so the new app was
able to share the same model library.  My test had no problem sharing the
same (Cayenne) configuration.  There were no database staleness issues
caused by one app updating the database behind the other's back.

There were some other details.  Both apps do their own auto-logins from the
same cookie, to avoid single-login issues.  Logging was a little messy.
Tapestry 5 has taken on responsibility for logging configuration, while our
old apps let JBoss do it; I often got double-decorated log messages until I
simplified the configurations and wrote a custom log4j appender.

Hope this helps.



On Mon, May 11, 2009 at 3:29 AM, Henrik Schlanbusch <he...@enovate.no>wrote:

> Hi all
>
> We have a rather big system that has been written in tapestry 4. We started
> out
> in tapestry 3 some years ago and during upgrade to T4 we spent quite a long
> time, which was very critical for our customers. But in the end, the
> upgrade was
> really worth it.
>
> Now we would like to upgrade to T5.1. I know about the backwards
> compatibility
> issues here, so what I would like to do is to upgrade "lazily". What I
> would
> like to do is to run T4 and T5 at the same time, while we develop new stuff
> in
> T5, and slowly transform old T4 functionality to T5.
>
> So my question is: is it possible to run T4 and T5 from the same webapp?
> And if
> it does, what is the best practice in order to do so?
>
> Best regards
> Henrik
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>