Bug 45197 - Need to support the JSTL 1.2 specification
Need to support the JSTL 1.2 specification
Status: RESOLVED FIXED
Product: Taglibs
Classification: Unclassified
Component: Standard Taglib
1.2.0
All All
: P2 normal with 1 vote (vote)
: ---
Assigned To: Tomcat Developers Mailing List
:
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2008-06-12 14:45 UTC by Robert Goff
Modified: 2010-10-10 13:02 UTC (History)
3 users (show)



Attachments
The attachment implements the JSTL 1.2 specification changes. (57.04 KB, patch)
2008-06-12 15:06 UTC, Robert Goff
Details | Diff
Fix to previous patch for one file that does not happily apply. (3.41 KB, patch)
2008-12-17 00:34 UTC, Henri Yandell
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Robert Goff 2008-06-12 14:45:24 UTC
There should be an opensource JSTL 1.2 implementation.  Please implement the changes required for JSTL 1.2 compliance.
Comment 1 Robert Goff 2008-06-12 15:06:51 UTC
Created attachment 22121 [details]
The attachment implements the JSTL 1.2 specification changes.

There were also some build.xml changes needed to 
  - Update the standard-version to 1.2
  - Update to use the JSP 2.1 spec
  - Update the library-build to include EL-1.0
Comment 2 Donald Woods 2008-06-17 06:11:12 UTC
I verified the patch against a local copy of 1.1.2 and built it using the latest IBM 1.5.0 Java SDK on SLED10 and MacOSX.  This patch and creating an Apache version of JSTL 1.2 is important, as the Sun RI JSTL 1.2 jar will only pass the JavaEE 5 TCK on a Sun JVM, due to hard-coded dependencies on Sun renamed Xerces/Xalan classes in their JVM (sun.org.apache.*).  If we want to support JSTL 1.2 users on Apache Harmony and other JDKs, then we need to release an Apache implementation.

-Donald Woods
dwoods@apache.org
Apache Geronimo Committer and PMC Member
Comment 3 Henri Yandell 2008-06-18 00:20:07 UTC
This rocks, thankyou Robert for the patch and Donald for testing it.

Robert - I think a software grant would be needed for a contribution of this importance:

http://www.apache.org/licenses/software-grant.txt
Comment 4 Henri Yandell 2008-06-18 00:27:55 UTC
Patch pretty much applies to the latest trunk.  

src/org/apache/taglibs/standard/tag/common/core/SetSupport.java has some problems and will have to be done by hand, and PageContextImpl.java moved to /test/org/apache/taglibs/standard/lang/jstl/test/.
Comment 5 Joe Bohn 2008-11-17 10:10:20 UTC
I'm interested in a release that includes this enhancement for possible inclusion in Apache Geronimo
Comment 6 Henri Yandell 2008-12-16 10:17:30 UTC
Software grant looks to have been received :)

Need to branch 1.1 and 1.2 from each other somehow, and apply the below. I already have the 1.2 TCK so can try to start running that (never run a TCK before... I hear they're "fun").
Comment 7 Henri Yandell 2008-12-17 00:34:44 UTC
Created attachment 23032 [details]
Fix to previous patch for one file that does not happily apply.
Comment 8 Henri Yandell 2008-12-17 00:36:20 UTC
Branch created - trunk for standard is now 1.2 specific.
Comment 9 Henri Yandell 2008-12-18 00:14:51 UTC
Build updated. Build succeeds. Unit tests pass.

After a bit of build logic adjustments, Cactus tests pass too.

Need to do a sanity check on each change against:

http://jcp.org/aboutJava/communityprocess/maintenance/jsr052/jstl-1_2-mr-changeLog_PFD.html
Comment 10 Henri Yandell 2008-12-21 11:15:56 UTC
EvaluationTest (which fails, but I suspect has for a long time) produces the same results. So that's a successful regression test.
Comment 11 Henri Yandell 2008-12-21 16:25:53 UTC
Patch is applied with detailed SVN commit comment:

http://svn.apache.org/viewvc?view=rev&revision=728565

A few followup items still to do:

* Look at the question in SetSupport.java and resolve.
* Look at questions in the length method in ForEachSupport.java
* Look at commented out code in prepre in ForEachSupport.java
* javadoc for new Expression classes
* Ensure equals()/hashCode() is fine in new Expression classes

# Not covered and suggest unit tests are implemented for each if possible:

    *  Example involving <fmt:parseDate> in section 9.9 was incorrect. A pattern has been added so the date can be parsed properly.
    * Clarified the fact that the output of <c:url> wont work for the url attribute value of <c:import> for context relative URLs (URLs that start with a '/'). (section 7.4)
# Create unit test for JSTL change #1
# Create unit test for JSTL change #2
Comment 12 Jeremy Boynes 2010-10-10 13:02:31 UTC
Resolving as a build from trunk now passes the JSTL 1.2 TCK.