Re: Support for Regular Expressions in @Path Annotation using CXF JAX-RS

2008-12-02 Thread Sergey Beryozkin

Hi Bruce

Can you give me a favour and clarify on one of the path expressions.



snip/
@Path({base:base.+suffix}/{tail})
mailto://@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22) 

can you give me a favor and resend this @Path value, possibly in quotes, 
should it read :

@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22) ?

or can be be that a mail reader has encoded the 
@Path({base:base.+suffix}/{tail}) ?

Thanks, Sergey



- Original Message - 
From: Maxfield, Bruce D. (LNG-DAY) [EMAIL PROTECTED]

To: users@cxf.apache.org
Sent: Tuesday, November 25, 2008 3:39 PM
Subject: Support for Regular Expressions in @Path Annotation using CXF JAX-RS


It appears that the regular expression matching within CXF JAX-RS is not
working properly.  I've used a recent (probably 11/20) 2.2 Trunk Release
of CXF to perform these tests along side Jersey 1.0. Below is the test
case code followed by a series of side-by-side test cases using CXF and
Jersey:



-

- RESOURCE CODE  

-





package com.example.simpleJaxRsResources;





import javax.ws.rs.GET;

import javax.ws.rs.Produces;

import javax.ws.rs.Path;

import javax.ws.rs.MatrixParam;

import javax.ws.rs.PathParam;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.UriInfo;



//@Path({base:base.+}/{tail})  - Failed to parse

//@Path(base/{tail})

//@Path({base}/{tail})

//@Path({base}/{tail})

//@Path({base:base.+}/{tail})

//@Path({base:.+base}/{tail})

@Path({base:base.+suffix}/{tail})
mailto://@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22) 


@Produces(text/plain)

public class FirstResource {

   


   @GET

   public String getFirstResource(@PathParam(base) String
base, 


   @PathParam(tail) String tail,

   @MatrixParam(matrixParam) String
matrixParm,

   @Context UriInfo info) {

   


   return Full Request URI:  +
info.getRequestUri() + \n +

   base:  + base + \n +

   tail:  + tail + \n +   


   matrixParm= + matrixParm;

   }



}

--

-- TEST CASE RESULTS 

--





- USE OF REGEX IN @Path TEST RESULTS -

Using Ecplise 3.2, Apache Tomcat 5.5, Jersey 1.0 and CXF latest build.



===

Test #1 - @Path({base:base.+}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8088/Jersey_10/base_suffix/tail

base: base_suffix

tail: tail

matrixParm=null



 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error creating bean with name 'RestCXF_01': Error setting property
values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:base.+}/([^/]+?)(/.*)?





===

Test #2 - @Path({base:.+base}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/prefixbase/tail

base: prefixbase

tail: tail

matrixParm=null





 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error setting property values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:.+base}/([^/]+?)(/.*)?





=

Test #2 - @Path({base:base.+suffix}/{tail})

=



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/base_core_suffix/tail

base: base_core_suffix

tail: tail

matrixParm=null



 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error creating bean with name 'RestCXF_01': Error setting property
values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0


Re: Support for Regular Expressions in @Path Annotation using CXF JAX-RS

2008-11-25 Thread Sergey Beryozkin

Hi,

Not that I'm impressed with CXF results but I'm very happy seeing and welcome 
the test results like this one.
That said, the result is expected as arbitrary regular expressions is a feature introduced after 0.8 api and at the moment CXF does 
not support them yet. That will obviously need to be fixed and it's high on my agenda. I'll use your tests to verify what I've done


Thanks, Sergey


- Original Message - 
From: Maxfield, Bruce D. (LNG-DAY) [EMAIL PROTECTED]

To: users@cxf.apache.org
Sent: Tuesday, November 25, 2008 3:39 PM
Subject: Support for Regular Expressions in @Path Annotation using CXF JAX-RS


It appears that the regular expression matching within CXF JAX-RS is not
working properly.  I've used a recent (probably 11/20) 2.2 Trunk Release
of CXF to perform these tests along side Jersey 1.0. Below is the test
case code followed by a series of side-by-side test cases using CXF and
Jersey:



-

- RESOURCE CODE  

-





package com.example.simpleJaxRsResources;





import javax.ws.rs.GET;

import javax.ws.rs.Produces;

import javax.ws.rs.Path;

import javax.ws.rs.MatrixParam;

import javax.ws.rs.PathParam;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.UriInfo;



//@Path({base:base.+}/{tail})  - Failed to parse

//@Path(base/{tail})

//@Path({base}/{tail})

//@Path({base}/{tail})

//@Path({base:base.+}/{tail})

//@Path({base:.+base}/{tail})

@Path({base:base.+suffix}/{tail})
mailto://@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22)

@Produces(text/plain)

public class FirstResource {



   @GET

