Hi Pawan, In Eclipse BIRT, the way they use the keystores must be different, please research a bit more / debug and find the issue. Worse case, just disable certificate validation check in the JDBC driver and use it. We can simply have a driver option to disable that in the client it uses internally. Please do that improvement to the driver and use it.
Cheers, Anjana. On Thu, Nov 24, 2016 at 2:46 PM, Pawan Gunaratne <pa...@wso2.com> wrote: > Hi, > > I have added that server certificate into the JDK keystore. So now it > works (can show the data) with *Squirrel client SQL*. But in Eclipse BIRT > still I'm getting that same exception. > > Thanks, > Pawan > > On Wed, Nov 23, 2016 at 9:25 AM, Anupama Pathirage <anup...@wso2.com> > wrote: > >> Hi, >> >> It seems this is occurred since the DAS server does not have a valid >> certificate from an authorized CA. Please add DAS server certificate in to >> JDK keystore and check by following steps. >> >> - Access the DAS url from browser and export the certificate >> - Export the certificate to JDK key store using keytool. >> >> Thanks, >> Anupama >> >> On Mon, Nov 21, 2016 at 1:06 AM, Pawan Gunaratne <pa...@wso2.com> wrote: >> >>> Hi, >>> >>> After creating the JDBC connection in Eclipse BIRT it didn't allow to >>> get the table data available in DAS. Also it didn't show any tables/streams >>> available in DAS. When I'm trying to retrieve the data using SELECT queries >>> it will throw the following exception. >>> >>> ------------------------------------------------------------ >>> ------------------------------------------------------------ >>> ---------------------------------------- >>> org.eclipse.birt.data.engine.odaconsumer.OdaDataException: Cannot get >>> the result set metadata. >>> org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL statement >>> does not return a ResultSet object. >>> SQL error #1:Error in Get Column Data Types : >>> ; >>> java.sql.SQLException: Error in Get Column Data Types : >>> at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.ne >>> wException(ExceptionHandler.java:52) >>> at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.th >>> rowException(ExceptionHandler.java:108) >>> at org.eclipse.birt.data.engine.odaconsumer.ExceptionHandler.th >>> rowException(ExceptionHandler.java:84) >>> at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.g >>> etRuntimeMetaData(PreparedStatement.java:414) >>> at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.g >>> etProjectedColumns(PreparedStatement.java:377) >>> at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.d >>> oGetMetaData(PreparedStatement.java:347) >>> at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.e >>> xecute(PreparedStatement.java:563) >>> at org.eclipse.birt.data.engine.executor.DataSourceQuery.execut >>> e(DataSourceQuery.java:980) >>> at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQu >>> eryExecutor.executeOdiQuery(PreparedOdaDSQuery.java:607) >>> at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(Quer >>> yExecutor.java:1251) >>> at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.exe >>> cuteQuery(ServiceForQueryResults.java:233) >>> at org.eclipse.birt.data.engine.impl.QueryResults.getResultIter >>> ator(QueryResults.java:178) >>> at org.eclipse.birt.data.engine.impl.QueryResults.getResultMeta >>> Data(QueryResults.java:132) >>> at org.eclipse.birt.report.data.adapter.impl.DataSetMetaDataHel >>> per.getRuntimeMetaData(DataSetMetaDataHelper.java:196) >>> at org.eclipse.birt.report.data.adapter.impl.DataSetMetaDataHel >>> per.getRealMetaData(DataSetMetaDataHelper.java:155) >>> at org.eclipse.birt.report.data.adapter.impl.DataSetMetaDataHel >>> per.getDataSetMetaData(DataSetMetaDataHelper.java:117) >>> at org.eclipse.birt.report.data.adapter.impl.DataSetMetaDataHel >>> per.refreshMetaData(DataSetMetaDataHelper.java:385) >>> at org.eclipse.birt.report.data.adapter.impl.DataRequestSession >>> Impl.refreshMetaData(DataRequestSessionImpl.java:414) >>> at org.eclipse.birt.report.designer.data.ui.dataset.ExternalUIU >>> til.updateColumnCache(ExternalUIUtil.java:109) >>> at org.eclipse.birt.report.designer.data.ui.providers.DefaultDa >>> taServiceProvider.updateColumnCache(DefaultDataServiceProvider.java:139) >>> at org.eclipse.birt.report.designer.internal.ui.data.DataServic >>> e.updateColumnCache(DataService.java:173) >>> at org.eclipse.birt.report.designer.data.ui.dataset.DataSetUIUt >>> il.updateColumnCache(DataSetUIUtil.java:99) >>> at org.eclipse.birt.report.designer.data.ui.dataset.DataSetEdit >>> or.okPressed(DataSetEditor.java:687) >>> at org.eclipse.birt.report.designer.data.ui.property.AbstractPr >>> opertyDialog.buttonPressed(AbstractPropertyDialog.java:650) >>> at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.jav >>> a:618) >>> at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe >>> ner.java:249) >>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) >>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) >>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) >>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja >>> va:4553) >>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java >>> :4143) >>> at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) >>> at org.eclipse.jface.window.Window.open(Window.java:794) >>> at org.eclipse.birt.report.designer.ui.dialogs.BaseDialog.open( >>> BaseDialog.java:117) >>> at org.eclipse.birt.report.designer.data.ui.providers.EditableD >>> ataSetNodeProvider.performEdit(EditableDataSetNodeProvider.java:102) >>> at org.eclipse.birt.report.designer.internal.ui.views.DefaultNo >>> deProvider.performRequest(DefaultNodeProvider.java:472) >>> at org.eclipse.birt.report.designer.internal.ui.views.actions.E >>> ditAction.doAction(EditAction.java:85) >>> at org.eclipse.birt.report.designer.internal.ui.views.actions.A >>> bstractElementAction.run(AbstractElementAction.java:70) >>> at org.eclipse.birt.report.designer.internal.ui.views.RenameLis >>> tener.doubleClick(RenameListener.java:214) >>> at org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredV >>> iewer.java:833) >>> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) >>> at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:50) >>> at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:173) >>> at org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(S >>> tructuredViewer.java:830) >>> at org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSel >>> ect(AbstractTreeViewer.java:1470) >>> at org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSe >>> lected(StructuredViewer.java:1264) >>> at org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEven >>> t(OpenStrategy.java:252) >>> at org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.ja >>> va:249) >>> at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrate >>> gy.java:311) >>> >>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) >>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) >>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) >>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja >>> va:4553) >>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java >>> :4143) >>> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine >>> $4.run(PartRenderingEngine.java:1121) >>> at org.eclipse.core.databinding.observable.Realm.runWithDefault >>> (Realm.java:336) >>> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine >>> .run(PartRenderingEngine.java:1022) >>> at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRu >>> nUI(E4Workbench.java:150) >>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687) >>> at org.eclipse.core.databinding.observable.Realm.runWithDefault >>> (Realm.java:336) >>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work >>> bench.java:604) >>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j >>> ava:148) >>> at org.eclipse.ui.internal.ide.application.IDEApplication.start >>> (IDEApplication.java:138) >>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips >>> eAppHandle.java:196) >>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher >>> .runApplication(EclipseAppLauncher.java:134) >>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher >>> .start(EclipseAppLauncher.java:104) >>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS >>> tarter.java:388) >>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS >>> tarter.java:243) >>> 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:498) >>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) >>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) >>> at org.eclipse.equinox.launcher.Main.run(Main.java:1519) >>> at org.eclipse.equinox.launcher.Main.main(Main.java:1492) >>> Caused by: org.eclipse.birt.report.data.oda.jdbc.JDBCException: SQL >>> statement does not return a ResultSet object. >>> SQL error #1:Error in Get Column Data Types : >>> ; >>> java.sql.SQLException: Error in Get Column Data Types : >>> at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery >>> (Statement.java:482) >>> at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaUsing >>> DefaultPolicy(Statement.java:389) >>> at org.eclipse.birt.report.data.oda.jdbc.Statement.getMetaData( >>> Statement.java:330) >>> at org.eclipse.birt.report.data.oda.jdbc.bidi.BidiStatement.get >>> MetaData(BidiStatement.java:56) >>> at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQu >>> ery.doGetMetaData(OdaQuery.java:423) >>> at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQu >>> ery.getMetaData(OdaQuery.java:390) >>> at org.eclipse.birt.data.engine.odaconsumer.PreparedStatement.g >>> etRuntimeMetaData(PreparedStatement.java:407) >>> ... 72 more >>> Caused by: java.sql.SQLException: Error in Get Column Data Types : >>> at org.wso2.das.jdbcdriver.jdbc.DASJConnection.getColumnDataTyp >>> es(DASJConnection.java:498) >>> at org.wso2.das.jdbcdriver.jdbc.DASJStatement.executeDASQuery(D >>> ASJStatement.java:344) >>> at org.wso2.das.jdbcdriver.jdbc.DASJPreparedStatement.executeQu >>> ery(DASJPreparedStatement.java:80) >>> at org.eclipse.birt.report.data.oda.jdbc.Statement.executeQuery >>> (Statement.java:478) >>> ... 78 more >>> Caused by: javax.net.ssl.SSLHandshakeException: >>> sun.security.validator.ValidatorException: PKIX path building failed: >>> sun.security.provider.certpath.SunCertPathBuilderException: unable to >>> find valid certification path to requested target >>> at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) >>> at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) >>> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) >>> at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) >>> at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHa >>> ndshaker.java:1509) >>> at sun.security.ssl.ClientHandshaker.processMessage(ClientHands >>> haker.java:216) >>> at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) >>> at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) >>> at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java >>> :1062) >>> at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSo >>> cketImpl.java:1375) >>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl. >>> java:1403) >>> at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl. >>> java:1387) >>> at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsCli >>> ent.java:559) >>> at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnectio >>> n.connect(AbstractDelegateHttpsURLConnection.java:185) >>> at sun.net.www.protocol.http.HttpURLConnection.getInputStream0( >>> HttpURLConnection.java:1546) >>> at sun.net.www.protocol.http.HttpURLConnection.getInputStream(H >>> ttpURLConnection.java:1474) >>> at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputSt >>> ream(HttpsURLConnectionImpl.java:254) >>> at org.wso2.das.jdbcdriver.dasInterface.DASServiceConnector.sen >>> dGet(DASServiceConnector.java:48) >>> at org.wso2.das.jdbcdriver.jdbc.DASJConnection.getColumnDataTyp >>> es(DASJConnection.java:494) >>> ... 81 more >>> Caused by: sun.security.validator.ValidatorException: PKIX path >>> building failed: sun.security.provider.certpath.SunCertPathBuilderException: >>> unable to find valid certification path to requested target >>> at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.j >>> ava:387) >>> at sun.security.validator.PKIXValidator.engineValidate(PKIXVali >>> dator.java:292) >>> at sun.security.validator.Validator.validate(Validator.java:260) >>> at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustMana >>> gerImpl.java:324) >>> at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509Trust >>> ManagerImpl.java:229) >>> at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X50 >>> 9TrustManagerImpl.java:124) >>> at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHa >>> ndshaker.java:1491) >>> ... 95 more >>> Caused by: sun.security.provider.certpath.SunCertPathBuilderException: >>> unable to find valid certification path to requested target >>> at sun.security.provider.certpath.SunCertPathBuilder.build(SunC >>> ertPathBuilder.java:141) >>> at sun.security.provider.certpath.SunCertPathBuilder.engineBuil >>> d(SunCertPathBuilder.java:126) >>> at java.security.cert.CertPathBuilder.build(CertPathBuilder.jav >>> a:280) >>> at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.j >>> ava:382) >>> ... 101 more >>> >>> ------------------------------------------------------------ >>> ------------------------------------------------------------ >>> -------------------------------------- >>> >>> Here I have attached a screenshot of basic error message also. So any >>> kind of help would be appreciated. >>> >>> Thanks, >>> Pawan >>> >>> >>> On Tue, Nov 15, 2016 at 11:32 AM, Pawan Gunaratne <pa...@wso2.com> >>> wrote: >>> >>>> Hi, >>>> >>>> That exception issue is settled. It's a problem of missing some part >>>> of the database URL property. >>>> It should be >>>> *jdbc:dasjdriver:* >>>> >>>> *https://localhost:9443/analytics/ >>>> <https://www.google.com/url?q=https%3A%2F%2Flocalhost%3A9443%2Fanalytics%2F&sa=D&sntz=1&usg=AFQjCNFhjYINkte5BaQp05Fe1Ly8PgPVaQ>* >>>> Thanks, >>>> Pawan >>>> >>>> On Wed, Nov 9, 2016 at 12:06 PM, Pawan Gunaratne <pa...@wso2.com> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> I'm working on DAS report generation stuff. So I have tried to connect >>>>> eclipse BIRT reporting tool with WSO2 DAS using DAS JDBC driver. but >>>>> I'm getting an exception after giving the connection properties.That >>>>> exception is related to connection properties. >>>>> >>>>> ------------------------------------------------------------ >>>>> ------------------------------------------ >>>>> org.eclipse.datatools.connectivity.oda.OdaException: Failed to create >>>>> a connection. Please verify the connection properties. >>>>> at org.eclipse.birt.report.data.oda.jdbc.ui.profile.JDBCSelecti >>>>> onPageHelper$TestInProcessDialog$TestConnectionJob$1.run(JDB >>>>> CSelectionPageHelper.java:218) >>>>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) >>>>> at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchr >>>>> onizer.java:182) >>>>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.jav >>>>> a:4528) >>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java >>>>> :4146) >>>>> at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) >>>>> at org.eclipse.jface.window.Window.open(Window.java:794) >>>>> at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.j >>>>> ava:396) >>>>> at org.eclipse.birt.report.data.oda.jdbc.ui.profile.JDBCSelecti >>>>> onPageHelper$8.widgetSelected(JDBCSelectionPageHelper.java:1036) >>>>> at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe >>>>> ner.java:249) >>>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java >>>>> :84) >>>>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) >>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) >>>>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja >>>>> va:4553) >>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java >>>>> :4143) >>>>> at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) >>>>> at org.eclipse.jface.window.Window.open(Window.java:794) >>>>> at org.eclipse.birt.report.designer.data.ui.actions.NewDataSour >>>>> ceAction.run(NewDataSourceAction.java:127) >>>>> at org.eclipse.jface.action.Action.runWithEvent(Action.java:473) >>>>> at org.eclipse.jface.action.ActionContributionItem.handleWidget >>>>> Selection(ActionContributionItem.java:565) >>>>> at org.eclipse.jface.action.ActionContributionItem.lambda$4(Act >>>>> ionContributionItem.java:397) >>>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java >>>>> :84) >>>>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) >>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) >>>>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja >>>>> va:4553) >>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java >>>>> :4143) >>>>> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine >>>>> $4.run(PartRenderingEngine.java:1121) >>>>> at org.eclipse.core.databinding.observable.Realm.runWithDefault >>>>> (Realm.java:336) >>>>> at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine >>>>> .run(PartRenderingEngine.java:1022) >>>>> at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRu >>>>> nUI(E4Workbench.java:150) >>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687) >>>>> at org.eclipse.core.databinding.observable.Realm.runWithDefault >>>>> (Realm.java:336) >>>>> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work >>>>> bench.java:604) >>>>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j >>>>> ava:148) >>>>> at org.eclipse.ui.internal.ide.application.IDEApplication.start >>>>> (IDEApplication.java:138) >>>>> at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips >>>>> eAppHandle.java:196) >>>>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher >>>>> .runApplication(EclipseAppLauncher.java:134) >>>>> at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher >>>>> .start(EclipseAppLauncher.java:104) >>>>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS >>>>> tarter.java:388) >>>>> at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS >>>>> tarter.java:243) >>>>> 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:498) >>>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: >>>>> 673) >>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) >>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1519) >>>>> at org.eclipse.equinox.launcher.Main.main(Main.java:1492) >>>>> >>>>> ------------------------------------------------------------ >>>>> -------------------------------------- >>>>> >>>>> Here I have attached a screenshot of connection properties also*. *So >>>>> need any kind of help to fix this issue. >>>>> >>>>> Thanks, >>>>> Pawan >>>>> >>>>> >>>>> -- >>>>> *Pawan Gunaratne* >>>>> Software Engineering Intern >>>>> *WSO2* >>>>> *Mob : 0770373556 <0770373556>* >>>>> >>>> >>>> >>>> >>>> -- >>>> *Pawan Gunaratne* >>>> Software Engineering Intern >>>> *WSO2* >>>> *Mob : 0770373556 <0770373556>* >>>> >>> >>> >>> >>> -- >>> *Pawan Gunaratne* >>> Software Engineering Intern >>> *WSO2* >>> *Mob : 0770373556 <0770373556>* >>> >> >> >> >> -- >> Anupama Pathirage >> Associate Technical Lead >> WSO2, Inc. http://wso2.com/ >> Email: anup...@wso2.com >> Mobile:+94 71 8273 979 >> >> >> > > > -- > *Pawan Gunaratne* > Software Engineering Intern > *WSO2* > *Mob : 0770373556 <0770373556>* > -- *Anjana Fernando* Associate Director / Architect WSO2 Inc. | http://wso2.com lean . enterprise . middleware
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev