[jsr-314-open] Adding handling of CDATA blocks in ResponseWriter

Pete Muir pmuir at REDHAT.COM
Fri Apr 3 08:53:38 EDT 2009


On 2 Apr 2009, at 20:50, Jim Driscoll wrote:

> Greetings EG memebers.
>
> I have an implementation problem, and the cleanest, most effective  
> solution is a change in the API, so I'm sending you this email.
>
> The problem:
>
> The current javax.faces.context.ResponseWriter class is aware of XML  
> structure, in that it has methods for writing things like Elements,  
> Comments, and Attributes.  However, CDATA blocks are currently not  
> handled by the API defined there.
>
> The RI previous to this release got around this problem by  
> overloading the startElement and endElement method semantics - if  
> you passed a tag name of "CDATA", then it would start a CDATA block.
>
> Since nothing in the public API used CDATA, this worked fine.
>
> Now, for PartialRequests, CDATA blocks are used by the API.
>
> You cannot embed CDATA blocks within CDATA blocks, so both the API  
> and the Impl need to be aware of when CDATA blocks happen, and they  
> need to coordinate their actions.
>
> This means that we need to update ResponseWriter to be aware of  
> CDATA blocks.
>
> There are two ways we can go about doing this:
>
> 1) Standardize the existing behavior of the implementation, so that  
> startElement("CDATA", component) and endElement("CDATA") start and  
> end CDATA blocks.
>
> or
>
> 2) Add two new menthods, startCDATA() and endCDATA() to  
> ResponseWriter.

I strongly prefer this approach, it doesn't rely on magic.

>
>
> I marginally favor the first approach, mostly since it's not a  
> common need, it's less work, and it doesn't add two new methods that  
> almost noone will use.  It's also the way that the RI currently  
> uses, which hasn't seemed to cause any issues.  (It also requires  
> less RI work, so that may be biasing me, though that's almost never  
> a reason to chose a public API.)
>
> Ryan somewhat favors the second approach, since it's cleaner,  
> architecturally, to separate out the start and stop of the cdata.
>
> But in the end, we're open to which ever way the consensus of the EG  
> goes.
>
> Please reply by COB Monday on this issue, if you have an opinion.   
> We need to wrap this up quickly, we're under a great deal of time  
> pressure.
>
> Jim

--
Pete Muir
http://www.seamframework.org
http://in.relation.to/Bloggers/Pete





More information about the jsr-314-open-mirror mailing list