Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Yasas Karunarathna
@Ragith I checked out whole patch0007, couldn't build from the root(created
some dependency problems with "dependencies/orbit/axis2-json" module...
some relative path dependency pom files... i'm working on it nw ). So build
only "dependencies/axis2/modules/json" module, copy the generated jar to
the folder called 'patch0008'
under wso2dss-3.2.1/repository/components/patches Not "dependencies/orbit/
axis2-json".

@Shameera Thanks for asking that, problem is DSS json response is not
uniform, so not convenient for the consumer. As an example, for a given
select-query-operation there can be 3 types of responses.

1) There are no records.
{"Entries";""}

2) Only one record.
{"Entries":{"Entry":{"col1":"val1","col2":"val2"}}}

3) More than one records.
{"Entries":{"Entry":[{"col1":"val1","col2":"val2"},
{"col1":"val3","col2":"val4"}]}}

When consuming the service there are few validation checks we have to do.
No1 is partially OK, simple null check. But in No2 & No3, when we are
getting the value of key "Entry" we have to check whether is it an array of
objects or just an object, which i think is not convenient for the
consumer.

So I want to come up with a uniform type of response as below.

1) {"Entries":{"Entry":[]}}
2) {"Entries":{"Entry":[{"col1":"val1","col2":"val2"}]}}
3) {"Entries":{"Entry":[{"col1":"val1","col2":"val2"},
{"col1":"val3","col2":"val4"}]}}

Any thoughts?


On Mon, Jul 14, 2014 at 4:28 PM, Rajith Vitharana  wrote:

> Hi,
>
> I have tried with putting a jar file as a library to the
> repository/conf/lib folder. But it throws an exception when initializing
> axis2.xml file with class not found exception. Maybe axis2.xml get loaded
> before loading the classes in lib folder. Below is the exception which was
> thrown.
>
> [2014-07-14 16:24:48,583] FATAL
> {org.wso2.carbon.core.init.CarbonServerManager} -  WSO2 Carbon
> initialization Failed
> org.apache.axis2.AxisFault: Exception occured while loading the Axis
> configuration from
> /media/rajith/Office/Wso2/team/product/wso2dss-3.2.1/repository/conf/axis2/axis2.xml
>  at
> org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:190)
> at
> org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
>  at
> org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfigurationContextFactory.java:65)
> at
> org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:398)
>  at
> org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219)
> at
> org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>  at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
>  at
> org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
> at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>  at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
> at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>  at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
> at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>  at
> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
> at
> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>  at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
> at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>  at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
> at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>  at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
> at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>  at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>  at
> org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81)
> at
> org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60)
>  at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40)
> at
> org.wso2.carbon.t

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Rajith Vitharana
Hi,

I have tried with putting a jar file as a library to the
repository/conf/lib folder. But it throws an exception when initializing
axis2.xml file with class not found exception. Maybe axis2.xml get loaded
before loading the classes in lib folder. Below is the exception which was
thrown.

[2014-07-14 16:24:48,583] FATAL
{org.wso2.carbon.core.init.CarbonServerManager} -  WSO2 Carbon
initialization Failed
org.apache.axis2.AxisFault: Exception occured while loading the Axis
configuration from
/media/rajith/Office/Wso2/team/product/wso2dss-3.2.1/repository/conf/axis2/axis2.xml
at
org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:190)
at
org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at
org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfigurationContextFactory.java:65)
at
org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:398)
at
org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219)
at
org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
at
org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
at
org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
at org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
at
org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
at
org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
at
org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
at
org.eclipse.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81)
at
org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40)
at
org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38)
at
org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1267)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.axis2.deployment.DeploymentException:
org/apache/axis2/json/JSONMMyFormatter
at
org.apache.axis2.deployment.AxisConfigBuilder.processMessageBuilders(AxisConfigBuilder.java:775)
at
org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:236)
at
org.wso2.carbon.core.CarbonAxisConfigurator.populateAxisConfiguration(CarbonAxisConfigurator.java:308)
at
org.wso2.carbon.core.CarbonAxisConfigurator.getAxisConfiguration(CarbonAxisConfigurator.java:188)
... 42 more
Caused by: java.lang.NoClassDefFoundErro

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Shameera Rathnayaka
Hi Rajith,

