On Sat, Jul 14, 2012 at 6:07 AM, Senaka Fernando <[email protected]> wrote:

> Hi all,
>
> Can we also simulate the handlers that get executed in AM and G-Reg to get
> an understanding of whether there are any differences. Denis has reported
> some other issues too, which made me wonder.
>

So far this is the behavior I've experienced:

1. Creating simple APIs, modifying them and publishing them always works
without any issues
2. Creating APIs with WSDLs can make things go bad (basically the problems
mentioned here by Charitha) - This can happen regardless of the underlying
DB engine and using mounts or not
3. Creating APIs can make things go bad if the registry is mounted - Now I
haven't encountered this personally. I'll run some tests on the Beta2
branch and see if this is for real. Denis mentioned that his issue occurred
on a trunk build, which as we all know may have not been up-to-date.

Thanks,
Hiranya


>
> Thanks,
> Senaka.
>
>
> On Fri, Jul 13, 2012 at 10:24 AM, Sumedha Rubasinghe <[email protected]>wrote:
>
>>
>>
>> On Fri, Jul 13, 2012 at 7:46 PM, Sumedha Rubasinghe <[email protected]>wrote:
>>
>>> On Fri, Jul 13, 2012 at 7:36 PM, Sumedha Rubasinghe <[email protected]>wrote:
>>>
>>>>
>>>>
>>>> On Fri, Jul 13, 2012 at 7:25 PM, Senaka Fernando <[email protected]>wrote:
>>>>
>>>>> Hi Janaka,
>>>>>
>>>>> Does this have any connection with the way in which UUID
>>>>> setting/fetching happens. Because that's something that happens when 
>>>>> adding
>>>>> a WSDL. Also, doesn't this get reproduced on G-Reg? Why only on AM?
>>>>>
>>>>
>>>> API Manager just uses WS API to add an WSDL. So it should be easy to
>>>> reproduce this. Janaka is doing that.
>>>>
>>>
>>> Sorry. What I said is incorrect. We are directly using WSDLManager to
>>> add WSDL.
>>>
>>
>>
>> https://svn.wso2.org/repos/wso2/branches/apimgt/1.0.0-beta2/platform/components/apimgt/org.wso2.carbon.apimgt.impl/src/main/java/org/wso2/carbon/apimgt/impl/utils/APIUtil.java
>>
>> Search for 'createWSDL'
>>
>>
>>
>>>>
>>>>>
>>>>> Thanks,
>>>>> Senaka.
>>>>>
>>>>>
>>>>> On Fri, Jul 13, 2012 at 9:47 AM, Sumedha Rubasinghe 
>>>>> <[email protected]>wrote:
>>>>>
>>>>>> G-Reg team,
>>>>>> Can we check the table access order again?
>>>>>> The problem is only appearing when adding a WSDL. So I suspect the
>>>>>> logic in WSDL media type handler.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Fri, Jul 13, 2012 at 7:08 PM, Charitha Kankanamge <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>  This is very simple to reproduce and an absolute blocker in
>>>>>>> standalone H2 based deployment because if API provider mistakenly give
>>>>>>> inaccessible or wrong WSDL url, whole registry becomes unusable.
>>>>>>>
>>>>>>> 1. In API manager, login to API publisher app
>>>>>>> 2. Add a new API with a WSDL and make sure to specify a wsdl which
>>>>>>> is not accessible
>>>>>>> 3. Submit the form, you will get an error
>>>>>>> 4. Now, correct the WSDL url and resubmit.
>>>>>>>
>>>>>>> Registry will be dead locked. After this, you will not be able to do
>>>>>>> any registry related task.
>>>>>>>
>>>>>>> TID: [-1234] [WSO2 API Manager] [2012-07-13 18:48:34,054] ERROR
>>>>>>> {org.wso2.carbon.governance.api.util.GovernanceUtils} -  Error in 
>>>>>>> getting
>>>>>>> the result for media type: application/vnd.wso2.registry-ext-type+xml.
>>>>>>> {org.wso2.carbon.governance.api.util.GovernanceUtils}
>>>>>>> org.wso2.carbon.registry.core.exceptions.RegistryException: Timeout
>>>>>>> trying to lock table "REG_RESOURCE"; SQL statement:
>>>>>>> SELECT DISTINCT REG_PATH_ID, REG_NAME FROM REG_RESOURCE WHERE
>>>>>>> (REG_RESOURCE.REG_TENANT_ID=?) AND  REG_MEDIA_TYPE=? [50200-140]
>>>>>>>  at
>>>>>>> org.wso2.carbon.registry.core.jdbc.dataaccess.SQLQueryProcessor.executeQuery(SQLQueryProcessor.java:240)
>>>>>>> at
>>>>>>> org.wso2.carbon.registry.core.jdbc.queries.QueryProcessorManager.executeQuery(QueryProcessorManager.java:137)
>>>>>>>  at
>>>>>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.executeQuery(EmbeddedRegistry.java:2271)
>>>>>>> at
>>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.executeQuery(CacheBackedRegistry.java:305)
>>>>>>>  at
>>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.executeQuery(UserRegistry.java:1246)
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.getResultPaths(GovernanceUtils.java:171)
>>>>>>>  at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifacts(GovernanceUtils.java:114)
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifactConfigurations(GovernanceUtils.java:383)
>>>>>>>  at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifactConfiguration(GovernanceUtils.java:144)
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.generic.GenericArtifactManager.<init>(GenericArtifactManager.java:83)
>>>>>>>  at
>>>>>>> org.wso2.carbon.apimgt.impl.AbstractAPIManager.isContextExist(AbstractAPIManager.java:260)
>>>>>>> at
>>>>>>> org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_isContextExist(APIProviderHostObject.java:1213)
>>>>>>>  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.mozilla.javascript.MemberBox.invoke(MemberBox.java:160)
>>>>>>> at
>>>>>>> org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.modules.api.c3._c2(/publisher/modules/api/add.jag:31)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.modules.api.c3.call(/publisher/modules/api/add.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2347)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:272)
>>>>>>> at
>>>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:127)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.modules.api.c0._c3(/publisher/modules/api/module.jag:12)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.modules.api.c0.call(/publisher/modules/api/module.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0._c1(/publisher/site/blocks/item-add/ajax/add.jag:73)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0._c0(/publisher/site/blocks/item-add/ajax/add.jag:4)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.exec(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>> at
>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:443)
>>>>>>>  at
>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:202)
>>>>>>> at
>>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:223)
>>>>>>>  at
>>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:51)
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>>>>>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>>>>>>> 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:225)
>>>>>>>  at
>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>>>>>>> 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:133)
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
>>>>>>>  at
>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:49)
>>>>>>>  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:1001)
>>>>>>> at
>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
>>>>>>>  at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
>>>>>>> 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)
>>>>>>> TID: [-1234] [WSO2 API Manager] [2012-07-13 18:48:34,074] ERROR
>>>>>>> {org.wso2.carbon.apimgt.impl.UserAwareAPIProvider} -  Failed to check
>>>>>>> context availability : /aaa
>>>>>>> {org.wso2.carbon.apimgt.impl.UserAwareAPIProvider}
>>>>>>> org.wso2.carbon.governance.api.exception.GovernanceException: Unable
>>>>>>> to obtain governance artifact configuration
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.generic.GenericArtifactManager.<init>(GenericArtifactManager.java:93)
>>>>>>>  at
>>>>>>> org.wso2.carbon.apimgt.impl.AbstractAPIManager.isContextExist(AbstractAPIManager.java:260)
>>>>>>> at
>>>>>>> org.wso2.carbon.apimgt.hostobjects.APIProviderHostObject.jsFunction_isContextExist(APIProviderHostObject.java:1213)
>>>>>>>  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.mozilla.javascript.MemberBox.invoke(MemberBox.java:160)
>>>>>>> at
>>>>>>> org.mozilla.javascript.FunctionObject.call(FunctionObject.java:411)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.modules.api.c3._c2(/publisher/modules/api/add.jag:31)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.modules.api.c3.call(/publisher/modules/api/add.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2347)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:272)
>>>>>>> at
>>>>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:127)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.modules.api.c0._c3(/publisher/modules/api/module.jag:12)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.modules.api.c0.call(/publisher/modules/api/module.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0._c1(/publisher/site/blocks/item-add/ajax/add.jag:73)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:57)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0._c0(/publisher/site/blocks/item-add/ajax/add.jag:4)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>> at
>>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:401)
>>>>>>>  at
>>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3003)
>>>>>>> at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.call(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>>  at
>>>>>>> org.wso2.carbon.rhino.site.blocks.item_add.ajax.c0.exec(/publisher/site/blocks/item-add/ajax/add.jag)
>>>>>>> at
>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:443)
>>>>>>>  at
>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:202)
>>>>>>> at
>>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:223)
>>>>>>>  at
>>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:51)
>>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
>>>>>>>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>>>>>>> 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:225)
>>>>>>>  at
>>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
>>>>>>> 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:133)
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
>>>>>>>  at
>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
>>>>>>> at
>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:49)
>>>>>>>  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:1001)
>>>>>>> at
>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
>>>>>>>  at
>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)
>>>>>>> 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.wso2.carbon.governance.api.exception.GovernanceException: Error in
>>>>>>> getting the result for media type:
>>>>>>> application/vnd.wso2.registry-ext-type+xml.
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.getResultPaths(GovernanceUtils.java:175)
>>>>>>>  at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifacts(GovernanceUtils.java:114)
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifactConfigurations(GovernanceUtils.java:383)
>>>>>>>  at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.findGovernanceArtifactConfiguration(GovernanceUtils.java:144)
>>>>>>> at
>>>>>>> org.wso2.carbon.governance.api.generic.GenericArtifactManager.<init>(GenericArtifactManager.java:83)
>>>>>>>  ... 52 more
>>>>>>> Caused by:
>>>>>>> org.wso2.carbon.registry.core.exceptions.RegistryException: Timeout 
>>>>>>> trying
>>>>>>> to lock table "REG_RESOURCE"; SQL statement:
>>>>>>> SELECT DISTINCT REG_PATH_ID, REG_NAME FROM REG_RESOURCE WHERE
>>>>>>> (REG_RESOURCE.REG_TENANT_ID=?) AND  REG_MEDIA_TYPE=? [50200-140]
>>>>>>> at
>>>>>>> org.wso2.carbon.registry.core.jdbc.dataaccess.SQLQueryProcessor.executeQuery(SQLQueryProcessor.java:240)
>>>>>>>  at
>>>>>>> org.wso2.carbon.registry.core.jdbc.queries.QueryProcessorManager.executeQuery(QueryProcessorManager.java:137)
>>>>>>> at
>>>>>>> org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.executeQuery(EmbeddedRegistry.java:2271)
>>>>>>>  at
>>>>>>> org.wso2.carbon.registry.core.caching.CacheBackedRegistry.executeQuery(CacheBackedRegistry.java:305)
>>>>>>> at
>>>>>>> org.wso2.carbon.registry.core.session.UserRegistry.executeQuery(UserRegistry.java:1246)
>>>>>>>  at
>>>>>>> org.wso2.carbon.governance.api.util.GovernanceUtils.getResultPaths(GovernanceUtils.java:171)
>>>>>>> ... 56 more
>>>>>>>
>>>>>>>
>>>>>>> Apparently, this seems to be a known issue and reported multiple
>>>>>>> times(e.g:  https://wso2.org/jira/browse/CARBON-11409), the
>>>>>>> suggested workaround is to use mysql. However, in API manager scenario, 
>>>>>>> the
>>>>>>> error is very prominent.
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> [email protected]
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> /sumedha
>>>>>> +94 773017743
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Senaka Fernando*
>>>>> Member - Integration Technologies Management Committee;
>>>>> Technical Lead; WSO2 Inc.; http://wso2.com*
>>>>> Member; Apache Software Foundation; http://apache.org
>>>>>
>>>>> E-mail: senaka AT wso2.com
>>>>> **P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818
>>>>> Linked-In: http://linkedin.com/in/senakafernando
>>>>>
>>>>> *Lean . Enterprise . Middleware
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> /sumedha
>>>> +94 773017743
>>>>
>>>
>>>
>>>
>>> --
>>> /sumedha
>>> +94 773017743
>>>
>>
>>
>>
>> --
>> /sumedha
>> +94 773017743
>>
>
>
>
> --
> *Senaka Fernando*
> Member - Integration Technologies Management Committee;
> Technical Lead; WSO2 Inc.; http://wso2.com*
> Member; Apache Software Foundation; http://apache.org
>
> E-mail: senaka AT wso2.com
> **P: +1 408 754 7388; ext: 51736*; *M: +94 77 322 1818
> Linked-In: http://linkedin.com/in/senakafernando
>
> *Lean . Enterprise . Middleware
>
>


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

Reply via email to