[jsr369-experts] Re: [SERVLET_SPEC-134] Push API vJetty2

From: Edward Burns <edward.burns_at_oracle.com>
Date: Mon, 24 Aug 2015 06:16:59 -0700

>>>>> On Thu, 20 Aug 2015 06:59:16 +1000, Greg Wilkins <gregw_at_webtide.com> said:

GW> Should we also be explicit about how query string included in setPath and
GW> one in setQueryString are handled?

I don't see setPath() or setQueryString() anywhere in the API. I assume
you mean path() and queryString(). [1]

GW> I'm assuming that they should be merged and the key difference is that
GW> setPath is reset each cycle, but the setQueryString is not.

SWC> There are two ways of merging for parameters with the same name. (Let us
SWC> take a simple example: path with a=1, query with a=2.)
SWC> a) replace a=2
SWC> b) aggregate, a=1, a=2

SWC> It should be (b).

>>>>> On Thu, 20 Aug 2015 11:04:57 +1000, Greg Wilkins <gregw_at_webtide.com> said:

GW> I prefer b)
GW> I think the replace semantic is used elsewhere, but in this case the caller
GW> has full control over both parts and the only difference between then is
GW> lifecycle, so they have full control if they really want replace.

b) it is. I have updated the spec at [2].

I also made it clear that an IAE must be thrown if a call to push()
happens before a call to path() on a given push lifecycle instance.

>>>>> On Fri, 21 Aug 2015 16:14:06 -0700, Shing Wai Chan <shing.wai.chan_at_oracle.com> said:

SW> In PushBuilder, I notice there are several getters API?
SW> Do we really need that?

SW> If we decide to keep those APIs, then we need to take a closer look.
SW> In PushBuilder, we have:
SW> Set<String> getHeaderNames()

SW> Is the modification of the resulting Set has any effect on push request?
SW> It should not. In this case, I suggest to add the following
SW> clarification in the javadoc:

SW> Any changes to the returned Set must not affect the push request.

SW> How can we handle the case of headers with the same header name?
SW> As in HttpServletRequest, we would to like to add the following API:
SW> Collection<String> getHeaders(String name)



| edward.burns_at_oracle.com | office: +1 407 458 0017
| 51 Business days til JavaOne 2015
| 66 Business days til DOAG 2015
[1] https://maven.java.net/service/local/repositories/snapshots/archive/javax/servlet/javax.servlet-api/4.0.0-b01-SERVLET_SPEC-134-SNAPSHOT/javax.servlet-api-4.0.0-b01-SERVLET_SPEC-134-20150819.164748-2-javadoc.jar/!/javax/servlet/http/PushBuilder.html#path-java.lang.String-
[2] https://maven.java.net/service/local/repositories/snapshots/archive/javax/servlet/javax.servlet-api/4.0.0-b01-SERVLET_SPEC-134-SNAPSHOT/javax.servlet-api-4.0.0-b01-SERVLET_SPEC-134-20150824.131118-3-javadoc.jar/!/index.html