Why are you asking him to build the patches , can't he work on already
released DSs pack, Here i am trying to understand which issue Yasas trying
to address by implementing a new JSON builder and formatter, we have plenty
of Builders and formatters for JSON :) . May i know the real use case and
requirement ?

Thanks,
Shameera


On Mon, Jul 14, 2014 at 2:51 PM, Rajith Vitharana  wrote:

> Hi Yasas,
>
> Try out creating a simple jar and put it in lib folder as shameera
> mentioned in above reply. I have tried out the scenario I have explained to
> you, and it worked fine for me
> As I mentioned, have you build the whole patch from the pom.xml inside
> patch0007 folder?
> and have you created "patch0008" folder and copied the
> jar(axis2-json-1.6.1-wso2v10.jar) inside 
> "patch0007/dependencies/orbit/axis2-json/target"
> folder to the "patch0008" folder?
>
> Thanks,
>
>
>
> On Mon, Jul 14, 2014 at 1:50 PM, Shameera Rathnayaka 
> wrote:
>
>> Hi Yasas,
>>
>> For you ClassNotFoundException, check do your axis2-json jar has required
>> classes, BTW as i mentioned in previous reply you don't need to do any code
>> changes to axis2 jars in order to plug your custom builders.
>>
>> Thanks,
>> Shameera.
>>
>>
>> On Mon, Jul 14, 2014 at 1:36 PM, Yasas Karunarathna 
>> wrote:
>>
>>> Thank you for the quick responses. I checked in sources from both the
>>> locations
>>>
>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
>>>
>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>>>
>>> Separately build without any modifications, and put generated jar to
>>> patch8 folder. Once I restart the server following message shows in the
>>> console.
>>>
>>> "Could not start:
>>> null(reference:file:../plugins/axis2-json_1.6.1.wso2v10.jar:15). It's state
>>> is uninstalled."
>>>
>>> After that logs the following error.
>>>
>>> "Caused by: java.lang.ClassNotFoundException:
>>> org.apache.axis2.json.gson.JSONMessageHandler"
>>>
>>> Any work around?
>>>
>>>
>>>
>>> On Sun, Jul 13, 2014 at 11:30 PM, Shameera Rathnayaka >> > wrote:
>>>
 Hi Yasas,

 Assuming you are going to customize the JSON mapped convention
 (Standard Mapped Json support is their with Axis2),You don't need to do
 anything to axis2 jar.  Implement your new JSON builder and formatter, then
 create a new jar(or osgi bundle) using those new classes
  and copy that jar ( or osgi bundle) to
 /repository/components/lib ( or
 /repository/components/dropings) directory. Finally,  you need to
 configure your builder and formatter in axis2.xm configuration file (like
 your 3rd step).

 Thanks,
 Shameera.




 On Sun, Jul 13, 2014 at 10:35 PM, Rajith Vitharana 
 wrote:

