Hi Thusitha and all, Thank you very much for considering this.
@Vidura, Thanks a lot for the detailed response. I will go through it and get back to you. Thanks! Malintha On Mon, Feb 27, 2017 at 2:54 PM, Vidura Nanayakkara <[email protected]> wrote: > [Adding Azeez] > > Hi, > > In relation to the offline discussion we had, it was clear that the above > functionality is not sufficient for your requirement. As per the offline > discussion, the suggested approach was to use custom contexts. [1] > <http:///>, [2] > <https://www.blackpepper.co.uk/blog/custom-context-providers-for-cxf-with-the-context-annotation> > describes > an Apache CXF example of using custom contexts. > > Currently in MSF4J using @Context annotation we can inject the Request, > Response, HttpStreamer, FormParamIterator and MultivaluedMap instances. > However, these are not accessible via interceptors as per the current > implementation. The approach we were using to inject values is by using the > approach I have explained in the previous email. > > Therefore to solve the above problem, there are 2 solutions we can > introduce to MSF4J. > > 1. *Introduce custom injection and lifecycle management [1] > <https://jersey.java.net/documentation/latest/ioc.html>, [2] > > <https://www.blackpepper.co.uk/blog/custom-context-providers-for-cxf-with-the-context-annotation> > to MSF4J.* > > Using this approach what you should basically do is: > > > - Write a custom context provider of your own which will describe how > the injected value is generated by implementing a certain interface. > - Register the custom context provider to the MSF4J > - Inject the value using @Context annotation (Ex:- @Context(String > key) Object[] arguments) > > > 1. *Have a Map<String, Object> map that could be injected using > @Context annotation* > > Using this approach what you basically do is: > > > - Add the arguments you need to inject using the @Context annotation > using @SetContext(String key, Object value). This can be done inside > interceptors or HTTP methods > - Inject the value to using @Context(String key) > > WDYT? > > [1] Custom Injection and Lifecycle Management > <https://jersey.java.net/documentation/latest/ioc.html> > [2] Custom Context Providers for CXF with the Context Annotation > <https://www.blackpepper.co.uk/blog/custom-context-providers-for-cxf-with-the-context-annotation> > > On Mon, Feb 27, 2017 at 9:59 AM, Vidura Nanayakkara <[email protected]> > wrote: > >> Hi Malintha, >> >> You can access the `Request` instance from the interceptors. You also can >> access the same Request instance from the HTTP resource by injecting the >> request to the HTTP method (`@Context Request request`). You also can set >> any argument in the request using `request.setProperty(String key, Object >> value)` method and retrieve the value using `request.getProperty(String >> key)` method. Will this be sufficient for your requirement? >> >> >> >> On Mon, Feb 27, 2017 at 5:55 AM, Thusitha Thilina Dayaratne < >> [email protected]> wrote: >> >>> Hi Malintha, >>> >>> Thank you very much for the PR. We did some restructuring for the >>> interceptors to cater product requirementsts[1]. Therefore we won't be able >>> to directly merge this. But surely we will check what we can do with this. >>> >>> [1] - https://github.com/wso2/msf4j/pull/338 >>> >>> Thanks >>> Thusitha >>> >>> On Sun, Feb 26, 2017 at 4:04 PM, Malintha Amarasinghe < >>> [email protected]> wrote: >>> >>>> Hi, >>>> >>>> Currently in MSF4J Interceptor level, we can get the HTTP handler >>>> method which would be invoked by calling serviceMethodInfo.get >>>> Method(). >>>> >>>> Additionally, It will be useful to have request parameters as well in >>>> order to perform various types of request validations in Interceptor level >>>> such as Bean validation and ETag validation. >>>> >>>> Tried to do a fix which adds a new field to ServiceMethodInfo class as >>>> args[] [1]. But this required some API changes. >>>> >>>> Thanks! >>>> >>>> [1] https://github.com/wso2/msf4j/pull/356 >>>> >>>> -- >>>> Malintha Amarasinghe >>>> Software Engineer >>>> *WSO2, Inc. - lean | enterprise | middleware* >>>> http://wso2.com/ >>>> >>>> Mobile : +94 712383306P >>>> >>> >>> >>> >>> -- >>> Thusitha Dayaratne >>> Software Engineer >>> WSO2 Inc. - lean . enterprise . middleware | wso2.com >>> >>> Mobile +94712756809 <+94%2071%20275%206809> >>> Blog alokayasoya.blogspot.com >>> About http://about.me/thusithathilina >>> <http://wso2.com/signature> >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> [email protected] >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> 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 <http://wso2.com/> >> Twitter : http://twitter.com/viduranana >> LinkedIn : https://lk.linkedin.com/in/vidura-nanayakkara >> <http://wso2.com/> >> > > > > -- > 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 <http://wso2.com/> > Twitter : http://twitter.com/viduranana > LinkedIn : https://lk.linkedin.com/in/vidura-nanayakkara > <http://wso2.com/> > -- Malintha Amarasinghe Software Engineer *WSO2, Inc. - lean | enterprise | middleware* http://wso2.com/ Mobile : +94 712383306
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
