I've started my first few steps towards adding JSR-168 Portlet support to Tapestry.
I've got a pretty good handle on what it's going to look like, but I have a lot of unanswered questions, so I'm building a few simple, exploratory examples.
I'm also getting a bit of a taste of my own medicine ... getting started with Jetspeed is painful for lack of documentation, a common concern for Tapestry. I'm sure it makes perfect sense from the inside, but as an outsider, I'm a bit daunted by some big gaps in the documentation. You have to learn a lot by experimentation.
I'm beginning to get a picture of how everything will fit together. HiveMind will be key here. There'll be an abstraction layer of the servlet/portlet APIs. In a few critical places, there'll be a lot of indirection to allow servlet implementations vs. portlet implemenations ... I expect to use the ServicePropertyFactory quite a bit in these situations. I haven't seen anything that looks like a show stopper yet. Time to roll up my sleeves and have some fun!