*org.wso2.handler.SimpleOauthHandler *is for OAuth security and here I am referring to BasicAuth. So class name in the doc looks correct for me.
Thanks Godwin On Tue, Jan 16, 2018 at 11:51 AM, Godwin Shrimal <[email protected]> wrote: > Hi Vinod, > > I tried changing handler name and getting the same error. It looks > something wrong with the jar file when I try the following command gives an > error as "Error: error reading WSO2-REST-BasicAuth-Handler-1.0-SNAPSHOT.jar; > error in opening zip file". Let me compile the source and try. > > javap -classpath WSO2-REST-BasicAuth-Handler-1.0-SNAPSHOT.jar > org.wso2.handler.SimpleOauthHandler > > Thanks > Godwin > > On Tue, Jan 16, 2018 at 11:35 AM, Vinod Kavinda <[email protected]> wrote: > >> Hi Godwin, >> The jar in the given location has a different name than the doc. Please >> try using the handler name "*org.wso2.handler.SimpleOauthHandler". *Let's >> verify this. Then we need to correct the doc to align with the sample. >> Thanks for reporting. >> >> Regards, >> Vinod >> >> On Tue, Jan 16, 2018 at 7:56 AM, Godwin Shrimal <[email protected]> wrote: >> >>> Hi Devs, >>> >>> When we add the BasicAuth handler to API and save it gives following >>> error. (I followed the doc [1] and downloaded the jar file and put into >>> <EI_HOME>/lib) >>> >>> [2018-01-16 09:24:57,235] [EI-Core] ERROR - APIFactory Error >>> initializing API handler: org.wso2.rest.BasicAuthHandler >>> java.lang.ClassNotFoundException: org.wso2.rest.BasicAuthHandler cannot >>> be found by synapse-core_2.1.7.wso2v15 >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClassInter >>> nal(BundleLoader.java:501) >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>> leLoader.java:421) >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>> leLoader.java:412) >>> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa >>> dClass(DefaultClassLoader.java:107) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> at org.apache.synapse.config.xml.rest.APIFactory.defineHandler( >>> APIFactory.java:161) >>> at org.apache.synapse.config.xml.rest.APIFactory.createAPI(APIF >>> actory.java:103) >>> at org.apache.synapse.config.xml.rest.APIFactory.createAPI(APIF >>> actory.java:53) >>> at org.wso2.carbon.rest.api.service.RestApiAdmin.updateApiFromS >>> tring(RestApiAdmin.java:164) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> ssorImpl.java:62) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> thodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RP >>> CUtil.java:212) >>> at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusi >>> nessLogic(RPCMessageReceiver.java:117) >>> at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invo >>> keBusinessLogic(AbstractInOutMessageReceiver.java:40) >>> at org.apache.axis2.receivers.AbstractMessageReceiver.receive(A >>> bstractMessageReceiver.java:110) >>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >>> essMessage(LocalTransportReceiver.java:169) >>> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >>> essMessage(LocalTransportReceiver.java:82) >>> at org.wso2.carbon.core.transports.local.CarbonLocalTransportSe >>> nder.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45) >>> at org.apache.axis2.transport.local.LocalTransportSender.invoke >>> (LocalTransportSender.java:77) >>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>> at org.apache.axis2.description.OutInAxisOperationClient.send(O >>> utInAxisOperation.java:430) >>> at org.apache.axis2.description.OutInAxisOperationClient.execut >>> eImpl(OutInAxisOperation.java:225) >>> at org.apache.axis2.client.OperationClient.execute(OperationCli >>> ent.java:149) >>> at org.wso2.carbon.rest.api.stub.RestApiAdminStub.updateApiFrom >>> String(RestApiAdminStub.java:4280) >>> at org.wso2.carbon.rest.api.ui.client.RestApiAdminClient.update >>> ApiFromString(RestApiAdminClient.java:226) >>> at org.apache.jsp.api.savesource_002dajaxprocessor_jsp._jspServ >>> ice(savesource_002dajaxprocessor_jsp.java:177) >>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.ja >>> va:70) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.apache.jasper.servlet.JspServletWrapper.service(JspServl >>> etWrapper.java:439) >>> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl >>> et.java:395) >>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155) >>> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.j >>> ava:80) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.se >>> rvice(ContextPathServletAdaptor.java:37) >>> at org.eclipse.equinox.http.servlet.internal.ServletRegistratio >>> n.service(ServletRegistration.java:61) >>> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.proce >>> ssAlias(ProxyServlet.java:128) >>> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.servi >>> ce(ProxyServlet.java:68) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service >>> (DelegationServlet.java:68) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:303) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >>> r.java:52) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.cache.URLBasedCachePreventionFilt >>> er.doFilter(URLBasedCachePreventionFilter.java:57) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter >>> .java:88) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSR >>> FPreventionFilter.java:88) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRL >>> FPreventionFilter.java:61) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilte >>> r(CharacterSetFilter.java:61) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte >>> r(HttpHeaderSecurityFilter.java:124) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >>> dWrapperValve.java:219) >>> at org.apache.catalina.core.StandardContextValve.invoke(Standar >>> dContextValve.java:110) >>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >>> uthenticatorBase.java:506) >>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >>> stValve.java:169) >>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >>> rtValve.java:103) >>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInv >>> ocation(CompositeValve.java:99) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke >>> (CarbonTomcatValve.java:47) >>> at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(Tena >>> ntLazyLoaderValve.java:57) >>> at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invok >>> eValves(TomcatValveContainer.java:47) >>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(Comp >>> ositeValve.java:62) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetection >>> Valve.invoke(CarbonStuckThreadDetectionValve.java:159) >>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa >>> lve.java:962) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve. >>> invoke(CarbonContextCreatorValve.java:57) >>> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >>> EngineValve.java:116) >>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >>> apter.java:445) >>> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs >>> tractHttp11Processor.java:1115) >>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler >>> .process(AbstractProtocol.java:637) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun >>> (NioEndpoint.java:1775) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(N >>> ioEndpoint.java:1734) >>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>> Executor.java:1142) >>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>> lExecutor.java:617) >>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >>> un(TaskThread.java:61) >>> at java.lang.Thread.run(Thread.java:745) >>> [2018-01-16 09:24:57,241] [EI-Core] ERROR - RPCMessageReceiver Error >>> initializing API handler: org.wso2.rest.BasicAuthHandler >>> java.lang.reflect.InvocationTargetException >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce >>> ssorImpl.java:62) >>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe >>> thodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:483) >>> at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RP >>> CUtil.java:212) >>> at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusi >>> nessLogic(RPCMessageReceiver.java:117) >>> at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invo >>> keBusinessLogic(AbstractInOutMessageReceiver.java:40) >>> at org.apache.axis2.receivers.AbstractMessageReceiver.receive(A >>> bstractMessageReceiver.java:110) >>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) >>> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >>> essMessage(LocalTransportReceiver.java:169) >>> at org.apache.axis2.transport.local.LocalTransportReceiver.proc >>> essMessage(LocalTransportReceiver.java:82) >>> at org.wso2.carbon.core.transports.local.CarbonLocalTransportSe >>> nder.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45) >>> at org.apache.axis2.transport.local.LocalTransportSender.invoke >>> (LocalTransportSender.java:77) >>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442) >>> at org.apache.axis2.description.OutInAxisOperationClient.send(O >>> utInAxisOperation.java:430) >>> at org.apache.axis2.description.OutInAxisOperationClient.execut >>> eImpl(OutInAxisOperation.java:225) >>> at org.apache.axis2.client.OperationClient.execute(OperationCli >>> ent.java:149) >>> at org.wso2.carbon.rest.api.stub.RestApiAdminStub.updateApiFrom >>> String(RestApiAdminStub.java:4280) >>> at org.wso2.carbon.rest.api.ui.client.RestApiAdminClient.update >>> ApiFromString(RestApiAdminClient.java:226) >>> at org.apache.jsp.api.savesource_002dajaxprocessor_jsp._jspServ >>> ice(savesource_002dajaxprocessor_jsp.java:177) >>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.ja >>> va:70) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.apache.jasper.servlet.JspServletWrapper.service(JspServl >>> etWrapper.java:439) >>> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServl >>> et.java:395) >>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155) >>> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.j >>> ava:80) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.se >>> rvice(ContextPathServletAdaptor.java:37) >>> at org.eclipse.equinox.http.servlet.internal.ServletRegistratio >>> n.service(ServletRegistration.java:61) >>> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.proce >>> ssAlias(ProxyServlet.java:128) >>> at org.eclipse.equinox.http.servlet.internal.ProxyServlet.servi >>> ce(ProxyServlet.java:68) >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:731) >>> at org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service >>> (DelegationServlet.java:68) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:303) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilte >>> r.java:52) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.cache.URLBasedCachePreventionFilt >>> er.doFilter(URLBasedCachePreventionFilter.java:57) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter >>> .java:88) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.CSRFPreventionFilter.doFilter(CSR >>> FPreventionFilter.java:88) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.ui.filters.CRLFPreventionFilter.doFilter(CRL >>> FPreventionFilter.java:61) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilte >>> r(CharacterSetFilter.java:61) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilte >>> r(HttpHeaderSecurityFilter.java:124) >>> at org.apache.catalina.core.ApplicationFilterChain.internalDoFi >>> lter(ApplicationFilterChain.java:241) >>> at org.apache.catalina.core.ApplicationFilterChain.doFilter(App >>> licationFilterChain.java:208) >>> at org.apache.catalina.core.StandardWrapperValve.invoke(Standar >>> dWrapperValve.java:219) >>> at org.apache.catalina.core.StandardContextValve.invoke(Standar >>> dContextValve.java:110) >>> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(A >>> uthenticatorBase.java:506) >>> at org.apache.catalina.core.StandardHostValve.invoke(StandardHo >>> stValve.java:169) >>> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorRepo >>> rtValve.java:103) >>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInv >>> ocation(CompositeValve.java:99) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke >>> (CarbonTomcatValve.java:47) >>> at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(Tena >>> ntLazyLoaderValve.java:57) >>> at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invok >>> eValves(TomcatValveContainer.java:47) >>> at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(Comp >>> ositeValve.java:62) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetection >>> Valve.invoke(CarbonStuckThreadDetectionValve.java:159) >>> at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogVa >>> lve.java:962) >>> at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve. >>> invoke(CarbonContextCreatorValve.java:57) >>> at org.apache.catalina.core.StandardEngineValve.invoke(Standard >>> EngineValve.java:116) >>> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAd >>> apter.java:445) >>> at org.apache.coyote.http11.AbstractHttp11Processor.process(Abs >>> tractHttp11Processor.java:1115) >>> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler >>> .process(AbstractProtocol.java:637) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun >>> (NioEndpoint.java:1775) >>> at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(N >>> ioEndpoint.java:1734) >>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPool >>> Executor.java:1142) >>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoo >>> lExecutor.java:617) >>> at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.r >>> un(TaskThread.java:61) >>> at java.lang.Thread.run(Thread.java:745) >>> Caused by: org.apache.synapse.SynapseException: Error initializing API >>> handler: org.wso2.rest.BasicAuthHandler >>> at org.apache.synapse.config.xml.rest.APIFactory.handleExceptio >>> n(APIFactory.java:202) >>> at org.apache.synapse.config.xml.rest.APIFactory.defineHandler( >>> APIFactory.java:191) >>> at org.apache.synapse.config.xml.rest.APIFactory.createAPI(APIF >>> actory.java:103) >>> at org.apache.synapse.config.xml.rest.APIFactory.createAPI(APIF >>> actory.java:53) >>> at org.wso2.carbon.rest.api.service.RestApiAdmin.updateApiFromS >>> tring(RestApiAdmin.java:164) >>> ... 81 more >>> Caused by: java.lang.ClassNotFoundException: >>> org.wso2.rest.BasicAuthHandler cannot be found by synapse-core_2.1.7.wso2v15 >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClassInter >>> nal(BundleLoader.java:501) >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>> leLoader.java:421) >>> at org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund >>> leLoader.java:412) >>> at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa >>> dClass(DefaultClassLoader.java:107) >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357) >>> at org.apache.synapse.config.xml.rest.APIFactory.defineHandler( >>> APIFactory.java:161) >>> ... 84 more >>> >>> [1] https://docs.wso2.com/display/EI611/Securing+APIs >>> >>> Thanks >>> Godwin >>> >>> -- >>> *Godwin Amila Shrimal* >>> Associate Technical Lead >>> WSO2 Inc.; http://wso2.com >>> lean.enterprise.middleware >>> >>> mobile: *+94772264165* >>> linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ >>> <https://www.linkedin.com/in/godwin-amila-2ba26844/>* >>> twitter: https://twitter.com/godwinamila >>> <http://wso2.com/signature> >>> >> >> >> >> -- >> Vinod Kavinda >> Senior Software Engineer >> *WSO2 Inc. - lean . enterprise . middleware <http://www.wso2.com>.* >> Mobile : +94 (0) 712 415544 >> Blog : http://soatechflicks.blogspot.com/ >> [image: http://wso2.com/signature] >> <http://wso2.com/signature> >> >> > > > -- > *Godwin Amila Shrimal* > Associate Technical Lead > WSO2 Inc.; http://wso2.com > lean.enterprise.middleware > > mobile: *+94772264165* > linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ > <https://www.linkedin.com/in/godwin-amila-2ba26844/>* > twitter: https://twitter.com/godwinamila > <http://wso2.com/signature> > -- *Godwin Amila Shrimal* Associate Technical Lead WSO2 Inc.; http://wso2.com lean.enterprise.middleware mobile: *+94772264165* linkedin: *https://www.linkedin.com/in/godwin-amila-2ba26844/ <https://www.linkedin.com/in/godwin-amila-2ba26844/>* twitter: https://twitter.com/godwinamila <http://wso2.com/signature>
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
