- Struts 2.0.0 is preparing a "early adopter" build.
- Codebase seems feature-complete.
- Documentation issues remain.
- Example issues remain.
- Assembly/distribution issues remain.
For resolved issues, see Struts 2.0.0 DONE in the issue tracker.
For pending issues (if any) see See also Struts 2.0.0 TODO in the issue tracker.
For known issues, see Struts 2.0.1 TODO
Overall Status
Initial rename of packages and configuration files | Complete | |
---|---|---|
Pass Web``Work2 codebase through the Incubator | Complete | |
Pending | | |
Complete | | |
Utilize Cookbook format for Showcase and add Struts-Examples use cases |
| |
Complete | | |
Deprecate selected legacy API members (e.g. Around``Interceptor, "do" clause) | Complete | |
Update Javadoc to match new package and configuration naming | Complete | |
Implement selected new features and Struts 1 features (infra) | Complete | |
Initial draft added | | |
Complete | Pending | |
Complete | Pending | |
Second documentation review | Complete | |
Complete standard release plan | Complete | |
Struts 2.0.0 is intended as a "development" distribution only |
|
|
Documentation Status
Step 1 - Setup new Confluence instance | Complete | |
---|---|---|
Step 2 - Initial pass to update nomenclature and remove obsolete material | Complete | |
Step 3 - Update "snippets" to reference ASF repository | Complete | |
Step 4 - Complete tutorials and other "TODO" sections | Pending Complete |
Resources
- Apache Struts Release Guidelines
- Signing Releases
- Apache Mirroring Guidelines
Release Manager
The release manager is Ted Husted.
See Also
|
---|
Additional Background
- Struts 2.0.0 omnibus ticket
- Issue Tracker
- Struts Ti Proposal
- Migration Issues
- Struts 2 Rough Spots
- Public API Whiteboard
- Retroweaver
Release Manager
The release manager is Ted Husted.
- See also Creating and Signing a Distribution
Special Issues
Struts 2.0 is based on the WebWork 2 codebase. Essentially, Struts 2.0 will be the technical equivalent of WebWork 2.3. (The WebWork 2 codebase was accepted into the Struts project through the Apache Incubator.)
...
- Separate classes that most applications need to use. Isolate classes that the framework uses internally or that are rarely used by applications. (See Rough Spot #3.)
- Distinguish between the published public versus private APIs. (See Rough Spot #4.)
- Utilize properties (methods) instead of protected or public fields (). (See #13.)
- Review exception handling. Some are still being swallowed rather than rethrown. (See #20 and WW-652@JIRA652@ww)
Modifications
- Simplify TextProvider. (See #15.)
- Modify ParametersInterceptor to sort parameter names by depth (using bucket sort) and then map them in that order (shallowest first). (See #21.)
- Use the strategy pattern to swap in different implementations of interfaces like ValidationAware. (See Tim, NTH #1.)
Deprecations and Removals
- Deprecate or remove the AroundInterceptor. (See #7.)
- Eliminate "do" clause for Action alias lookups. Scan Actions at load time for known aliases, and fail fast.
- Eliminate "default" alias (which relied on "doAlais").
Architecture
- Address the confusing issue of the validation/workflow lifecycle and different methods. (See Patrick #4.)
...
- On the OGNL value stack, rename #request for request parameters and #requestAttributes for request attributes. (See #17 and WW-785@JIRA785@ww.)
- Work with OGNL to add Java 5 support. (See #31.)
- Work with OGNL to make it a clear superset of JSTL. (See Gabe #4.)
Struts 1 Features to Implement
- Wildcard Action Mappings (Done in XWork 2)
- DynaForm as Model Object (including LazyDynaForms)
- Extends for action mappings (See Tim, NTH #2.)
- Change the default submit method for the form tag from GET to POST (See Ted, #2.)
- Set field focus
Outstanding Issue Review
Preparation Checklist
...
#
...
Description
...
Status
...
1.
...
${DESCRIPTION}
...
The Commons Preparation Guide is a helpful preparation backgrounder, but Commons uses the "beta/release-candidate/final" process. Likewise, the HTTPD Release Guidelines is a helpful "overall process" backgrounder, but HTTPD does not use a test-build stage.
Dependency versions for this release
Dependency | Version | Status |
---|---|---|
${DEPENDENCY} | ${VERSION} | ${STATUS} |
Testing Checklist
Testing Summary
# | Description | Completed |
---|---|---|
1. | Run Unit Test targets | ${STATUS} |
2. | Play test bundled applications | ${STATUS} |
TODO: A Silenium test suite for the applications would be great!
Test Build Distribution Checklist (A)
See also Commons Step-by-Step Guide Creating and Signing Releases
# | Description | Completed | ||
---|---|---|---|---|
A1. | Setup new JIRA version level or update release on Roadmap | | ||
A2. | Tag release in svn: ${STRUTS_x2_x0_x0} | ${STATUS} | ||
A2. | Run Distribution Target | ${STATUS} | ||
| ||||
A3. | Update POM version level and run Distribution Target | | ||
A4. | Create Sums and Sign Distributions | | ||
A5 A3. | Upload Distribution to svn | ${STATUS} |
| |
A6. | Deploy JAR to Apache Java-Repository | | ||
| |
| ||
A7 A4. | Post release-quality vote on dev@ lists | ${STATUS} |
Vote (A)
${PMC_MEMBER} | ${GRADE} |
- If release vote fails, including for a lack of quorum (3 binding +1s), remove from dist builds folder.
- If a release vote passes (Alpha, Beta or GA), the release may be announced and mirrored, at the PMC's discretion.
- If vote is GA, goto Checklist (C).
Point Release Distribution Checklist (B)
...
B1. | Create Sums and Sign Distributions [2] | ${STATUS} | ]]></ac:plain-text-body></ac:structured-macro> |
---|---|---|---|
B2. | Setup new JIRA version level or update release on Roadmap | ${STATUS} | |
B3. | Update "AcquiringDownooads" page on website and Test Downloads | ${STATUS} |
...
If initial vote is Alpha or Beta, voting can continue until a GA or "withdraw" vote passes, or there is a subsequent release.
${PMC_MEMBER} | ${GRADE} |
General Availability Distribution Checklist (C)
Description | Completed | ||||
---|---|---|---|---|---|
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="087cacd7-49c1-4aeb-8266-d13dccff7943"><ac:plain-text-body><![CDATA[ | C1. | Copy Distribution to Mirrored Directories [3] | ${STATUS} | ]]></ac:plain-text-body></ac:structured-macro>||
C2. | Deploy JAR to Apache Java-Repository | ${STATUS} | C3. | After 24 hours, update "AcquiringDownloads" page on website | ${STATUS} |
C4 C3. | Post an announcement to lists and website | ${STATUS} |