> Hi Yasas,
>
> The points you have mentioned are correct, but there are small changes
> I would like to point out. Below are the steps you'll need to follow to
> achieve your goal.
>
> 1 - There is a patch release for the "axis2-json" so you'll need to
> check out the source from [1] instead of the svn location you have
> mentioned. (checkout the whole "patch0007" instead of json module, so that
> it'll be easy for you to build the source.)
> 2 - Add the classes you need to the source.
>   You'll need to extend AbstractJSONMessageFormatter in your
> custom formatter class
>   You'll need to extend AbstractJSONOMBuilder in you custom
> builder class
> 3 - Build the whole patch0007. Then go to
> "patch0007/dependencies/orbit/axis2-json/target" folder where you can find
> the osgi bundle created from "axis2-json" module.
> 4 - Create "patch0008" folder inside
> "DSS_HOME/repository/components/patches" folder and copy the osgi bundle
> you found in step 3 to that folder.
> 5 - Add "messageFormatter" and "messageBuilder" elements to the
> "DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
> step 3.
> 6 - Restart the server and invoke your service adding "Accept" request
> header to the request with new content type you mentioned in "axis2.xml",
> example would be "Accept:application/json/newformat".(You can find
> sample of how to do it in [2])
>
> [1] -
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
> [2] -
> http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html
>
> Thanks,
>
>
> On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna <
> yasasm...@gmail.com> wrote:
>
>> Hi there,
>>
>> I want to do a small change to the json response returned from DSS
>> 3.2.1. I'm using JSONMessageFormatter & JSONOMBuilder in
>> org.apache.axis2.json package.(not gson implementations)
>> My requirements ar

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Rajith Vitharana
Hi Yasas,

Try out creating a simple jar and put it in lib folder as shameera
mentioned in above reply. I have tried out the scenario I have explained to
you, and it worked fine for me
As I mentioned, have you build the whole patch from the pom.xml inside
patch0007 folder?
and have you created "patch0008" folder and copied the
jar(axis2-json-1.6.1-wso2v10.jar) inside
"patch0007/dependencies/orbit/axis2-json/target"
folder to the "patch0008" folder?

Thanks,



On Mon, Jul 14, 2014 at 1:50 PM, Shameera Rathnayaka 
wrote:

> Hi Yasas,
>
> For you ClassNotFoundException, check do your axis2-json jar has required
> classes, BTW as i mentioned in previous reply you don't need to do any code
> changes to axis2 jars in order to plug your custom builders.
>
> Thanks,
> Shameera.
>
>
> On Mon, Jul 14, 2014 at 1:36 PM, Yasas Karunarathna 
> wrote:
>
>> Thank you for the quick responses. I checked in sources from both the
>> locations
>>
>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
>>
>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>>
>> Separately build without any modifications, and put generated jar to
>> patch8 folder. Once I restart the server following message shows in the
>> console.
>>
>> "Could not start:
>> null(reference:file:../plugins/axis2-json_1.6.1.wso2v10.jar:15). It's state
>> is uninstalled."
>>
>> After that logs the following error.
>>
>> "Caused by: java.lang.ClassNotFoundException:
>> org.apache.axis2.json.gson.JSONMessageHandler"
>>
>> Any work around?
>>
>>
>>
>> On Sun, Jul 13, 2014 at 11:30 PM, Shameera Rathnayaka 
>> wrote:
>>
>>> Hi Yasas,
>>>
>>> Assuming you are going to customize the JSON mapped convention (Standard
>>> Mapped Json support is their with Axis2),You don't need to do anything to
>>> axis2 jar.  Implement your new JSON builder and formatter, then create a
>>> new jar(or osgi bundle) using those new classes
>>>  and copy that jar ( or osgi bundle) to
>>> /repository/components/lib ( or
>>> /repository/components/dropings) directory. Finally,  you need to
>>> configure your builder and formatter in axis2.xm configuration file (like
>>> your 3rd step).
>>>
>>> Thanks,
>>> Shameera.
>>>
>>>
>>>
>>>
>>> On Sun, Jul 13, 2014 at 10:35 PM, Rajith Vitharana 
>>> wrote:
>>>
 Hi Yasas,

 The points you have mentioned are correct, but there are small changes
 I would like to point out. Below are the steps you'll need to follow to
 achieve your goal.

 1 - There is a patch release for the "axis2-json" so you'll need to
 check out the source from [1] instead of the svn location you have
 mentioned. (checkout the whole "patch0007" instead of json module, so that
 it'll be easy for you to build the source.)
 2 - Add the classes you need to the source.
   You'll need to extend AbstractJSONMessageFormatter in your
 custom formatter class
   You'll need to extend AbstractJSONOMBuilder in you custom
 builder class
 3 - Build the whole patch0007. Then go to
 "patch0007/dependencies/orbit/axis2-json/target" folder where you can find
 the osgi bundle created from "axis2-json" module.
 4 - Create "patch0008" folder inside
 "DSS_HOME/repository/components/patches" folder and copy the osgi bundle
 you found in step 3 to that folder.
 5 - Add "messageFormatter" and "messageBuilder" elements to the
 "DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
 step 3.
 6 - Restart the server and invoke your service adding "Accept" request
 header to the request with new content type you mentioned in "axis2.xml",
 example would be "Accept:application/json/newformat".(You can find
 sample of how to do it in [2])

 [1] -
 https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
 [2] -
 http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html

 Thanks,


 On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna <
 yasasm...@gmail.com> wrote:

> Hi there,
>
> I want to do a small change to the json response returned from DSS
> 3.2.1. I'm using JSONMessageFormatter & JSONOMBuilder in
> org.apache.axis2.json package.(not gson implementations)
> My requirements are as follows
>
> 1) Implement new JSONMessageFormatter, JSONOMBuilder etc.
>  And additional method accepting the Mapped json response and format
> it accordingly, call it at the end of mapped json conversion.
>  2) Build axis2-json-1.6.1-wso2v10.jar adding new classes.
>  I think this is the source used in DSS 3.2.1 :
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>
> 3) State new Formatter and Builder in axis2.xml & call it with new

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Shameera Rathnayaka
Hi Yasas,

For you ClassNotFoundException, check do your axis2-json jar has required
classes, BTW as i mentioned in previous reply you don't need to do any code
changes to axis2 jars in order to plug your custom builders.

Thanks,
Shameera.


On Mon, Jul 14, 2014 at 1:36 PM, Yasas Karunarathna 
wrote:

> Thank you for the quick responses. I checked in sources from both the
> locations
>
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
>
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>
> Separately build without any modifications, and put generated jar to
> patch8 folder. Once I restart the server following message shows in the
> console.
>
> "Could not start:
> null(reference:file:../plugins/axis2-json_1.6.1.wso2v10.jar:15). It's state
> is uninstalled."
>
> After that logs the following error.
>
> "Caused by: java.lang.ClassNotFoundException:
> org.apache.axis2.json.gson.JSONMessageHandler"
>
> Any work around?
>
>
>
> On Sun, Jul 13, 2014 at 11:30 PM, Shameera Rathnayaka 
> wrote:
>
>> Hi Yasas,
>>
>> Assuming you are going to customize the JSON mapped convention (Standard
>> Mapped Json support is their with Axis2),You don't need to do anything to
>> axis2 jar.  Implement your new JSON builder and formatter, then create a
>> new jar(or osgi bundle) using those new classes
>>  and copy that jar ( or osgi bundle) to
>> /repository/components/lib ( or
>> /repository/components/dropings) directory. Finally,  you need to
>> configure your builder and formatter in axis2.xm configuration file (like
>> your 3rd step).
>>
>> Thanks,
>> Shameera.
>>
>>
>>
>>
>> On Sun, Jul 13, 2014 at 10:35 PM, Rajith Vitharana 
>> wrote:
>>
>>> Hi Yasas,
>>>
>>> The points you have mentioned are correct, but there are small changes I
>>> would like to point out. Below are the steps you'll need to follow to
>>> achieve your goal.
>>>
>>> 1 - There is a patch release for the "axis2-json" so you'll need to
>>> check out the source from [1] instead of the svn location you have
>>> mentioned. (checkout the whole "patch0007" instead of json module, so that
>>> it'll be easy for you to build the source.)
>>> 2 - Add the classes you need to the source.
>>>   You'll need to extend AbstractJSONMessageFormatter in your
>>> custom formatter class
>>>   You'll need to extend AbstractJSONOMBuilder in you custom
>>> builder class
>>> 3 - Build the whole patch0007. Then go to
>>> "patch0007/dependencies/orbit/axis2-json/target" folder where you can find
>>> the osgi bundle created from "axis2-json" module.
>>> 4 - Create "patch0008" folder inside
>>> "DSS_HOME/repository/components/patches" folder and copy the osgi bundle
>>> you found in step 3 to that folder.
>>> 5 - Add "messageFormatter" and "messageBuilder" elements to the
>>> "DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
>>> step 3.
>>> 6 - Restart the server and invoke your service adding "Accept" request
>>> header to the request with new content type you mentioned in "axis2.xml",
>>> example would be "Accept:application/json/newformat".(You can find
>>> sample of how to do it in [2])
>>>
>>> [1] -
>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
>>> [2] -
>>> http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html
>>>
>>> Thanks,
>>>
>>>
>>> On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna >> > wrote:
>>>
 Hi there,

 I want to do a small change to the json response returned from DSS
 3.2.1. I'm using JSONMessageFormatter & JSONOMBuilder in
 org.apache.axis2.json package.(not gson implementations)
 My requirements are as follows

 1) Implement new JSONMessageFormatter, JSONOMBuilder etc.
  And additional method accepting the Mapped json response and format
 it accordingly, call it at the end of mapped json conversion.
  2) Build axis2-json-1.6.1-wso2v10.jar adding new classes.
  I think this is the source used in DSS 3.2.1 :
 https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json

 3) State new Formatter and Builder in axis2.xml & call it with new
 header
 >>>
 class="org.apache.axis2.json.newJSONMessageFormatter"/>

  >>> class="org.apache.axis2.json.newJSONOMBuilder"/>
  Can anybody advice me on achieving the above requirements?

 --

 Thanks



 *Yasas Karunarathna*
 yasasblog.wordpress.com

 ___
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev


