Thanks for the clarification Vidura.

So, can we have the support to be able to plug custom interceptors for
microservices?


Thanks & Regards,
Ishara Cooray
Senior Software Engineer
Mobile : +9477 262 9512
WSO2, Inc. | http://wso2.com/
Lean . Enterprise . Middleware

On Thu, Jun 1, 2017 at 1:02 PM, Vidura Nanayakkara <vidu...@wso2.com> wrote:

> Hi Ishara,
>
> On Thu, Jun 1, 2017 at 12:29 PM, Ishara Cooray <isha...@wso2.com> wrote:
>
>> According to the new Interceptor support in msf4j-2.3.0-m2
>>
>> AFAIU,
>> We can bind interceptors for a given microservice as below.
>>
>> InterceptorService is the micro service that is going to be intercepted by 
>> RequestInterceptors and Responseinterceptors annotated by
>>
>> @RequestInterceptor and @ResponseInterceptor
>>
>> @Component(
>>>         name = "InterceptorService",
>>>         service = Microservice.class,
>>>         immediate = true
>>> )@Path("/interceptor-service")public class InterceptorService implements 
>>> Microservice {
>>>
>>>
>>>     private static final Logger log = 
>>> LoggerFactory.getLogger(InterceptorService.class);
>>>
>>>
>>>     /**     * Method for getting the micro-service name.     *     * 
>>> @return name of the micro-service.     */
>>>     @GET
>>>     @Path("/service-name")
>>>     @RequestInterceptor(
>>> ​​
>>> HTTPRequestLogger.class)
>>>     @ResponseInterceptor(HTTPResponseLogger.class)
>>>     public String getServiceName() {
>>>         log.info("HTTP Method Execution - getServiceName()");
>>>         return "WSO2 Service";
>>>     }
>>> }
>>>
>>> 1. Can we use @RequestInterceptor and @ResponseInterceptor annotations
>> to the class level so that it will apply for every resource invocation?
>>
>
> ​Yes, you can use @RequestInterceptor and @ResponseInterceptor to the
> class level so that it will apply to every resource invocation in the
> service.
>
> Example:
>
> @Path("/stockquote")
>
> @RequestInterceptor(
> ​
> HTTPRequestLogger.class)
>
> @ResponseInterceptor({HTTPResponseLogger.class, 
> LogTextResponseInterceptor.class})
>
> public class StockQuoteService {
> // Your resource methods here
> }
>
> Furthermore, if you want to apply the interceptors to all the services in a 
> micro-service in OSGi mode please refer [1] and for non-OSGi mode please 
> refer [2] and [3].
>
>
>> 2. Can we plug a custom request/response interceptors?
>>
>>  Can it be supported something similar to below.
>>  We have a class called ABCRequestInterceptor which implements 
>> RequestInterceptor
>> and there can be classes that extends
>>  ABCRequestInterceptor
>>
>> But , we bind the interceptor as
>>
>>  @RequestInterceptor(ABCRequestInterceptor.class)
>>
>> Will this bind extended Interceptors too to the InterceptorService?
>>
>
> ​In this case the ABCRequestInterceptor will be the interceptor which gets
> executed. Please note that the other interceptors which is extended from
> this class do not get executed​ (The class you mention in the annotation is
> taken exactly as it is)
>
>
>>
>> Thanks & Regards,
>> Ishara Cooray
>> Senior Software Engineer
>> Mobile : +9477 262 9512 <+94%2077%20262%209512>
>> WSO2, Inc. | http://wso2.com/
>> Lean . Enterprise . Middleware
>>
>
>
> ​[1] https://github.com/wso2/msf4j/blob/release-2.3.0-m1/samples/
> interceptor/osgi-interceptor-service/README.md​
> [2] https://github.com/wso2/msf4j/tree/release-2.3.0-m1/
> samples/interceptor/fatjar-interceptor-service
> [3] https://github.com/wso2/msf4j/blob/release-2.3.0-m1/
> samples/interceptor/fatjar-interceptor-service/src/main/
> java/org/wso2/msf4j/samples/fatjarinterceptorservice/Application.java
>
> Best Regards,
> Vidura Nanayakkara
>
> --
> Best Regards,
>
> *Vidura Nanayakkara*
> Software Engineer
>
> Email : vidu...@wso2.com
> Mobile : +94 (0) 717 919277 <+94%2071%20791%209277>
> Web : http://wso2.com
> Blog : https://medium.com/@viduran
> LinkedIn : https://lk.linkedin.com/in/vidura-nanayakkara
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to