[ http://issues.apache.org/jira/browse/PLUTO-216?page=all ]

Craig Doremus updated PLUTO-216:
--------------------------------

    Fix Version: 1.0.2

> JSTL 1.1 EL (Expression Language) won't work by default with the Pluto 
> Deployer/Descriptors sub-project
> -------------------------------------------------------------------------------------------------------
>
>          Key: PLUTO-216
>          URL: http://issues.apache.org/jira/browse/PLUTO-216
>      Project: Pluto
>         Type: Improvement

>   Components: deployer
>     Versions: 1.0.1
>  Environment: Pluto 1.0.1 final, Tomcat 5.5, Java 1.5, JSTL 1.1
>     Reporter: Elliot Metsger
>      Fix For: 1.0.2
>  Attachments: PLUTO-216-01.patch, PLUTO-216-02-cumulative.txt
>
> Note: this issue affects the Descriptors sub-project but I didn't see a 
> Component labeled "Descriptors".
> Another Note: Everything in here is MHO!  I'm new to this stuff.
> In order to use JSTL 1.1 in a portlet view, one must use a servlet container 
> that supports Servlet Specification version 2.4 and JSP 2.0.  Tomcat 5.5 
> (which supports servlet spec 2.4/JSP 2.0) won't "activate" the JSTL 1.1 
> expression language unless the attribute "version" with a value of "2.4" is 
> present in the <web-app> element of the web.xml deployment descriptor.  I 
> presume this is for backwards compatability with JSTL 1.0 (see appendix A.1 
> of JSTL 1.1 spec).
> This is an issue for portlet authors that use JSTL 1.1 EL who deploy with or 
> run in the pluto container, because the Pluto descriptors and portal 
> sub-projects don't preserve the "version" attribute on the <web-app> element 
> if it is placed there by the portlet author.
> This potentially involves a number of changes affecting the Descriptors 
> sub-project (There may be classes in the Portal sub-project to be dealt with 
> as well, when the deployment descriptor is unmarshaled):
> 1. The models for Servlet 2.4 descriptors are different from Servlet 2.3 
> descriptors.  This could lead to supporting multiple castor mapping files 
> instead of a singular mapping file.  Currently the existing mapping file 
> won't marshal a valid Servlet 2.4 web.xml.  This is fixed by implementing two 
> custom castor field handlers (to handle the pesky <distributable/> element), 
> and re-ordering some of the elements in the mapping file (and adding a 
> "version" field w/ accessors in the WebAppDD class).
> 2. The existing web.xml file shipped with 1.0.1 final that is used by the 
> test cases claims to be a Servlet 2.4 descriptor but it doesn't validate 
> against the 2.4 XSD.  This is fixed by signifigantly re-factoring the 
> document.  Additional elements (such as <jsp-config>) are introduced into the 
> web.xml file that don't have corresponding Java objects - the corresponding 
> Java objects need to be created and the castor mapping updated in order for 
> the unit tests to pass (e.g. there is a problem with unmarshaling a 2.4 
> descriptor).
> 3. Minor modifications were made to AbstractCastorDescriptorService in order 
> to allow implementations to suppy their own 
> org.apache.xml.serializer.OutputFormat (since Servlet 2.3 descriptors should 
> have a Doctype and Servlet 2.4 descriptors don't).
> These are just three issues that I've found so far.  I started out by trying 
> to do the simplest thing possible: just have the Descriptors sub-project 
> preserve a version attribute if it is present.  It has kind of snowballed 
> from there as I dug into the code.
> Probably the Descriptors project doesn't need to know everything about the 
> descriptor.  If castor runs across elements during marshaling that aren't 
> defined in the mapping file, it can be ignorant of the elements (as long as 
> they aren't required for Pluto's purposes!); when it comes time to unmarshal 
> the descriptor it can just spit the unknown elements back out into the 
> web.xml in document order.  So the solution may be simpler than I've outlined 
> above.
> I'm going to go back and try to do the simplest thing and I'll put a patch on 
> this issue and see what people think.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to