Hi Ishara, So, can we have the support to be able to plug custom interceptors for > microservices?
I f you are asking about the dynamic interceptors similar to the dynamic binding of filters in JAX-RS spec [1], MSF4J currently do not support dynamic binding of interceptors. [1] https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.3/html/apache_cxf_development_guide/jaxrs20filters#JAXRS20Filters-DynamicBinding Best Regards, Vidura Nanayakkara On Thu, Jun 1, 2017 at 1:19 PM, Ishara Cooray <[email protected]> wrote: > 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 <+94%2077%20262%209512> > WSO2, Inc. | http://wso2.com/ > Lean . Enterprise . Middleware > > On Thu, Jun 1, 2017 at 1:02 PM, Vidura Nanayakkara <[email protected]> > wrote: > >> Hi Ishara, >> >> On Thu, Jun 1, 2017 at 12:29 PM, Ishara Cooray <[email protected]> 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/samp >> les/interceptor/fatjar-interceptor-service >> [3] https://github.com/wso2/msf4j/blob/release-2.3.0-m1/samp >> les/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 : [email protected] >> 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 >> > > -- Best Regards, *Vidura Nanayakkara* Software Engineer Email : [email protected] Mobile : +94 (0) 717 919277 Web : http://wso2.com Blog : https://medium.com/@viduran LinkedIn : https://lk.linkedin.com/in/vidura-nanayakkara
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