>>>
>>>
>>> --
>>> Rajith Vitharana
>>>
>>> Software Engineer,
>>> WSO2 Inc. : wso2.com
>>> Mobile : +94715883223
>>> Blog : http://lankavitharana.blogspot.com/
>>>
>>> ___

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-14 Thread Yasas Karunarathna
Thank you for the quick responses. I checked in sources from both the
locations
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json

Separately build without any modifications, and put generated jar to patch8
folder. Once I restart the server following message shows in the console.

"Could not start:
null(reference:file:../plugins/axis2-json_1.6.1.wso2v10.jar:15). It's state
is uninstalled."

After that logs the following error.

"Caused by: java.lang.ClassNotFoundException:
org.apache.axis2.json.gson.JSONMessageHandler"

Any work around?



On Sun, Jul 13, 2014 at 11:30 PM, Shameera Rathnayaka 
wrote:

> Hi Yasas,
>
> Assuming you are going to customize the JSON mapped convention (Standard
> Mapped Json support is their with Axis2),You don't need to do anything to
> axis2 jar.  Implement your new JSON builder and formatter, then create a
> new jar(or osgi bundle) using those new classes
>  and copy that jar ( or osgi bundle) to
> /repository/components/lib ( or
> /repository/components/dropings) directory. Finally,  you need to
> configure your builder and formatter in axis2.xm configuration file (like
> your 3rd step).
>
> Thanks,
> Shameera.
>
>
>
>
> On Sun, Jul 13, 2014 at 10:35 PM, Rajith Vitharana 
> wrote:
>
>> Hi Yasas,
>>
>> The points you have mentioned are correct, but there are small changes I
>> would like to point out. Below are the steps you'll need to follow to
>> achieve your goal.
>>
>> 1 - There is a patch release for the "axis2-json" so you'll need to
>> check out the source from [1] instead of the svn location you have
>> mentioned. (checkout the whole "patch0007" instead of json module, so that
>> it'll be easy for you to build the source.)
>> 2 - Add the classes you need to the source.
>>   You'll need to extend AbstractJSONMessageFormatter in your
>> custom formatter class
>>   You'll need to extend AbstractJSONOMBuilder in you custom
>> builder class
>> 3 - Build the whole patch0007. Then go to
>> "patch0007/dependencies/orbit/axis2-json/target" folder where you can find
>> the osgi bundle created from "axis2-json" module.
>> 4 - Create "patch0008" folder inside
>> "DSS_HOME/repository/components/patches" folder and copy the osgi bundle
>> you found in step 3 to that folder.
>> 5 - Add "messageFormatter" and "messageBuilder" elements to the
>> "DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
>> step 3.
>> 6 - Restart the server and invoke your service adding "Accept" request
>> header to the request with new content type you mentioned in "axis2.xml",
>> example would be "Accept:application/json/newformat".(You can find
>> sample of how to do it in [2])
>>
>> [1] -
>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
>> [2] -
>> http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html
>>
>> Thanks,
>>
>>
>> On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna 
>> wrote:
>>
>>> Hi there,
>>>
>>> I want to do a small change to the json response returned from DSS
>>> 3.2.1. I'm using JSONMessageFormatter & JSONOMBuilder in
>>> org.apache.axis2.json package.(not gson implementations)
>>> My requirements are as follows
>>>
>>> 1) Implement new JSONMessageFormatter, JSONOMBuilder etc.
>>>  And additional method accepting the Mapped json response and format it
>>> accordingly, call it at the end of mapped json conversion.
>>>  2) Build axis2-json-1.6.1-wso2v10.jar adding new classes.
>>>  I think this is the source used in DSS 3.2.1 :
>>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>>>
>>> 3) State new Formatter and Builder in axis2.xml & call it with new header
>>> >>
>>> class="org.apache.axis2.json.newJSONMessageFormatter"/>
>>>
>>>  >> class="org.apache.axis2.json.newJSONOMBuilder"/>
>>>  Can anybody advice me on achieving the above requirements?
>>>
>>> --
>>>
>>> Thanks
>>>
>>>
>>>
>>> *Yasas Karunarathna*
>>> yasasblog.wordpress.com
>>>
>>> ___
>>> Dev mailing list
>>> Dev@wso2.org
>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>
>>>
>>
>>
>> --
>> Rajith Vitharana
>>
>> Software Engineer,
>> WSO2 Inc. : wso2.com
>> Mobile : +94715883223
>> Blog : http://lankavitharana.blogspot.com/
>>
>> ___
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> *Software Engineer - WSO2 Inc.*
> *email: shameera AT wso2.com  , shameera AT apache.org
> *
> *phone:  +9471 922 1454 <%2B9471%20922%201454>*
>
> *Linked in : *http://lk.linkedin.com/pub/shameera-rathnayaka/1a/661/561
> *Twitter : *https://twitter.com/Shameera_R
>



