On Dec 14, 2006, at 8:53 AM, Niall Pemberton wrote:
As the shale-tiles module has no dependency on the rest of shale and
can be used in a vanilla JSF environment wouldn't it make more sense
to move this to the proposed Tiles project? I think the argument for
having JSF support in Tiles is different to the one of including
support for Struts or any other framework in the Tiles project since
JSF is a standard.
I've thought about that myself. Shale-Tiles is *just* a
ViewHandler. I fear that importing it into the Tiles project might
be a mistake for at least a couple of reasons:
1) It sets a bad (IMO) precedent of Tiles providing integration with
parent frameworks instead of the frameworks providing integration
with Tiles.
2) It may send the message that JSF is a "preferred" framework for
Tiles, and people will start to ask questions about why Tiles doesn't
provide Struts integration, etc.
I'm more comfortable with Shale-TIles staying here or even moving to
MyFaces as an extension than becoming part of the core Tiles framework.
That would resolve the potentially confusing issue
of having different pieces with different quality labels?
It would solve the most immediate problem, but I don't think it
addresses the root cause. Shale is made up of a bunch of loosely-
coupled components - so much so that, as you pointed out, most of
them could live completely independently of one another. But if each
one was required to go through the whole release process separately,
none of them would ever be released :-) Plus, you also pointed out
the issue of compatibility. How can I know if shale-remoting-1.0.4
can live happily alongside shale-dialog-1.0.6?
If we could cut a release that includes only selected components we
might have this:
shale-1.0.4 includes:
- shale-core-1.0.4
- shale-remoting-1.0.4
- shale-clay-1.0.4
Then Clay goes into unstable development while dialog-basic
stabilizes so we release:
shale-1.0.5 includes
- shale-core-1.0.5
- shale-remoting-1.0.5
- shale-dialog-basic-1.0.5
But what if I need shale-1.0.5 and I'm using Clay? Which Clay do I
use? Is clay-1.0.4 compatible with core-1.0.5? Maybe there's a way
for shale-1.0.5 to include shale-clay-1.0.4 with a label of shale-
clay-1.0.5. That sounds pretty screwy, but the advantage is that
users can know that components with the same version number are
compatible.
Having an "all" distro is a
good plan IMO - but also making the independent components also
available as separate downloads would help communicate that there are
pieces available to use on their own and having independent version
numbers for them and not precluding the possibility of separate
release in the future would seem like a good idea IMO.
For projects using maven, of course, this is already possible. I
don't know when the last time was I actually downloaded a release
package. I just get it by adding a reference in my Maven POM to
specific components. To me, this approach is much easier when all
the components have the same version number.
Greg