On Mon, Mar 26, 2012 at 3:42 PM, Afkham Azeez <az...@wso2.com> wrote:

> So, in the registry based approach in Synapse/ESB, how was the cluster
> synchronization problem solved? If a policy is changed in one node, how
> does that get reflected on the rest of the nodes?


Policies are stored in config registry. In a cluster we share the config
registry. So all ESB nodes see the same set of policies.

Besides in many real world scenarios people use custom policies. So for
them this is not a problem at all. In such cases they have the policies in
a shared governance registry.

Thanks,
Hiranya


>
> With the file system based approach, we were hoping to solve two issues.
>
> 1. Improve performance since instead of breaking up an Axis service into
> its constituents and storing them separately, we store it as a single entity
> 2. Deployment Synchronizer will take care of propagating the metadata
> changes to all nodes in the cluster.
>
> In the file system based approach, we will need a MetadataDeployer which
> will listen for changes in the service metadata, and reload the relevant
> Axis2 services. This has to be done in a graceful manner. i.e. If the Axis
> service is currently in use, wait until it gets freed before reloading it.
>
> Azeez
>
>
> On Mon, Mar 26, 2012 at 3:38 PM, Hiranya Jayathilaka <hira...@wso2.com>wrote:
>
>> Hi Isuru,
>>
>> On Mon, Mar 26, 2012 at 3:34 PM, Isuru Suriarachchi <is...@wso2.com>wrote:
>>
>>>
>>>
>>> On Mon, Mar 26, 2012 at 3:13 PM, Hiranya Jayathilaka 
>>> <hira...@wso2.com>wrote:
>>>
>>>>
>>>>
>>>> On Mon, Mar 26, 2012 at 3:04 PM, Afkham Azeez <az...@wso2.com> wrote:
>>>>
>>>>> How do you set the Registry to Synapse? Does it depend on the Registry
>>>>> API? If so, we can have a Registry implementation which works with the 
>>>>> file
>>>>> system persistence structure.
>>>>
>>>>
>>>> Synapse accesses WSO2 registry through the Synapse registry API. We
>>>> can't have a registry implementation that only works with the file system
>>>> (because we need to be able to lookup registry resources too - WSDLs,
>>>> endpoints and stuff). If we go along this path we have to come up with an
>>>> implementation that can work with both WSO2 registry and local file system
>>>> (kind of like a hybrid registry).
>>>>
>>>
>>> I think for the time being the best option is to store the policies for
>>> proxy services also in the Registry. Hiranya, will it solve the problem or
>>> are there any other failure cases?
>>>
>> Is the problem only related to policies? It's better to identify all such
>>> problematic scenarios ASAP and address those.
>>>
>>
>> I'm trying out various scenarios with the ESB. So far this is the only
>> problematic case I came across. I'll run some more tests and let you know
>> my findings by EoD today.
>>
>>
>>>
>>> However, we have to come up with a better solution in the long run.
>>>
>>
>> +1
>>
>> Thanks,
>> Hiranya
>>
>>
>>>
>>> Thanks,
>>> ~Isuru
>>>
>>>
>>>>
>>>> Thanks,
>>>> Hiranya
>>>>
>>>>
>>>>>
>>>>>
>>>>> On Mon, Mar 26, 2012 at 2:51 PM, Hiranya Jayathilaka <hira...@wso2.com
>>>>> > wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Mar 26, 2012 at 2:48 PM, Hiranya Jayathilaka <
>>>>>> hira...@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Mar 26, 2012 at 2:39 PM, Kasun Gajasinghe 
>>>>>>> <kas...@wso2.com>wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Mar 26, 2012 at 2:34 PM, Hiranya Jayathilaka <
>>>>>>>> hira...@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> I tried enabling caching for the service. It did get applied as
>>>>>>>>> expected. But the change didn't survive a restart. I think this is 
>>>>>>>>> same for
>>>>>>>>> other QoS modules too (throttling, RM etc).
>>>>>>>>
>>>>>>>>
>>>>>>>>  Does the relevant policy got added to the relevant metafile?
>>>>>>>>
>>>>>>>
>>>>>>> Yes it does. I debugged this case a little bit, and I think the
>>>>>>> problem occurs because our proxy service observer expects to find the
>>>>>>> relevant policies in the registry. But they are no longer stored in the
>>>>>>> registry.
>>>>>>>
>>>>>>> In the past it was just a matter of updating the proxy service
>>>>>>> configuration with a key that points to the appropriate policy in the
>>>>>>> registry:
>>>>>>>
>>>>>>> <policy key="conf:/path/to/policy"/>
>>>>>>>
>>>>>>> ESB knows how to resolve registry keys. But with the new model I
>>>>>>> don't know how the same behavior can be achieved.
>>>>>>>
>>>>>>
>>>>>> This is going to affect all QoS aspects of ESB including security.
>>>>>> How do we solve this problem? Synapse can only load policies from the
>>>>>> registry.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Hiranya
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> Lakmali, I'll look into this. I've already answered your second
>>>>>>>> issue.
>>>>>>>> As I've been told earlier, please send the logs as soon as you
>>>>>>>> faced with an issue related to persistence. At this point of time, this
>>>>>>>> implementation isn't tested in other products than Kernel, and 
>>>>>>>> AppServer.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Hiranya
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Mar 26, 2012 at 2:32 PM, Lakmali Baminiwatta <
>>>>>>>>> lakm...@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I am also experiencing similar issues on DSS product & service.
>>>>>>>>>> When a service is saved the following exception occurs.
>>>>>>>>>>
>>>>>>>>>>  ERROR
>>>>>>>>>> {org.wso2.carbon.core.persistence.AbstractPersistenceManager} -  
>>>>>>>>>> Unable to
>>>>>>>>>> handle new service addition. Service: H2BasicService
>>>>>>>>>> java.lang.NullPointerException
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.core.persistence.ServicePersistenceManager.handleNewBindingAddition(ServicePersistenceManager.java:344)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.core.persistence.ServicePersistenceManager.handleNewServiceAddition(ServicePersistenceManager.java:192)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.core.deployment.DeploymentInterceptor.serviceUpdate(DeploymentInterceptor.java:280)
>>>>>>>>>>
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.AxisConfiguration.notifyObservers(AxisConfiguration.java:652)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.AxisConfiguration.addServiceGroup(AxisConfiguration.java:406)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.dataservices.core.DBDeployer.deploy(DBDeployer.java:180)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:810)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:59)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:67)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:75)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)
>>>>>>>>>>
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>>     at java.lang.Thread.run(Thread.java:662)
>>>>>>>>>>
>>>>>>>>>> Also when engaging the security on services it fails with the
>>>>>>>>>> following exception.
>>>>>>>>>>
>>>>>>>>>>  ERROR {org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver}
>>>>>>>>>> -  Service with name H2BasicService not found.
>>>>>>>>>> org.wso2.carbon.security.SecurityConfigException: Service with
>>>>>>>>>> name H2BasicService not found.
>>>>>>>>>>
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.security.config.SecurityConfigAdmin.applyPolicy(SecurityConfigAdmin.java:764)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.security.config.SecurityConfigAdmin.applyPolicy(SecurityConfigAdmin.java:633)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.security.config.SecurityConfigAdmin.applySecurity(SecurityConfigAdmin.java:610)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.security.config.service.SecurityConfigAdminService.applySecurity(SecurityConfigAdminService.java:45)
>>>>>>>>>>     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.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver.invokeBusinessLogic(RPCInOnlyMessageReceiver.java:66)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:205)
>>>>>>>>>>     at
>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>>>>>>>>>>     at
>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>>>>>>>>>>     at
>>>>>>>>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
>>>>>>>>>>     at
>>>>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
>>>>>>>>>>     at
>>>>>>>>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
>>>>>>>>>>     at
>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:45)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:60)
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:155)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
>>>>>>>>>>     at
>>>>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1600)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>>>>>>>>>>     at
>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>>>>>>>>>>     at java.lang.Thread.run(Thread.java:662)
>>>>>>>>>>  Caused by: org.apache.axis2.AxisFault: Service with name
>>>>>>>>>> H2BasicService not found.
>>>>>>>>>>
>>>>>>>>>>     at
>>>>>>>>>> org.wso2.carbon.security.config.SecurityConfigAdmin.applyPolicy(SecurityConfigAdmin.java:739)
>>>>>>>>>>     ... 39 more
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Lakmali
>>>>>>>>>> On Mon, Mar 26, 2012 at 2:18 PM, Afkham Azeez <az...@wso2.com>wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Mar 26, 2012 at 2:16 PM, Hiranya Jayathilaka <
>>>>>>>>>>> hira...@wso2.com> wrote:\
>>>>>>>>>>>
>>>>>>>>>>>> Ok then I guess we need that part too. And I can see that a
>>>>>>>>>>>> file has been created for my proxy service under the metafiles 
>>>>>>>>>>>> directory
>>>>>>>>>>>> (see the attachment test.xml). Still I'm confused as to why so many
>>>>>>>>>>>> PersistenceExceptions are thrown when updating the configuration or
>>>>>>>>>>>> starting the ESB. Also why can't I enable security on my proxy 
>>>>>>>>>>>> services?
>>>>>>>>>>>> From the stacktrace it looks like SecurityConfigAdmin is trying to 
>>>>>>>>>>>> locate
>>>>>>>>>>>> the service in the registry. Is that behavior correct?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> It means that the security component still has not been fixed.
>>>>>>>>>>> All persistence related stuff should strictly be in the file system 
>>>>>>>>>>> only.
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Dev mailing list
>>>>>>>>>>> Dev@wso2.org
>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Lakmali Baminiwatta*
>>>>>>>>>> *
>>>>>>>>>> Software Engineer
>>>>>>>>>> WSO2, Inc.: http://wso2.com
>>>>>>>>>> lean.enterprise.middleware
>>>>>>>>>>
>>>>>>>>>>  *
>>>>>>>>>> *
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Hiranya Jayathilaka
>>>>>>>>> Associate Technical Lead;
>>>>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>>>>> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
>>>>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Dev mailing list
>>>>>>>>> Dev@wso2.org
>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Kasun Gajasinghe*
>>>>>>>> Software Engineer; WSO2 Inc.; http://wso2.com
>>>>>>>>
>>>>>>>> ,
>>>>>>>> *email: **kasung AT spamfree wso2.com** cell: **+94 (77) 678-0813*
>>>>>>>> *linked-in: *http://lk.linkedin.com/in/gajasinghe*
>>>>>>>> *
>>>>>>>>  *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org>
>>>>>>>>
>>>>>>>> *
>>>>>>>> twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg>
>>>>>>>>
>>>>>>>> *
>>>>>>>> *
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Hiranya Jayathilaka
>>>>>>> Associate Technical Lead;
>>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>>> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
>>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Hiranya Jayathilaka
>>>>>> Associate Technical Lead;
>>>>>> WSO2 Inc.;  http://wso2.org
>>>>>> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
>>>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> Dev@wso2.org
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Afkham Azeez*
>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com
>>>>> Member; Apache Software Foundation; http://www.apache.org/
>>>>> * <http://www.apache.org/>**
>>>>> email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919
>>>>> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
>>>>> twitter: 
>>>>> **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
>>>>> *
>>>>> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
>>>>> *
>>>>> *
>>>>> *Lean . Enterprise . Middleware*
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Hiranya Jayathilaka
>>>> Associate Technical Lead;
>>>> WSO2 Inc.;  http://wso2.org
>>>> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> Dev@wso2.org
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>>
>>> --
>>> Isuru Suriarachchi
>>> Technical Lead
>>> WSO2 Inc. http://wso2.com
>>> email : is...@wso2.com
>>> blog : http://isurues.wordpress.com/
>>>
>>> lean . enterprise . middleware
>>>
>>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Associate Technical Lead;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> *Afkham Azeez*
> Director of Architecture; WSO2, Inc.; http://wso2.com
> Member; Apache Software Foundation; http://www.apache.org/
> * <http://www.apache.org/>**
> email: **az...@wso2.com* <az...@wso2.com>* cell: +94 77 3320919
> blog: **http://blog.afkham.org* <http://blog.afkham.org>*
> twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
> *
> linked-in: **http://lk.linkedin.com/in/afkhamazeez*
> *
> *
> *Lean . Enterprise . Middleware*
>
>


-- 
Hiranya Jayathilaka
Associate Technical Lead;
WSO2 Inc.;  http://wso2.org
E-mail: hira...@wso2.com;  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to