Would you consider some kind of compatibility mode? That is, before you remove support for these, could there be a way for people to configure things for a more strict or more compatible evaluation, to ease migration? It seems like the closest you can get to deprecation warnings in tag libs/JSPs.

Just a thought. I don't have a ton of time to put into it myself, and I wouldn't make a big fuss if it weren't done.

Joe

At 5:37 PM -0500 6/13/06, Greg Reddin wrote:
Ticket SB-21 [1] seeks to simplify the Tiles taglib API. First, it's a given that this will break backwards compatibility. You can't reduce an API without breaking compatibility. But as long as we're seeing this version of Tiles as a rework, I don't think it's a problem. Also, I don't think it's a difficult thing to fix in existing applications. No functionality will be removed, but redundant hooks to the same functionality will be removed. Finally, I think this will be one of the greatest improvements to the usability of Tiles. I'm currently working on a patch to implement this.

Of the attributes that are currently supported by InsertTag, I believe the following are redundant:

1)  attribute, definition, name could all be resolved to name.
2)  component, page, and template could all be resolved to template.

In addition the name attribute can be interpreted as either a pointer to a Tiles definition or attribute or an URL, which essentially makes it equivalent to page and template. I propose that we reduce all these meanings down to the "name" attribute. IOW, name can be a definition name or an attribute name. I suspect this is how Tiles is being used in 90% of applications anyway. I know that's how I use it. Further, I propose that we reduce all the URL-based attributes to the "template" attribute. So if you want to directly insert a page you must use the template attribute.

The net result is that you can use the insert tag in the following ways:

<tiles:insert name="someName"/>
- to insert a Tiles definition or attribute.

<tiles:insert template="/somepage.jsp"/>
- to insert a URL.

I'm not really sure what the use of the beanName and beanProperty values are, so if someone wants to enlighten me on that, I'd appreciate it.

Finally, I personally don't see the use for including a controllerClass or controllerUrl in the insert tag. IMO, if you want to do something like that you should use the definition tag instead.

I still intend to completely support attributes defined in the tag body as such:

<tiles:insert name="someDefinition">
  <tiles:put name="someAttribute" value="someValue"/>
</tiles:insert>

And the other attributes like flush, ignore, and role will continue to function as always. Have I left out any major uses of the insert tag? Does this change remove any functionality that anyone is currently relying on?

Thanks,
Greg

[1] http://issues.apache.org/struts/browse/SB-21

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


--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com
"You really can't burn anything out by trying something new, and
even if you can burn it out, it can be fixed.  Try something new."
        -- Robert Moog

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

Reply via email to