Whew! managed to squeeze in about 20 hrs over this long weekend.

As I've been doing this I've realized the new way of doing things in the new
Spindle is so different than
before that I will need to provide a pretty comprehensive migrator.
Otherwise it'll be a big headache to
use the new Spindle with projects created with older versions.

This weekend has been soley devoted to building that migrator. I didn't
realize how hard that would be.
Just determining what files are eligible to migrate took a whole day.

Migration is much more than just upping the DTD version to 1.3

Two examples...

1. page components need to be changed from .jwc to .page
2. Components that define thier contained components need to use aliases.
That means the App/Library spec needs
to be modified, defining aliases/pages for those components that used paths.
Then the components can be changed
to use the new alias instead.

So migration has side effects all over the project. I need to give the user
as much flexibility to restrict the scope of this
as much as possible.

Next weekend I hope to finish the wizard. Here's how it will work.

Steps to bring an existing project up to snuff.

1. Convert the project to a Tapestry project (this is already done - you
select the project and choose "Convert")

2. select the project and choose "Migrate"

3. a wizard appears stating that Spindle has found a bunch of files that are
eligble.

4. click finish to 'just do it' or Next for fine tune the scope

5. On clicking next the user sees a page listing the files Spindle found.
You can exclude any you like.

6. The next page will allow one to choose the migrations to perform:

a. DTD -> 1.3
b. Automatically create Component Aliases for ones referred to by full path.
Then change the full path to the new alias
c. Change .jwc files that are pages into .page files

7. last page will handle any jwc pages that are not defined in the project
library/app

you get to choose (for each, whether the .jwc file actually defines a page
or a component)

on running the migration, those chosen to be pages will be converted to
.page files (and defined in the app/lib).

Like I said, next weeken I'll polish this off.

The weekend after that, I'm going to build a New Tapestry Project Wizard.
Hopefully I can get it done in one weekend!

As for a release of 1.1 alpha, I'll need one more weekend after the new proj
wizard to fix as many bugs as I can. So
tentatively looking at the week of the 23rd.

After alpha 1 comes much bug fixing and some new features. By the time I get
to a beta release I hope to have refactor-like
functionality like:

1. delete a component? Spindle will delete it from the App/Library spec too
2. rename a component alias? Spindle will find all the components that
refered to the old alias and change it
to the new one.
3. move a .jwc or .page file? Spindle will ensure all the templates get
moved too.
4. rename/move a component? Spindle will update the appripriate alias in the
project app/lib. And rename the templates!

If anyone can think of more refactorings like this, post 'em to the list or
add a feature request.

Spindle has been massively refactored. Pretty much every class has been
touched and some have been rewritten.
There's no way I alone can catch all the bugs I've introduced during this
process, so I'm dependant on you to help me
track 'em and kill'em when the alpha's come out.

Geoff

PS. probably the last feature I will add before 1.1 final will be the
ability to undo a migration.



Geoffrey Longman
Intelligent Works Inc.





-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to