+1 for wrapping the stream if necessary and extending the javadoc
Regards,
Seb
On 02.08.2012 14:22, Hardy Ferentschik wrote:
On 1 Jan 2012, at 8:56 AM, Gunnar Morling wrote:
> Hi all,
>
> I'm currently implementing this change (new mandatory “version“ attribute in BV
1.1 XML descriptors) within the RI (see HV-595). The basic idea is to
>
> * examine the root element for the version attribute using a parser (Stax in our
case) and then
> * unmarshal the descriptor with JAXB, using the right XSD based on the retrieved
version.
>
> So I have to access the input streams representing the descriptors twice. This is no
problem for the streams we're opening ourselves (validation.xml), but it could be an
issue for streams passed via Configuration#addMapping().
>
> I can see the following options now:
>
> * read descriptor streams into a string first which then can be processed several
times. Alternatively wrap any streams not supporting the mark/reset contract into a
BufferedInputStream.
> * demand in the spec that any passed input stream must support mark/reset. This would
also be beneficial for the scenario of creating several factories from one Configuration,
which we discussed a while ago. But obviously this would be a non compatible change for
1.0 clients passing non resettable streams to addMapping().
What's about a combination of wrapping into BufferedInputStream and adding some
javadocs. I think wrapping the input stream into a BufferedInputStream works fine. We can
combine this
with a note in the javadocs that recommends to pass a input stream which supports
mark/reset.
--Hardy
_______________________________________________
beanvalidation-dev mailing list
beanvalidation-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/beanvalidation-dev