Hi Sagara, The method you suggest was what I was doing initially.
Builder messageBuilder = MessageProcessorSelector.getMessageBuilder(*JSON_** **CONTENT*, axis2MessageContext); The problem I had with that was, even though I just want to know the available builder for a given ContentType, above method replace the original ContentType with the parameter I send (*JSON_CONTENT*). So I had to hv the original ContentType backed up, then after the above method call I had to reassign it with msgContext.setProperty(Constants.Configuration.MESSAGE_TYPE, ORIGINAL_CONTENT_TYPE). Anyway If this is the most legit way, I'll proceed with this. Thanks. On Thu, Apr 18, 2013 at 9:39 PM, Sagara Gunathunga <[email protected]> wrote: > > > > On Thu, Apr 18, 2013 at 5:45 PM, Nalin Chandraratne <[email protected]>wrote: > >> Hi, >> >> Thanks guys. I could do it with >> >> MessageFormatter messageFormatter = >> axis2MessageContext.getConfigurationContext().getAxisConfiguration().getMessageFormatter(JSON_CONTENT); >> > > This way of direct accessing MessageFormatters and Builders are > discouraged in Axis2 instead you should use provided factory methods to > get an instance of MessageFormatter/Builder. Instead of above method please > use following code. > > Builder messageBuilder = > MessageProcessorSelector.getMessageBuilder(JSON_CONTENT, > axis2MessageContext); > > MessageFormatter messageFormatter = > MessageProcessorSelector.getMessageFormatter(axis2MessageContext); > > Note : Before you call getMessageFormatter() method make sure to check > Constants.Configuration.MESSAGE_TYPE is set on the axis2MessageContext > object. If it not there you can add it like below deepening on your use > case. > > axis2MessageContext.setProperty(Constants.Configuration.MESSAGE_TYPE, > JSON_CONTENT); > > Thanks ! > > >> >> (Earlier I was using getMessageContext instead of >> .getConfigurationContext, thats y i couldn't find the correct method. My >> bad ) >> >> Really appriciate your help. >> >> UseCase: >> >> Its for an enhancement of PayloadFactory mediator. Suppose we have an >> incoming xml message and we want to send a json output. Depending on the >> active json formatter, we either attach the transformed json message to the >> payload or to the message context as a property. >> >> Nalin. >> >> >> On Thu, Apr 18, 2013 at 5:33 PM, Sagara Gunathunga <[email protected]>wrote: >> >>> >>> >>> >>> On Thu, Apr 18, 2013 at 5:21 PM, Nalin Chandraratne <[email protected]>wrote: >>> >>>> Hi >>>> >>>> @sagara : active means the builders/formaters which are uncommented in >>>> the axis2.xml. (if the Content-Type is application/json either >>>> jsomOmBuilder or jsonStreamBuilder is uncommented. want to know which is >>>> uncommented in a given time) >>>> >>> >>> For this you can follow what Nirmal suggested. BTW can you please >>> explain your complete use case ? I mean why you want to find what is the >>> active builder etc ? And the place you want to have above check ? >>> >>> Thanks ! >>> >>> >>>> >>>> >>>> On Thu, Apr 18, 2013 at 5:08 PM, Sagara Gunathunga <[email protected]>wrote: >>>> >>>>> >>>>> >>>>> >>>>> On Thu, Apr 18, 2013 at 5:01 PM, Nalin Chandraratne <[email protected]>wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> @Sagara : The flag strategy only works if the content actually comes >>>>>> through the specific builder. Suppose the content came through a xml >>>>>> builder and we want to find out if the jsonStreamBuilder is active.. Then >>>>>> this method wouldn't work. >>>>>> >>>>> >>>>> What does you mean as active here ? >>>>> >>>>> Thanks ! >>>>> >>>>> >>>>>> >>>>>> @Nirmal : Couldn't find the builders from the axis2config. Appreciate >>>>>> if you could elaborate :) >>>>>> >>>>>> >>>>>> On Thu, Apr 18, 2013 at 4:09 PM, Sagara Gunathunga >>>>>> <[email protected]>wrote: >>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thu, Apr 18, 2013 at 3:11 PM, Nalin Chandraratne >>>>>>> <[email protected]>wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> How to identify all the *AVAILABLE* message builders and >>>>>>>> formatters in run time ? >>>>>>>> As an example, I want to know whether jsonOmBuilder or >>>>>>>> JsonStreamBuilder is active. >>>>>>>> >>>>>>> >>>>>>> AFAIK JsonStreamBuilder is a custom builder cerated for ESB usages. >>>>>>> Within the processDocument() method of JsonStreamBuilder class set a >>>>>>> flag >>>>>>> to MC. Now whenever required you can check above flag from MC and >>>>>>> determine >>>>>>> whether message was build by JsonStreamBuilder or not, if the flag >>>>>>> found on >>>>>>> MC means message came through JsonStreamBuilder if flag is not found >>>>>>> message didn't come through JsonStreamBuilder. >>>>>>> >>>>>>> Thanks ! >>>>>>> >>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Nalin Chamara >>>>>>>> Software Engineer >>>>>>>> [email protected] >>>>>>>> +94715614756 >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sagara Gunathunga >>>>>>> >>>>>>> Technical Lead; WSO2, Inc.; http://wso2.com >>>>>>> V.P Apache Web Services; http://ws.apache.org/ >>>>>>> Linkedin; http://www.linkedin.com/in/ssagara >>>>>>> Blog ; http://ssagara.blogspot.com >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Nalin Chamara >>>>>> Software Engineer >>>>>> [email protected] >>>>>> +94715614756 >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Sagara Gunathunga >>>>> >>>>> Technical Lead; WSO2, Inc.; http://wso2.com >>>>> V.P Apache Web Services; http://ws.apache.org/ >>>>> Linkedin; http://www.linkedin.com/in/ssagara >>>>> Blog ; http://ssagara.blogspot.com >>>>> >>>>> >>>> >>>> >>>> -- >>>> Nalin Chamara >>>> Software Engineer >>>> [email protected] >>>> +94715614756 >>>> >>> >>> >>> >>> -- >>> Sagara Gunathunga >>> >>> Technical Lead; WSO2, Inc.; http://wso2.com >>> V.P Apache Web Services; http://ws.apache.org/ >>> Linkedin; http://www.linkedin.com/in/ssagara >>> Blog ; http://ssagara.blogspot.com >>> >>> >> >> >> -- >> Nalin Chamara >> Software Engineer >> [email protected] >> +94715614756 >> > > > > -- > Sagara Gunathunga > > Technical Lead; WSO2, Inc.; http://wso2.com > V.P Apache Web Services; http://ws.apache.org/ > Linkedin; http://www.linkedin.com/in/ssagara > Blog ; http://ssagara.blogspot.com > > -- Nalin Chamara Software Engineer [email protected] +94715614756
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
