[ 
https://issues.apache.org/jira/browse/CXF-4199?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13841282#comment-13841282
 ] 

Sergey Beryozkin edited comment on CXF-4199 at 12/6/13 2:03 PM:
----------------------------------------------------------------

Hi Andriy

I've created https://issues.apache.org/jira/browse/CXF-5439 to get all the main 
native CXF providers marked too. I'm not sure yet how fast we should go there, 
perhaps we should wait till https://issues.apache.org/jira/browse/CXF-5441 gets 
resolved, perhaps the auto-discovery of CXF native providers should work 
consistently for all the frontends.

I think what we should do in meantime is to encapsulate the auto-discovery code 
into a helper class. For example, we have org.apache.common.util.ProxyHelper 
which tries Spring first and then defaults to the basic level support.

So what about this plan:

1. org.apache.common.util.ClassPathScanner, it will try Spring, default to 
no-op, it will have several helper methods, example, it will scan for .class by 
default by can accept other extensions like .xsd. It will also optionally 
create class instances or return classes only. It will optionally accept a list 
of required annotations and return a Map<Annotation, List<Object>> with every 
annotation linked to a corresponding List of objects

2. Update JAXRS Server Spring factory to use ClassPathScanner

3. Update JAXRS Client Spring factory to use ClassPathScanner, except that it 
will create providers only, and return  a service class

This will probably let us completely resolve this issue. 
When we have a ClassPathScanner then JAXWS Serrver Spring factory might also 
use it and then we can also utilize it for discovering the rest of CXF 
providers.

And then 

4. We will review how to provide a light-weight discovery support for non 
Spring apps, encapsulated within that Scanner. 
For example, I've just found 
http://sourceforge.net/projects/extcos/files/releases/0.4b/

which seems to be pretty light weight and it depends on ASM and CXF has an 
optional ASM dependency too.

Thoughts ?

Thanks, Sergey





was (Author: sergey_beryozkin):
Hi Andriy

I've created https://issues.apache.org/jira/browse/CXF-5439 to get all the main 
native CXF providers marked too. I'm not sure yet how fast we should go there, 
perhaps we should wait till https://issues.apache.org/jira/browse/CXF-5441 gets 
resolved, perhaps the auto-discovery of CXF native providers should work 
consistently for all the frontends.

I think what we should do in meantime is to encapsulate the auto-discovery code 
into a helper class. For example, we have org.apache.common.util.ProxyHelper 
which tries Spring first and then defaults to the basic level support.

So what about this plan:

1. org.apache.common.util.ClassPathScanner, it will try Spring, default to 
no-op, it will have several helper methods, example, it will scan for .class by 
default by can accept other extensions like .xsd. It will also optionally 
create class instances or return classes only. It will optionally accept a list 
of required annotations and return a Map<Annotation, List<Object>> with every 
annotation linked to a corresponding List of objects

2. Update JAXRS Server Spring factory to use ClassPathScanner

3. Update JAXRS Client Spring factory to use ClassPathScanner, except that it 
will create providers only, and return  a service class

This will probably let us completely resolve this issue. 
When we have a ClassPathScanner then JAXWS Serrver Spring factory might also 
use it and then we can also utilize it for discovering the rest of CXF 
providers.

And then 

4. We will review how to provide a light-weight discovery support for non 
Spring apps, encapsulated withing that Scanner. 
For example, I've just found 
http://sourceforge.net/projects/extcos/files/releases/0.4b/

which seems to be pretty light weight and it depends on ASM and CXF has an 
optional ASM dependency too.

Thoughts ?

Thanks, Sergey




> Support class-scanning for discovering JAX-RS providers 
> --------------------------------------------------------
>
>                 Key: CXF-4199
>                 URL: https://issues.apache.org/jira/browse/CXF-4199
>             Project: CXF
>          Issue Type: Improvement
>          Components: JAX-RS
>            Reporter: Sergey Beryozkin
>         Attachments: patch-base-packages-discovery-all-packages.txt, 
> patch-base-packages-discovery.txt
>
>
> With the search extensions module containing a provider the time has come to 
> support the optional class-scanning. Will help in cases when the providers 
> are simple and no extra configuration is expected. Post 2.6 though



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to