dev@jsr311.java.net

Re: JSR311: Response isn't adequate

From: Marc Hadley <Marc.Hadley_at_Sun.COM>
Date: Fri, 29 Feb 2008 15:06:14 -0500

I think I understand now. The issue isn't with the Provider model its
a more general problem. Just adding the ability to get at an
OutputStream (the same one you get in an entity provider) from a
resource class won't fix anything. Right ?

Marc.


On Feb 29, 2008, at 2:26 PM, Larry Cable wrote:

> I agree with Bill, both Servlet *and* this JSR require a mechanism
> to allow streaming/chunking to the
> response output stream ... best to fix this in 1.0 as fixing it in
> 3.0 (ala Servlet) is a bit like making
> unthreaded, non reentrant code in the C locale, MT-hot and I18N-ized
> at the same time!
>
> :)
>
> - Larry
>
> From: Bill Burke
> Sent: Fri 2/29/2008 10:20 AM
> To: dev_at_jsr311.dev.java.net
> Subject: Re: JSR311: Response isn't adequate
>
> Marc Hadley wrote:
> > On Feb 28, 2008, at 12:10 PM, Bill Burke wrote:
> >>
> >> And I've already told you that this just not cut it for specific
> use
> >> cases (Blobs). It is going to make EJB integration(really anybody
> >> that uses JTA) unusable in those cases. I don't think Lobs are an
> >> unreasonable use case to support.
> >>
> >>> - In a servlet container you can inject HttpServletResponse and
> use
> >>> the OutputStream from that but you'll have to set any headers
> >>> yourself before you commence writing.
> >>
> >> So, anything that doesn't fit the @Provider model, we'll have to
> >> escape to Servlet API or worse, have our own vendor specific
> extension
> >> for? Hmmmm...All because we can't inject an OutputStream.
> >>
> > I'm not I understand why blobs don't fit the provider model ? If the
> > provider runs in the same connection+transaction scope as the
> resource
> > method and can be injected with all the same stuff what doesn't
> work ?
> > Sorry if I'm being dense here.
> >
>
>
> That's the thing, the provider has to run in the same transaction
> scope
> as the resource. Every container I know that does transactions
> usually
> ends the transaction before a response is sent back to the client.
> (a.k.a EJB TransAttribute.REQUIRED). You basically wouldn't be able
> to
> use container managed transactions. Are you following me? I don't
> know
> if I'm being clear.
>
>
> > Injecting an OutputStream is only half the work, if you still want
> to be
> > able to use Response to specify headers then you'd either have to
> call
> > that first and somehow pass that to the runtime then start writing
> to
> > the output stream or we'd have to buffer the output waiting for the
> > method to complete and return the response. Again, sorry if I missed
> > something, I'm still catching up from a few days vacation.
> >
>
> Don't want the buffering. That could be done in the current model. I
> want the ability to stream LOBs and again, some DBs require a
> connection
> to be open while you're reading a LOB.
>
> --
> Bill Burke
> JBoss, a division of Red Hat
> http://bill.burkecentral.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe_at_jsr311.dev.java.net
> For additional commands, e-mail: dev-help_at_jsr311.dev.java.net
>
>
> Notice: This email message, together with any attachments, may
> contain information of BEA Systems, Inc., its subsidiaries and
> affiliated entities, that may be confidential, proprietary,
> copyrighted and/or legally privileged, and is intended solely for
> the use of the individual or entity named in this message. If you
> are not the intended recipient, and have received this message in
> error, please immediately return this by email and then delete it.

---
Marc Hadley <marc.hadley at sun.com>
CTO Office, Sun Microsystems.