Hi Stephan

Thanks for your reply and for looking into this.

My expectation was, that path parameters should only be assigned a single path segment, with the exception of the last path parameter when the "limited" flag is set to false (but I might be wrong).

Feel free to use my code fragments for unit testing.

Best regards,
Roman

Stephan Koops wrote:
Hi Roman,

after a short review this seems to me to be a bug. The matching needs a rework, because the specification changes at some points in JAX-RS 0.10. I hope I have time for it the next days. I will also take a look into your message about UriInfo.getPath().

If it is ok, I will use your code fragments as JUnit test cases.

best regards
 Stephan

P.S.: I've had a small holiday from tuesday, so sorry for the delay.

Roman Geus schrieb:
Hallo all

I'm using restlet 1.1-m5 and I have a problem with routing http requests to JAX-RS resource methods:

My resource class looks as follows:

@Path("admin")
public class RestAdminServiceResource {

   /**
* Provides both static and dynamic, per-request information, about the
    * components of a request URI.
    */
   @Context
   UriInfo uriInfo;

   @GET
   @Produces("text/html")
   public Response root() {
       ...
   }

   @GET
   @Path("{project}")
   @Produces("text/html")
   public Response project(@PathParam("project") String project) {
       ...
   }

   @GET
   @Path("{project}/{repository}")
   @Produces("text/html")
   public Response repository(@PathParam("project") String project,
           @PathParam("repository") String repository) {
       ...
   }

   @GET
   @Path("{project}/{repository}/schema")
   @Produces("text/html")
   public Response schemaDir(@PathParam("project") String project,
           @PathParam("repository") String repository) {
       ...
   }

   @GET
   @Path("{project}/{repository}/schema/{schema}")
   @Produces("text/html")
   public Response schema(@PathParam("project") String project,
           @PathParam("repository") String repository,
           @PathParam("schema") String schema) {
       ...
   }

}

The following requests are routed as expected:

http://host/admin
http://host/admin/PRJ
http://host/admin/PRJ/REPO

However requests containing the "schema" path segment are all routed to the repository method, instead of the schemaDir and schema method:

http://host/admin/PRJ/REPO/schema
http://host/admin/PRJ/REPO/schema/SCM

Is this working as intended? If yes, how can I implement resources for {project}/{repository}/schema and {project}/{repository}/schema/{schema}.

Thanks,
Roma

Reply via email to