> -----Original Message-----
> From: Sergey Beryozkin [mailto:[email protected]]
> Sent: Wednesday, February 23, 2011 12:07 PM
> To: [email protected]
> Subject: Re: Convenience features for generating HATEOAS urls?
> 
> The builder methods such as queryParam(), etc, which do affect the
> internal state are obviously not thread-safe.
> 
> Actually, I've reread your message - you were saying you assembled a
> cache...
> 
> So those UriBuilder instances, in the cache, represent the relative
> URIs, so you can just keep the cache of relative URIs converted to
> strings only and then add them as links provided you have an xml:base,
> or if not then add them as path values to the the uri builder
> representing the current baseUri builder. Finally when building the
> uri using uriBuilder.build(), you may need to pass the values of the
> path parameters, if a given method has say @Path("{id}")

I could use more elaboration.

What is "xml:base"?

How do I convert the relative Builder to a string (the obvious 
builder.toString() doesn't do anything useful) so I can cache it?

And a perhaps unrelated question: What is a "matrix param"?  The javadoc for 
the related methods don't appear to tell me what it really is.

> You may also try uriInfo.getAbsoluteUriBuilder (sorry - do not have
> eclipse opened now so the actual name of the method may differ
> slightly) - this will give you the complete URI which the current
> method is processing...There's also the UriInfo method which will give
> you the builder containing the query parameters too
> 
> 
> thanks, Sergey
> 
> On Wed, Feb 23, 2011 at 7:51 PM, KARR, DAVID (ATTSI) <[email protected]>
> wrote:
> >> -----Original Message-----
> >> From: Sergey Beryozkin [mailto:[email protected]]
> >> Sent: Wednesday, February 23, 2011 2:21 AM
> >> To: [email protected]
> >> Subject: Re: Convenience features for generating HATEOAS urls?
> >>
> >> Hi
> >> >
> >> > Are UriBuilder instances thread-safe?  If I assembled a cache of
> >> UriBuilder instances mapped to the public methods of my class (which
> >> have the @GET or @POST annotation), can I then use that and call
> >> "build()" and other methods on that instance?  For instance, does
> >> "build()" on a UriBuilder return the same instance, or a new one?
> >> >
> >>
> >> uriBuilder.build() returns a new URI instance every time.
> >> I think, in CXF at least, calling build() on the same cached
> >> UriBuilder instance, should be safe too because it does not modify
> any
> >> state internally while building a URI. uriBuilder.clone won't be,
> but
> >> uriBuilder.build() should be ok...
> >
> > What about the "queryParam()" method?  That returns a UriBuilder, not
> a URI.
> >

Reply via email to