-- 

Thanks



*Yasas Karunarathna*
yasasblog.wordpress.c

Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-13 Thread Shameera Rathnayaka
Hi Yasas,

Assuming you are going to customize the JSON mapped convention (Standard
Mapped Json support is their with Axis2),You don't need to do anything to
axis2 jar.  Implement your new JSON builder and formatter, then create a
new jar(or osgi bundle) using those new classes
 and copy that jar ( or osgi bundle) to
/repository/components/lib ( or
/repository/components/dropings) directory. Finally,  you need to
configure your builder and formatter in axis2.xm configuration file (like
your 3rd step).

Thanks,
Shameera.




On Sun, Jul 13, 2014 at 10:35 PM, Rajith Vitharana  wrote:

> Hi Yasas,
>
> The points you have mentioned are correct, but there are small changes I
> would like to point out. Below are the steps you'll need to follow to
> achieve your goal.
>
> 1 - There is a patch release for the "axis2-json" so you'll need to check
> out the source from [1] instead of the svn location you have mentioned.
> (checkout the whole "patch0007" instead of json module, so that it'll be
> easy for you to build the source.)
> 2 - Add the classes you need to the source.
>   You'll need to extend AbstractJSONMessageFormatter in your
> custom formatter class
>   You'll need to extend AbstractJSONOMBuilder in you custom
> builder class
> 3 - Build the whole patch0007. Then go to
> "patch0007/dependencies/orbit/axis2-json/target" folder where you can find
> the osgi bundle created from "axis2-json" module.
> 4 - Create "patch0008" folder inside
> "DSS_HOME/repository/components/patches" folder and copy the osgi bundle
> you found in step 3 to that folder.
> 5 - Add "messageFormatter" and "messageBuilder" elements to the
> "DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
> step 3.
> 6 - Restart the server and invoke your service adding "Accept" request
> header to the request with new content type you mentioned in "axis2.xml",
> example would be "Accept:application/json/newformat".(You can find sample
> of how to do it in [2])
>
> [1] -
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
> [2] -
> http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html
>
> Thanks,
>
>
> On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna 
> wrote:
>
>> Hi there,
>>
>> I want to do a small change to the json response returned from DSS 3.2.1.
>> I'm using JSONMessageFormatter & JSONOMBuilder in org.apache.axis2.json
>> package.(not gson implementations)
>> My requirements are as follows
>>
>> 1) Implement new JSONMessageFormatter, JSONOMBuilder etc.
>>  And additional method accepting the Mapped json response and format it
>> accordingly, call it at the end of mapped json conversion.
>>  2) Build axis2-json-1.6.1-wso2v10.jar adding new classes.
>>  I think this is the source used in DSS 3.2.1 :
>> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>>
>> 3) State new Formatter and Builder in axis2.xml & call it with new header
>> >
>> class="org.apache.axis2.json.newJSONMessageFormatter"/>
>>
>>  > class="org.apache.axis2.json.newJSONOMBuilder"/>
>>  Can anybody advice me on achieving the above requirements?
>>
>> --
>>
>> Thanks
>>
>>
>>
>> *Yasas Karunarathna*
>> yasasblog.wordpress.com
>>
>> ___
>> Dev mailing list
>> Dev@wso2.org
>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>
>>
>
>
> --
> Rajith Vitharana
>
> Software Engineer,
> WSO2 Inc. : wso2.com
> Mobile : +94715883223
> Blog : http://lankavitharana.blogspot.com/
>
> ___
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
*Software Engineer - WSO2 Inc.*
*email: shameera AT wso2.com  , shameera AT apache.org
*
*phone:  +9471 922 1454 <%2B9471%20922%201454>*

