By the way, the Karaf full example is here:

https://github.com/apache/karaf/tree/master/examples/karaf-rest-example/karaf-rest-example-whiteboard

Regards
JB

On 03/01/2019 16:38, Tim Ward wrote:
> I know that the JAX-RS whiteboard spec took a while to become a reality,
> but I’m really glad to hear that it is working well for you, and that it
> has helped to clean things up. 
> 
> Best Regards,
> 
> Tim
> 
>> On 2 Jan 2019, at 21:35, Oliver Schweitzer <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Hi,
>>
>> Ok, thanks to the hints itt I have solved my two most pressing issues,
>> with some links/insights below. 
>>
>> JAAS:
>>
>> This helped me immensely to bridge JAAS and
>> JAX-RS: 
>> https://github.com/andyphillips404/awplab-core/blob/master/rest/service/src/main/java/com/awplab/core/rest/service/security/BasicAuthKarafSecurityRequestFilter.java
>>  
>> The Cxf JAASLoginInterceptor and the Filter that uses it have issues
>> (for me) I didn’t want to solve for my new Jax-Rs only setup, as
>> illustrated by this
>> thread: 
>> http://karaf.922171.n3.nabble.com/Security-Subject-from-AccessControlContext-is-null-when-using-JAAS-and-CXF-JAASAuthenticationFilter-td4037821.html
>>
>> Cors:
>>
>> This here helped me understand how to do Cors correctly including
>> Preflight: 
>> https://github.com/resteasy/Resteasy/blob/master/resteasy-core/src/main/java/org/jboss/resteasy/plugins/interceptors/CorsFilter.java
>>
>> I just added (JAX-RS)Features and ConfigAdmin, some DS and Jax-rs
>> Whiteboard annotations (the spec really helps), and am now in happy
>> component land. 
>>
>> So it really looks like that the new Jax-rs stuff in R7 helps me with
>> cleaner code, dependency streamlining and modularity.
>>
>> Thanks, especially to Tim for the original pointer to the Aries
>> implementation and a happy new year.
>>
>> Best regards,
>>
>> Oliver
>>
>>
>> Le 2 janv. 2019 à 13:13, Tim Ward <[email protected]
>> <mailto:[email protected]>> a écrit :
>>
>>>>> 1. Some of the providers I configure programmatically implement JAX-RS
>>>>> interfaces and are provided by CXF or other frameworks,
>>>>> e.g. CrossOriginResourceSharingFilter, MultipartProvider, 
>>>>> JacksonJsonProvider, WebApplicationExceptionMapper.
>>>>> How do I make these known to my JAX-RS Whiteboard  (Whiteboard service)
>>>>> ?Just derive a new class, annotate as a Component and JaxrsExtension?
>>>
>>> You have several options here, some of which have already been
>>> described, but there are some which have been overlooked.
>>>
>>>   * Some extensions (such as support for Jackson’s JSON) are already
>>>     available for the whiteboard. For example this integration
>>>     project comes from Aries
>>>     
>>> <https://github.com/apache/aries-jax-rs-whiteboard/tree/master/integrations/jackson>.
>>>   * You can make use of the JAX-RS whiteboard’s dependency system to
>>>     build your own JAX-RS feature which you then rely on.
>>>
>>>
>>> For example:
>>>
>>> @Component@JaxrsName(“myFeature") @JaxrsExtensionpublicclass
>>> MyFeature implements Feature {
>>>
>>> @Override
>>>     public boolean configure(FeatureContext fc) {
>>> fc.register(CrossOriginResourceSharingFilter.class);
>>> }
>>>
>>> } 
>>>
>>> You can then add requirements for this feature to your resources
>>> (ideally using config admin) using the osgi.jaxrs.extension.select
>>> property described
>>> in 
>>> https://osgi.org/specification/osgi.cmpn/7.0.0/service.jaxrs.html#service.jaxrs.common.properties
>>>
>>>
>>>>> 2. Swagger2Feature, JAASLoginInterceptor, FastInfosetFeature, 
>>>>> GZIPFeature, CORSPreflightInterceptor (my
>>>>> code, extends AbstractPhaseInterceptor<Message>) are provided by
>>>>> CXF and
>>>>> implement CXF interfaces. I gather I can't use these directly with the
>>>>> Whiteboard? What do I do with those?  Reimplement/port to JAX-RS?
>>>
>>> There are ways to make these existing features work, but it is a much
>>> better idea to port to the standard JAX-RS APIs, otherwise you’ll end
>>> up coupled to CXF unnecessarily.
>>>
>>> Best Regards,
>>>
>>> Tim
>>>
>>>
>>>> On 28 Dec 2018, at 17:51, Jean-Baptiste Onofré <[email protected]
>>>> <mailto:[email protected]>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> you can take a look on the Karaf JAXRS Whiteboard sample:
>>>>
>>>> https://github.com/apache/karaf/pull/697
>>>>
>>>> I gonna merge it tonight or tomorrow morning.
>>>>
>>>> Regards
>>>> JB
>>>>
>>>> On 28/12/2018 16:23, Oliver Schweitzer wrote:
>>>>> Hi,
>>>>>
>>>>> I have an existing REST JAX-RS Application based on CXF mechanics. that
>>>>> is the Resources are lifecycle managed by a programmatically setup
>>>>> JAXRSServerFactoryBean, which itself gets started and stopped by an
>>>>> immediate @Component
>>>>>
>>>>> Now I want to build new entrypoints (and eventually migrate old ones)
>>>>> using the JAX-RS whiteboard, as discussed e.g.
>>>>> here 
>>>>> http://karaf.922171.n3.nabble.com/Aries-JAX-RS-Whiteboard-td4054440.html,
>>>>> and go full dynamically discovered declarative services with my
>>>>> REST API
>>>>> and application. 
>>>>>
>>>>> The basic setup (without extensions) works very well,  now I want to
>>>>> replace all my programmatic CXF configuration with @Components
>>>>> annotated
>>>>> with @JaxrsExtension, use only JAX-RS/Whiteboard mechanics and no more
>>>>> CXF specialties if possible.
>>>>>
>>>>> Now for the questions: 
>>>>>
>>>>> 1. Some of the providers I configure programmatically implement JAX-RS
>>>>> interfaces and are provided by CXF or other frameworks,
>>>>> e.g. CrossOriginResourceSharingFilter, MultipartProvider, 
>>>>> JacksonJsonProvider, WebApplicationExceptionMapper.
>>>>> How do I make these known to my JAX-RS Whiteboard  (Whiteboard service)
>>>>> ?Just derive a new class, annotate as a Component and JaxrsExtension?
>>>>>
>>>>> 2. Swagger2Feature, JAASLoginInterceptor, FastInfosetFeature, 
>>>>> GZIPFeature, CORSPreflightInterceptor (my
>>>>> code, extends AbstractPhaseInterceptor<Message>) are provided by
>>>>> CXF and
>>>>> implement CXF interfaces. I gather I can't use these directly with the
>>>>> Whiteboard? What do I do with those?  Reimplement/port to JAX-RS?
>>>>>
>>>>> Best regards,
>>>>>
>>>>> Oliver
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> Jean-Baptiste Onofré
>>>> [email protected] <mailto:[email protected]>
>>>> http://blog.nanthrax.net <http://blog.nanthrax.net/>
>>>> Talend - http://www.talend.com <http://www.talend.com/>
>>>
> 

-- 
Jean-Baptiste Onofré
[email protected]
http://blog.nanthrax.net
Talend - http://www.talend.com

Reply via email to