Hi, Thanks Pubudu. There was a missing OSGI bundle registration for Issue Tracking component. I was able to fix the issue by fixing that.
Regards, Dilhasha Fathima Dilhasha Nazeer <http://lk.linkedin.com/in/dilhasha/> (M.N.F.Dilhasha) Undergraduate | Department of Computer Science and Engineering University of Moratuwa Sri Lanka On Mon, Mar 23, 2015 at 4:50 PM, Pubudu Dodangoda <[email protected]> wrote: > I think you should also be able to find the wsdl for the service by giving > the url shown at the OSGI console > Please refer the following link on how to view the wsdl for the > service(under the "Writing the service stub" section) > > > http://wso2.com/library/tutorials/2014/03/how-to-write-a-wso2-carbon-component/ > > On Wed, Mar 18, 2015 at 2:46 PM, Fathima Dilhasha <[email protected]> > wrote: > >> The service is listed in OSGI console. Where else can I check to see why >> the service is not found? >> >> *M.N.F. Dilhasha* >> Software Engineering Intern | *WSO2 Lanka* >> >> email : >> *[email protected] <[email protected]>*mobile : +94 77 8449321 >> >> On Wed, Mar 18, 2015 at 2:37 PM, Danushka Fernando <[email protected]> >> wrote: >> >>> Null pointer is coming from Carbon Context. So seems somehow osgi >>> service is not found. >>> >>> Thanks & Regards >>> Danushka Fernando >>> Software Engineer >>> WSO2 inc. http://wso2.com/ >>> Mobile : +94716332729 >>> >>> On Wed, Mar 18, 2015 at 1:18 PM, Fathima Dilhasha <[email protected]> >>> wrote: >>> >>>> Hi, >>>> >>>> Yeah 'createProject' is a method I introduced. I've patched it to my >>>> AppFactory instance. >>>> Okay, I will debug backend code and see. >>>> >>>> Thanks. >>>> >>>> Regards, >>>> Dilhasha >>>> >>>> *M.N.F. Dilhasha* >>>> Software Engineering Intern | *WSO2 Lanka* >>>> >>>> email : >>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>> >>>> On Wed, Mar 18, 2015 at 1:04 PM, Mahesh Chinthaka <[email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> Is this 'createProject' method implemented by you inside >>>>> IssueTrackerService ?? Because in my code I cannot see such a method in >>>>> IssueTrackerService. >>>>> You can debug the backend code to find out the place where NP occurs. >>>>> >>>>> >>>>> On Wed, Mar 18, 2015 at 11:40 AM, Fathima Dilhasha <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I tried logging in between the steps. >>>>>> >>>>>> * tenantId and tenantDomain are not null >>>>>> * The null pointer exception takes place in the following line. >>>>>> >>>>>> server.osgiService('org.wso2.carbon.appfactory.issuetracking.service.IssueTrackerService').createProject(applicationName", >>>>>> issueTrackerConfig); >>>>>> >>>>>> Is it because the server cannot track the OSGI service I'm referring >>>>>> to? (The service is listed in the OSGI cosole) >>>>>> >>>>>> How can I figure it out? >>>>>> >>>>>> Thanks. >>>>>> Regards, >>>>>> Dilhasha >>>>>> >>>>>> *M.N.F. Dilhasha* >>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>> >>>>>> email : >>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>> >>>>>> On Wed, Mar 18, 2015 at 11:14 AM, Fathima Dilhasha <[email protected] >>>>>> > wrote: >>>>>> >>>>>>> Hi Mahesh, >>>>>>> >>>>>>> Thanks for the points. I'll work on those and see. >>>>>>> >>>>>>> Regards, >>>>>>> Dilhasha >>>>>>> >>>>>>> *M.N.F. Dilhasha* >>>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>>> >>>>>>> email : >>>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>>> >>>>>>> On Wed, Mar 18, 2015 at 11:13 AM, Mahesh Chinthaka <[email protected] >>>>>>> > wrote: >>>>>>> >>>>>>>> Sorry I missed this, >>>>>>>> getting modManager varialbe , put this befor getting the tenant >>>>>>>> domain. >>>>>>>> var modManager = jagg.module("manager"); >>>>>>>> >>>>>>>> On Wed, Mar 18, 2015 at 11:11 AM, Mahesh Chinthaka < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Dilhasha, >>>>>>>>> I think you havent got the tenant domain properly. >>>>>>>>> >>>>>>>>> you may use following to get tenant domain. >>>>>>>>> var tenantDomain = modManager.getTenantDomain(); >>>>>>>>> >>>>>>>>> you may use following to set tenant domain n id >>>>>>>>> >>>>>>>>> context.getThreadLocalCarbonContext().setTenantDomain(tenantDomain,true); >>>>>>>>> >>>>>>>>> >>>>>>>>> in between the steps you can put info logs to see values, in >>>>>>>>> that way you may be able to see whats null here. >>>>>>>>> >>>>>>>>> On Wed, Mar 18, 2015 at 10:59 AM, Danushka Fernando < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Few points >>>>>>>>>> >>>>>>>>>> 1. Did you check whether your osgi bundle is activated or >>>>>>>>>> not? May be that's the issue. Seems it cannot find the osgi >>>>>>>>>> service. >>>>>>>>>> 2. When start tenant flow in setTenantDomain method there is >>>>>>>>>> a another signature which will take in tenantDomain (String) and >>>>>>>>>> resolveTenantID (boolean) parameters. You can use that instead of >>>>>>>>>> setting >>>>>>>>>> tenantID manually. >>>>>>>>>> 3. The way you have included the module, AFAIR that's not the >>>>>>>>>> way to refer to a module. Refer to other places that we have done >>>>>>>>>> such a >>>>>>>>>> thing. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks & Regards >>>>>>>>>> Danushka Fernando >>>>>>>>>> Software Engineer >>>>>>>>>> WSO2 inc. http://wso2.com/ >>>>>>>>>> Mobile : +94716332729 >>>>>>>>>> >>>>>>>>>> On Wed, Mar 18, 2015 at 10:45 AM, Fathima Dilhasha < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Mahesh, >>>>>>>>>>> >>>>>>>>>>> Thanks for the response. >>>>>>>>>>> >>>>>>>>>>> Following is the code in saveConfig.jag >>>>>>>>>>> >>>>>>>>>>> include("/jagg/jagg.jag"); >>>>>>>>>>> include("/jagg/constants.jag"); >>>>>>>>>>> include("/jagg/config_reader.jag"); >>>>>>>>>>> include("/modules/manager/manager.jag"); >>>>>>>>>>> >>>>>>>>>>> (function () { >>>>>>>>>>> >>>>>>>>>>> var carbon = require('carbon'); >>>>>>>>>>> var log = new Log("module/issuetracker/saveConfig.jag"); >>>>>>>>>>> var multitenancy = carbon.multitenancy; >>>>>>>>>>> var server = carbon.server; >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> var context=multitenancy.getPrivilegedCarbonContext(); >>>>>>>>>>> var tenantDomain = getTenantDomain(); >>>>>>>>>>> var tenantId=getTenantId(); >>>>>>>>>>> >>>>>>>>>>> var issueTrackerConfig = >>>>>>>>>>> Packages.org.wso2.carbon.appfactory.issuetracking.beans.IssueTrackerConfigurations; >>>>>>>>>>> var issueConfig=new issueTrackerConfig(); >>>>>>>>>>> issueConfig.setIssueTrackerinstanceUrl("some url"); >>>>>>>>>>> >>>>>>>>>>> try{ >>>>>>>>>>> >>>>>>>>>>> context.startTenantFlow(); >>>>>>>>>>> context.getThreadLocalCarbonContext().setTenantId(tenantId); >>>>>>>>>>> >>>>>>>>>>> context.getThreadLocalCarbonContext().setTenantDomain(tenantDomain); >>>>>>>>>>> >>>>>>>>>>> server.osgiService('org.wso2.carbon.appfactory.issuetracking.service.IssueTrackerService').createProject("applicationName", >>>>>>>>>>> issueTrackerConfig); >>>>>>>>>>> }catch(e){ >>>>>>>>>>> log.error(e); >>>>>>>>>>> }finally{ >>>>>>>>>>> context.endTenantFlow(); >>>>>>>>>>> } >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> }()); >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> The getTenantDomain,getTenantId functions are in a different jag >>>>>>>>>>> file, which I have included (manager.jag). >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> *M.N.F. Dilhasha* >>>>>>>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>>>>>>> >>>>>>>>>>> email : >>>>>>>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>>>>>>> >>>>>>>>>>> On Wed, Mar 18, 2015 at 10:35 AM, Mahesh Chinthaka < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Dilhasha, >>>>>>>>>>>> >>>>>>>>>>>> This could be either not setting tenant domain/ id properly or, >>>>>>>>>>>> issueTrackerConfig parameter might be null at that moment. can you >>>>>>>>>>>> share >>>>>>>>>>>> the code segment of whole function please. So we can see the >>>>>>>>>>>> reason for NPE. >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Mar 18, 2015 at 10:27 AM, Fathima Dilhasha < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi, >>>>>>>>>>>>> >>>>>>>>>>>>> I'm trying to access an osgi service available in WSO2 >>>>>>>>>>>>> Appfactory, from the 'appmgt' jaggery app. In this process I get >>>>>>>>>>>>> the >>>>>>>>>>>>> following exception in the server. >>>>>>>>>>>>> >>>>>>>>>>>>> *TID: [0] [AF] [2015-03-18 04:44:00,643] ERROR >>>>>>>>>>>>> {module/issuetracker/saveConfig.jag} - >>>>>>>>>>>>> org.mozilla.javascript.WrappedException: Wrapped >>>>>>>>>>>>> java.lang.NullPointerException (osgi#8)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)* >>>>>>>>>>>>> * at org.mozilla.javascript.gen.osgi_11._c_anonymous_2(osgi:8)* >>>>>>>>>>>>> * at org.mozilla.javascript.gen.osgi_11.call(osgi)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0._c_anonymous_1(/appmgt/modules/issuetracker/get/saveConfig.jag:49)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0.call(/appmgt/modules/issuetracker/get/saveConfig.jag)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0._c_script_0(/appmgt/modules/issuetracker/get/saveConfig.jag:26)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0.call(/appmgt/modules/issuetracker/get/saveConfig.jag)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0.call(/appmgt/modules/issuetracker/get/saveConfig.jag)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.rhino.appmgt.modules.issuetracker.get.c0.exec(/appmgt/modules/issuetracker/get/saveConfig.jag)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:541)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:735)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:848)* >>>>>>>>>>>>> * 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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)* >>>>>>>>>>>>> * 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:171)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)* >>>>>>>>>>>>> * 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:1004)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)* >>>>>>>>>>>>> * at java.lang.Thread.run(Thread.java:744)* >>>>>>>>>>>>> *Caused by: java.lang.NullPointerException* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.wso2.carbon.context.PrivilegedCarbonContext.getOSGiService(PrivilegedCarbonContext.java:448)* >>>>>>>>>>>>> * at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown >>>>>>>>>>>>> Source)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)* >>>>>>>>>>>>> * at java.lang.reflect.Method.invoke(Method.java:606)* >>>>>>>>>>>>> * at >>>>>>>>>>>>> org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)* >>>>>>>>>>>>> * ... 50 more* >>>>>>>>>>>>> * {module/issuetracker/saveConfig.jag}* >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Following is the code segment in saveConfig.jag, which is >>>>>>>>>>>>> responsible for calling the osgi service. >>>>>>>>>>>>> >>>>>>>>>>>>> try{ >>>>>>>>>>>>> >>>>>>>>>>>>> context.startTenantFlow(); >>>>>>>>>>>>> context.getThreadLocalCarbonContext().setTenantId(tenantId); >>>>>>>>>>>>> >>>>>>>>>>>>> context.getThreadLocalCarbonContext().setTenantDomain(tenantDomain); >>>>>>>>>>>>> >>>>>>>>>>>>> server.osgiService('org.wso2.carbon.appfactory.issuetracking.service.IssueTrackerService').createProject("applicationName", >>>>>>>>>>>>> issueTrackerConfig); >>>>>>>>>>>>> }catch(e){ >>>>>>>>>>>>> log.error(e); >>>>>>>>>>>>> }finally{ >>>>>>>>>>>>> context.endTenantFlow(); >>>>>>>>>>>>> } >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> It would be really helpful, if someone can help me to overcome >>>>>>>>>>>>> this problem. >>>>>>>>>>>>> >>>>>>>>>>>>> Thanks. >>>>>>>>>>>>> Regards, >>>>>>>>>>>>> Dilhasha >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> *M.N.F. Dilhasha* >>>>>>>>>>>>> Software Engineering Intern | *WSO2 Lanka* >>>>>>>>>>>>> >>>>>>>>>>>>> email : >>>>>>>>>>>>> *[email protected] <[email protected]>*mobile : +94 77 8449321 >>>>>>>>>>>>> >>>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>>> Dev mailing list >>>>>>>>>>>>> [email protected] >>>>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>>>>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>>>>>>>>> Email: [email protected] | Web: www.wso2.com >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Dev mailing list >>>>>>>>>>> [email protected] >>>>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>>>>>> Email: [email protected] | Web: www.wso2.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>>>>> Email: [email protected] | Web: www.wso2.com >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer >>>>> WSO2, Inc | lean. enterprise. middleware. >>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345 >>>>> Email: [email protected] | Web: www.wso2.com >>>>> >>>> >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> [email protected] >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >> >> _______________________________________________ >> Dev mailing list >> [email protected] >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Pubudu Dodangoda > BSc Engineering(Hon's) Undergraduate > Department of Computer Science Engineering > University of Moratuwa > 0716053681 / 0775192994 > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
