Differences between revisions 11 and 12
Revision 11 as of 2006-07-06 14:29:56
Size: 4508
Editor: ip70-190-170-28
Comment: A few updates. Thanks to George for the motivation :)
Revision 12 as of 2009-09-20 23:11:53
Size: 4508
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 75: Line 75:
src/java/org/apache/tiles/!Controller.java[[BR]]
src/java/org/apache/tiles/!ControllerSupport.java[[BR]]
src/java/org/apache/tiles/!DefinitionsUtil.java[[BR]]
src/java/org/apache/tiles/filter/!TilesFilter.java[[BR]]
src/java/org/apache/tiles/servlets/!TilesServlet.java[[BR]]
src/java/org/apache/tiles/taglib/util/!TagUtils.java[[BR]]
src/java/org/apache/tiles/!TilesUtilImpl.java[[BR]]
src/java/org/apache/tiles/!UrlController.java[[BR]]
src/java/org/apache/tiles/!Controller.java<<BR>>
src/java/org/apache/tiles/!ControllerSupport.java<<BR>>
src/java/org/apache/tiles/!DefinitionsUtil.java<<BR>>
src/java/org/apache/tiles/filter/!TilesFilter.java<<BR>>
src/java/org/apache/tiles/servlets/!TilesServlet.java<<BR>>
src/java/org/apache/tiles/taglib/util/!TagUtils.java<<BR>>
src/java/org/apache/tiles/!TilesUtilImpl.java<<BR>>
src/java/org/apache/tiles/!UrlController.java<<BR>>

Status

Tiles 2 (the stand-alone version of Tiles) is under development in the Sandbox area of the Struts svn repository:

Until nightly builds are restored, you can find a recent snapshot here:

Online API docs are available:

Related mailing list threads:

Roadmap

This section provides a roadmap for moving the Standalone Tiles project to a GA release.

Milestone 1 - Refactor core API

This is essentially done, but in the process several existing APIs were broken that some users rely on. The next step here is to determine what those APIs are and how to best rebuild that support.

Milestone 2 - [38252] Refactor taglib

The API refactoring broke the taglib. It was patched back together enough to make it compile again, and so far it actually works. The core functionality needs to be extracted from the taglib and the codebase needs to be further refined to provide those features. In the process test cases need to be developed to verify the functionality. (How do you test a taglib?)

Tag Class

Task

Status

PutTag

Remove block that depends on multiple Attribute types.

(./)

DefinitionTag

processNestedTag methods don't handle roles.

(./)

InsertTag

processObjectValue method does not handle type.

(./)

Determine replacement for commented processTypedAttribute.

(./)

PutListTag

processNestedTag methods don't handle roles.

(./)

Tests

Eventually these should be replaced with Cactus or other taglib-appropriate tests, but here are the tests needed for the taglib. Right now the tests are using very simple JSP pages that currently only exist on my computer. I'm happy to share them.

Tag Class

Test description.

Status

PutTag

Create and insert anonymous definitions with multiple types of attributes.

(./)

Test role settings.

DefinitionTag

Define and insert definition in JSP page

FAILS

Other Thoughts

GetAttributeTag simply does a print of the attribute value. Would we prefer it to determine what type the value is and process it differently or leave it as is?

Milestone 3 - [38253] Remove Servlet API dependencies

Once the core library is ready we need to refine the API again to depend on a context class instead of Servlet classes. This will allow Tiles to be used within JSF and Portlet environments. Look at commons-chain and JSF for ideas.

Milestone 4 - [38254] Build Struts integration layer

The final step is to rebuild the existing Struts integration so Standalone Tiles can replace Struts-Tiles.

At this point I think Release 1.0 will be ready.

Additional Components

Application Listener [38255]

[DONE]

Build an application listener that can be used instead of TilesServlet in Servlet 2.3+.

Faces Components

Perhaps Tiles should contain a TilesViewHandler and/or any other components that are needed in JSF.

Removing Servlet API dependencies

The purpose of this enhancement is to remove Tiles' dependency on the Servlet APIs. The following classes have an API dependency on the Servlet APIs. By that, I mean that the API in these classes must change to remove the dependency on the Servlet APIs. The reason for removing the Servlet API dependency is to make Tiles accessible in a Portlet world. The services provided by the Servlet API will be included in a new Context object yet to be created.

src/java/org/apache/tiles/!Controller.java
src/java/org/apache/tiles/!ControllerSupport.java
src/java/org/apache/tiles/!DefinitionsUtil.java
src/java/org/apache/tiles/filter/!TilesFilter.java
src/java/org/apache/tiles/servlets/!TilesServlet.java
src/java/org/apache/tiles/taglib/util/!TagUtils.java
src/java/org/apache/tiles/!TilesUtilImpl.java
src/java/org/apache/tiles/!UrlController.java
src/java/org/apache/tiles/util/!RequestUtils.java

StandaloneTiles (last edited 2009-09-20 23:11:53 by localhost)