*Linked in : *http://lk.linkedin.com/pub/shameera-rathnayaka/1a/661/561
*Twitter : *https://twitter.com/Shameera_R
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev


Re: [Dev] [DSS][AXIS2][AXIS2-JSON] Writing a new XML to JSON conversion

2014-07-13 Thread Rajith Vitharana
Hi Yasas,

The points you have mentioned are correct, but there are small changes I
would like to point out. Below are the steps you'll need to follow to
achieve your goal.

1 - There is a patch release for the "axis2-json" so you'll need to check
out the source from [1] instead of the svn location you have mentioned.
(checkout the whole "patch0007" instead of json module, so that it'll be
easy for you to build the source.)
2 - Add the classes you need to the source.
  You'll need to extend AbstractJSONMessageFormatter in your custom
formatter class
  You'll need to extend AbstractJSONOMBuilder in you custom builder
class
3 - Build the whole patch0007. Then go to
"patch0007/dependencies/orbit/axis2-json/target" folder where you can find
the osgi bundle created from "axis2-json" module.
4 - Create "patch0008" folder inside
"DSS_HOME/repository/components/patches" folder and copy the osgi bundle
you found in step 3 to that folder.
5 - Add "messageFormatter" and "messageBuilder" elements to the
"DSS_HOME/repository/conf/axis2/axis2.xml" as you have pointed out in your
step 3.
6 - Restart the server and invoke your service adding "Accept" request
header to the request with new content type you mentioned in "axis2.xml",
example would be "Accept:application/json/newformat".(You can find sample
of how to do it in [2])

[1] -
https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/patches/patch0007/dependencies/axis2/modules/json/
[2] -
http://janakaranabahu.blogspot.com/2013/06/return-json-response-from-wso2-dss.html

Thanks,


On Sun, Jul 13, 2014 at 1:45 PM, Yasas Karunarathna 
wrote:

> Hi there,
>
> I want to do a small change to the json response returned from DSS 3.2.1.
> I'm using JSONMessageFormatter & JSONOMBuilder in org.apache.axis2.json
> package.(not gson implementations)
> My requirements are as follows
>
> 1) Implement new JSONMessageFormatter, JSONOMBuilder etc.
>  And additional method accepting the Mapped json response and format it
> accordingly, call it at the end of mapped json conversion.
>  2) Build axis2-json-1.6.1-wso2v10.jar adding new classes.
>  I think this is the source used in DSS 3.2.1 :
> https://svn.wso2.org/repos/wso2/carbon/kernel/branches/4.2.0/dependencies/axis2/1.6.1-wso2v10/modules/json
>
> 3) State new Formatter and Builder in axis2.xml & call it with new header
> 
> class="org.apache.axis2.json.newJSONMessageFormatter"/>
>
>   class="org.apache.axis2.json.newJSONOMBuilder"/>
>  Can anybody advice me on achieving the above requirements?
>
> --
>
> Thanks
>
>
>
> *Yasas Karunarathna*
> yasasblog.wordpress.com
>
> ___
> Dev mailing list
> Dev@wso2.org
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Rajith Vitharana

Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94715883223
Blog : http://lankavitharana.blogspot.com/
___
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev