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

Reply via email to