   public String getFirstResource(@PathParam(base) String
base,

   @PathParam(tail) String tail,

   @MatrixParam(matrixParam) String
matrixParm,

   @Context UriInfo info) {



   return Full Request URI:  +
info.getRequestUri() + \n +

   base:  + base + \n +

   tail:  + tail + \n +

   matrixParm= + matrixParm;

   }



}

--

-- TEST CASE RESULTS 

--





- USE OF REGEX IN @Path TEST RESULTS -

Using Ecplise 3.2, Apache Tomcat 5.5, Jersey 1.0 and CXF latest build.



===

Test #1 - @Path({base:base.+}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8088/Jersey_10/base_suffix/tail

base: base_suffix

tail: tail

matrixParm=null



 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error creating bean with name 'RestCXF_01': Error setting property
values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:base.+}/([^/]+?)(/.*)?





===

Test #2 - @Path({base:.+base}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/prefixbase/tail

base: prefixbase

tail: tail

matrixParm=null





 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error setting property values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:.+base}/([^/]+?)(/.*)?





=

Test #2 - @Path({base:base.+suffix}/{tail})

=



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/base_core_suffix/tail

base: base_core_suffix

tail: tail

matrixParm=null



 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error creating bean with name 'RestCXF_01': Error setting property
values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:base.+suffix}/([^/]+?)(/.*)?









RE: Support for Regular Expressions in @Path Annotation using CXF JAX-RS

2008-11-25 Thread Maxfield, Bruce D. (LNG-DAY)
Sergey:

That pretty much explains the results.  Once long ago I performed a job
not unlike yours and that made me value good clean test cases.  They
make everyone's lives much easier.

I hadn't realized that this 1.0 feature had not yet been implemented.
Frankly, I ran the tests because I wasn't sure whether this was a CXF
issue or a failure on my part to properly interpret the terse JAX-RS
spec language.

Thanks and I hope you enjoy the holiday,
Bruce

-Original Message-
From: Sergey Beryozkin [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, November 25, 2008 10:56 AM
To: users@cxf.apache.org
Subject: Re: Support for Regular Expressions in @Path Annotation using
CXF JAX-RS

Hi,

Not that I'm impressed with CXF results but I'm very happy seeing and
welcome the test results like this one.
That said, the result is expected as arbitrary regular expressions is a
feature introduced after 0.8 api and at the moment CXF does 
not support them yet. That will obviously need to be fixed and it's high
on my agenda. I'll use your tests to verify what I've done

Thanks, Sergey


- Original Message - 
From: Maxfield, Bruce D. (LNG-DAY) [EMAIL PROTECTED]
To: users@cxf.apache.org
Sent: Tuesday, November 25, 2008 3:39 PM
Subject: Support for Regular Expressions in @Path Annotation using CXF
JAX-RS


It appears that the regular expression matching within CXF JAX-RS is not
working properly.  I've used a recent (probably 11/20) 2.2 Trunk Release
of CXF to perform these tests along side Jersey 1.0. Below is the test
case code followed by a series of side-by-side test cases using CXF and
Jersey:



-

- RESOURCE CODE  

-





package com.example.simpleJaxRsResources;





import javax.ws.rs.GET;

import javax.ws.rs.Produces;

import javax.ws.rs.Path;

import javax.ws.rs.MatrixParam;

import javax.ws.rs.PathParam;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.UriInfo;



//@Path({base:base.+}/{tail})  - Failed to parse

//@Path(base/{tail})

//@Path({base}/{tail})

//@Path({base}/{tail})

//@Path({base:base.+}/{tail})

//@Path({base:.+base}/{tail})

@Path({base:base.+suffix}/{tail})
mailto://@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22)

@Produces(text/plain)

public class FirstResource {



@GET

public String getFirstResource(@PathParam(base) String
base,

@PathParam(tail) String tail,

@MatrixParam(matrixParam) String
matrixParm,

@Context UriInfo info) {



return Full Request URI:  +
info.getRequestUri() + \n +

base:  + base + \n +

tail:  + tail + \n +

matrixParm= + matrixParm;

}



}

--

-- TEST CASE RESULTS 

--





- USE OF REGEX IN @Path TEST RESULTS -

Using Ecplise 3.2, Apache Tomcat 5.5, Jersey 1.0 and CXF latest build.



===

Test #1 - @Path({base:base.+}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8088/Jersey_10/base_suffix/tail

base: base_suffix

tail: tail

matrixParm=null



 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error creating bean with name 'RestCXF_01': Error setting property
values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:base.+}/([^/]+?)(/.*)?





===

Test #2 - @Path({base:.+base}/{tail})

===



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/prefixbase/tail

base: prefixbase

tail: tail

matrixParm=null





 CXF 

Triggered an exception during Tomcat application start-up with the
following text in the Eclipse console:



Error setting property values; nested exception is
org.springframework.beans.PropertyBatchUpdateException; nested
PropertyAccessExceptions (1) are:

PropertyAccessException 1:
org.springframework.beans.MethodInvocationException: Property
'serviceBeans' threw exception; nested exception is
java.util.regex.PatternSyntaxException: Illegal repetition near index 0

/{base:.+base}/([^/]+?)(/.*)?





=

Test #2 - @Path({base:base.+suffix}/{tail})

=



 JERSEY 

Full Request URI: http://localhost:8089/Jersey_10/base_core_suffix/tail

base

Re: Support for Regular Expressions in @Path Annotation using CXF JAX-RS

2008-11-25 Thread Sergey Beryozkin

Hi Bruce

Thanks and as I said you sending these test results is welcome.


I hadn't realized that this 1.0 feature had not yet been implemented.


There's some easy explanation why some features have not been impemented yet or why some which have are actually not complete - say 
proper matrix parameters support, etc. It's the resource issue. I myself do not rememebr having an opportunity to work on CXF JAXRS 
say 100% of time for any given week for the last year or so. There were times when I had a chance to do 50% or so but mostly it was 
15-20% or 0% for a number of weeks. This is hopefully going to change but still it's kind of tough to keep up as far as the complete 
JAXRS compliance is concerned. CXF 2.2 will have a good JAXRS implementation I believe.


Furthemore our strategy has been not to work 'vertically', that is try to implement as much JAXRS as possible but, given the 
resource constraints, to implement the features on demand and also try to do some 'horizontal' work, that is try to bring our JAXRS 
closer to CXF so that it can work better with JAXWS in tandem, provide some good Spring configuration options or provide things like 
Continuation API (which is really cool - added virtually last week). Now that we support 1.0 api, there're fewer and fewer things 
which will need to be done for 100 % JAXRS compliance - but please don't get surprized if you see more test failures :-)


The community help is essential. All the bug reports  and patches have helped a lot - likewise tests like yours are of great help 
too.



Thanks and I hope you enjoy the holiday,


I wish I had them :-) No such luck in Dublin - so I'll keep coding frantically 
:-)

Cheers, Sergey

- Original Message - 
From: Maxfield, Bruce D. (LNG-DAY) [EMAIL PROTECTED]

To: users@cxf.apache.org
Sent: Tuesday, November 25, 2008 4:05 PM
Subject: RE: Support for Regular Expressions in @Path Annotation using CXF 
JAX-RS


Sergey:

That pretty much explains the results.  Once long ago I performed a job
not unlike yours and that made me value good clean test cases.  They
make everyone's lives much easier.

I hadn't realized that this 1.0 feature had not yet been implemented.
Frankly, I ran the tests because I wasn't sure whether this was a CXF
issue or a failure on my part to properly interpret the terse JAX-RS
spec language.

Thanks and I hope you enjoy the holiday,
Bruce

-Original Message-
From: Sergey Beryozkin [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 25, 2008 10:56 AM
To: users@cxf.apache.org
Subject: Re: Support for Regular Expressions in @Path Annotation using
CXF JAX-RS

Hi,

Not that I'm impressed with CXF results but I'm very happy seeing and
welcome the test results like this one.
That said, the result is expected as arbitrary regular expressions is a
feature introduced after 0.8 api and at the moment CXF does
not support them yet. That will obviously need to be fixed and it's high
on my agenda. I'll use your tests to verify what I've done

Thanks, Sergey


- Original Message - 
From: Maxfield, Bruce D. (LNG-DAY) [EMAIL PROTECTED]

To: users@cxf.apache.org
Sent: Tuesday, November 25, 2008 3:39 PM
Subject: Support for Regular Expressions in @Path Annotation using CXF
JAX-RS


It appears that the regular expression matching within CXF JAX-RS is not
working properly.  I've used a recent (probably 11/20) 2.2 Trunk Release
of CXF to perform these tests along side Jersey 1.0. Below is the test
case code followed by a series of side-by-side test cases using CXF and
Jersey:



-

- RESOURCE CODE  

-





package com.example.simpleJaxRsResources;





import javax.ws.rs.GET;

import javax.ws.rs.Produces;

import javax.ws.rs.Path;

import javax.ws.rs.MatrixParam;

import javax.ws.rs.PathParam;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.UriInfo;



//@Path({base:base.+}/{tail})  - Failed to parse

//@Path(base/{tail})

//@Path({base}/{tail})

//@Path({base}/{tail})

//@Path({base:base.+}/{tail})

//@Path({base:.+base}/{tail})

@Path({base:base.+suffix}/{tail})
mailto://@Path(%22%7bbase:base.+suffix%7d/%7btail%7d%22)

@Produces(text/plain)

public class FirstResource {



   @GET

   public String getFirstResource(@PathParam(base) String
base,

   @PathParam(tail) String tail,

   @MatrixParam(matrixParam) String
matrixParm,

   @Context UriInfo info) {



   return Full Request URI:  +
info.getRequestUri() + \n +

   base:  + base + \n +

   tail:  + tail + \n +

   matrixParm= + matrixParm;

   }



}

--

-- TEST CASE RESULTS 

--





- USE OF REGEX IN @Path TEST RESULTS