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 <[email protected]> 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 <[email protected]> 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.java: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.
>> java: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.
>> EditAction.doAction(EditAction.java:85)
>>     at org.eclipse.birt.report.designer.internal.ui.views.actions.
>> AbstractElementAction.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.
>> java: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.
>> java: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.
>> java: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.
>> OdaQuery.doGetMetaData(OdaQuery.java:423)
>>     at org.eclipse.datatools.connectivity.oda.consumer.helper.
>> OdaQuery.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.
>> sendGet(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.
>> java: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(
>> SunCertPathBuilder.java:141)
>>     at sun.security.provider.certpath.SunCertPathBuilder.engineBuil
>> d(SunCertPathBuilder.java:126)
>>     at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
>>     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.
>> java: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 <[email protected]> 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 <[email protected]> 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*
>>>>
>>>
>>>
>>>
>>> --
>>> *Pawan Gunaratne*
>>> Software Engineering Intern
>>> *WSO2*
>>> *Mob : 0770373556*
>>>
>>
>>
>>
>> --
>> *Pawan Gunaratne*
>> Software Engineering Intern
>> *WSO2*
>> *Mob : 0770373556*
>>
>
>
>
> --
> Anupama Pathirage
> Associate Technical Lead
> WSO2, Inc.  http://wso2.com/
> Email: [email protected]
> Mobile:+94 71 8273 979
>
>
>


-- 
*Pawan Gunaratne*
Software Engineering Intern
*WSO2*
*Mob : 0770373556*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to