Hi all, IMHO when we calling the Javascript method directly it does not mean actual drag and drop.So better we can try @nipuna suggestion as first making the elements draggable and try simulate function using jquery.simulate.js for drag and drop action,I have tried simulate earlier but I missed to make elements draggable.So I am working on this approach :).
On Tue, Nov 3, 2015 at 11:55 AM, Nipuna Chandradasa <nipu...@wso2.com> wrote: > HI manu, > > I didn't try the 1st alternative that Rajeenthini mentioned ( set timeout > for ues thumbnails to make them drag-gable to drag and drop action). But > i tried the 2nd alternative which making createComponent() and > findStoreCache() methods public... and it worked. > > But isn't it good if we did not change the code to do the tests ... ? Also > Jquery uses their jquery.simulate.js to test there functionalities. So > using that to test the drag and drop in our scenario is good isn't it? > > On Tue, Nov 3, 2015 at 11:33 AM, Rajeenthini Satkunam < > rajeenth...@wso2.com> wrote: > >> Hi manu, >> >> I have tried with the modification done in my local checkout. >> >> 1) we have set timeout for ues thumbnails to make them drag-gable to drag >> and drop action. >> 2) we have called the javascript function { createComponent($("#a"), >> findStoreCache("gadget", "g1")); } to crate gadget using the method >> JavascriptExecutor >> >> By first approach I could not resolve the drag and drop action using >> selenium But the second approach works fine and we have drawback that we >> need to make two javascript function at designer.js file as global >> functions to use the createComponent to do drag and drop Action using >> selenium. >> >> As per discussion with @nipuna the only problem with our UI that only >> those elements are draggable when mouse over.So IMHO we can make them >> draggable and after that can do the drag and drop Action.I will go through >> the nipuna's suggestion as well and will update the mail thread. >> >> >> >> On Tue, Nov 3, 2015 at 6:35 AM, Manuranga Perera <m...@wso2.com> wrote: >> >>> I also noted the on mouseenter event drag-able issue and made a local >>> change in Rajeenthini's checkout. >>> Rajeenthini, were you able to test it with that change? >>> >>> On Mon, Nov 2, 2015 at 7:16 PM, Nipuna Chandradasa <nipu...@wso2.com> >>> wrote: >>> >>>> Hi Rajeenthini, >>>> >>>> I tried one of your references which uses jquery.simulate.js to test >>>> the jquery UI functionality. It worked. >>>> Only thing that it didnt work with out product is we only make the >>>> element draggable when the mouseenter event. I progamatically made it >>>> draggable. Then using jquery simulator i simulate the drag and drop. >>>> >>>> this is the link i refer ( it's 6th reference in your list :D ) >>>> >>>> >>>> http://stackoverflow.com/questions/16848165/programmatically-drag-and-drop-element-onto-another-element >>>> >>>> Following is what i did: >>>> >>>> ((JavascriptExecutor)getDriver()).executeScript(" var draggableElement = >>>> $('#ues-store-gadget > div > div.row.ues-thumbnails > div:nth-child(1) > >>>> div').draggable({"+ >>>> >>>> "cancel: false," + >>>> >>>> "appendTo: 'body'," + // These are the >>>> options we gave when writing the draggable element. >>>> >>>> "helper: 'clone'," + >>>> >>>> "start: function (event, ui) {" + >>>> >>>> "ui.helper.addClass('ues-store-thumbnail');}," + >>>> >>>> "stop: function (event, ui) {" + >>>> >>>> "ui.helper.removeClass('ues-store-thumbnail');" + >>>> >>>> "}})," + >>>> >>>> "dropableElement=$('#a');"+ // Defining Dropable element >>>> >>>> "var droppableOffset = dropableElement.offset()," + // Get the >>>> Offset from droppable element >>>> >>>> "draggableOffset = draggableElement.offset()," + // Get the >>>> Offset from draggable element >>>> >>>> "dx = droppableOffset.left - draggableOffset.left," + >>>> >>>> "dy = droppableOffset.top - draggableOffset.top;" + >>>> >>>> "draggableElement.simulate('drag', {" + // Call the simulate >>>> method provided by jqeury.simulate.js >>>> >>>> "dx: dx," + >>>> >>>> "dy: dy" + >>>> >>>> "});"); >>>> >>>> Hope you find this helpful. >>>> >>>> Regards, >>>> >>>> >>>> On Thu, Oct 22, 2015 at 10:54 AM, Rajeenthini Satkunam < >>>> rajeenth...@wso2.com> wrote: >>>> >>>>> Hi All, >>>>> >>>>> I have resolved the previous issue mentioned above through lasantha's >>>>> solution which he was mentioned. @lasantha Thank you for your prompt >>>>> reply. >>>>> Even though I could not do this drag and drop Action successfully to >>>>> selenium UI test case Java.I would like to share what kind of try I have >>>>> made for get this work out. I am not getting any errors while I am doing >>>>> the build.Test case has been passed consistently. >>>>> >>>>> Using Action come up with selenium Automation frame work >>>>> ============================================== >>>>> >>>>> Selenium Action[1] class used to interactions using selenium.I have >>>>> tried in 3 ways that has proposed by selenium to do drag and drop Action. >>>>> >>>>> 1) By Selected Action class >>>>> >>>>> Actions builder = new Actions(getDriver()); >>>>> Action dragAndDrop = builder.clickAndHold(gadget) >>>>> .moveToElement(targetPane) >>>>> .release(targetPane) >>>>> .build(); >>>>> dragAndDrop.perform(); >>>>> Thread.sleep(2000); >>>>> >>>>> here the gadget is draggable, targetPane is droppable target element >>>>> which are find by selenium web driver using method >>>>> >>>>> WebElement gadget = getDriver().findElement(By.id("g1")); >>>>> WebElement targetPane = getDriver().findElement(By.id("a")); >>>>> >>>>> >>>>> 2) Using x y by dragAndDrop() >>>>> >>>>> Actions dragAndHold = >>>>> builder.clickAndHold(gadget).moveToElement(targetPane,-5,-5).release(targetPane); >>>>> builder.perform(); >>>>> >>>>> 3) Using dragAndDropBy method >>>>> >>>>> Point pointLast = gadget.getLocation(); >>>>> int xcordLast = point.getX(); >>>>> int ycordLast = point.getY(); >>>>> System.out.println(xcordLast + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + ycordLast); >>>>> Dimension d = gadget.getSize(); >>>>> System.out.println(d.getHeight() + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + d.getWidth()); >>>>> int obj1MiddleX = (int) (xcord + (d.getWidth() * 0.5)); >>>>> int obj1MiddleY = (int) (ycord + d.getHeight() * 0.5); >>>>> >>>>> System.out.println(obj1MiddleX + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + obj1MiddleY); >>>>> >>>>> Point point1 = targetPane.getLocation(); >>>>> int xcordpane = point1.getX(); >>>>> int ycordpane = point1.getY(); >>>>> System.out.println(xcordpane + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + ycordpane); >>>>> Dimension dPane = gadget.getSize(); >>>>> System.out.println(dPane.getHeight() + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + dPane >>>>> .getWidth()); >>>>> int obj2MiddleX = (int) (xcordpane + (dPane.getWidth() * 0.5)); >>>>> int obj2MiddleY = (int) (ycordpane + dPane.getHeight() * 0.5); >>>>> >>>>> System.out.println(obj2MiddleX + " " + >>>>> >>>>> "===============================================>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.." >>>>> + obj2MiddleY); >>>>> >>>>> int XoffSet = Math.abs(obj1MiddleX - obj2MiddleX); >>>>> int YoffSet = Math.abs(obj1MiddleY - obj2MiddleY); >>>>> >>>>> builder.dragAndDropBy(gadget,XoffSet,YoffSet); >>>>> >>>>> But none of these methods did not give me any successful drag and drop >>>>> Action. >>>>> >>>>> >>>>> Using EcecuteScript method >>>>> >>>>> =========================== >>>>> >>>>> So I have discussed with team and come up with a idea that writing a >>>>> script for drag and drop Action on UI and exceute that script using >>>>> method of selenium framework executeScript(). >>>>> >>>>> I have search for the solutions that can be trigger the drag and drop >>>>> Action using script.And we are using JQueryUI to do drag and drop.I have >>>>> shared those links that I have follwed below.It also does not give any >>>>> positive impact to do this task. >>>>> >>>>> String filePath = >>>>> FrameworkPathUtil.getReportLocation()+"/../src/test/resources/dragAndDropJs/dnd.js"; >>>>> StringBuffer buffer = new StringBuffer(); >>>>> String line; >>>>> BufferedReader br = new BufferedReader(new FileReader(filePath)); >>>>> while((line = br.readLine())!=null) >>>>> buffer.append(line); >>>>> String javaScript = buffer.toString(); >>>>> String cssSource = "#g1"; >>>>> String cssTarget = "#a"; >>>>> >>>>> javaScript = javaScript + "$('" + cssSource + "').simulateDragDrop({ >>>>> dropTarget: '" + cssTarget + "'});"; >>>>> (getDriver()).executeScript(javaScript); >>>>> >>>>> >>>>> And the javascript file dnd.js >>>>> >>>>> (function ($) { >>>>> $.fn.simulateDragDrop = function (options) { >>>>> return this.each(function () { >>>>> new $.simulateDragDrop(this, options); >>>>> }); >>>>> }; >>>>> $.simulateDragDrop = function (elem, options) { >>>>> this.options = options; >>>>> this.simulateEvent(elem, options); >>>>> }; >>>>> $.extend($.simulateDragDrop.prototype, { >>>>> simulateEvent: function (elem, options) { >>>>> /*Simulating drag start*/ >>>>> var type = 'dragstart'; >>>>> var event = this.createEvent(type); >>>>> this.dispatchEvent(elem, type, event); >>>>> >>>>> /*Simulating drop*/ >>>>> type = 'drop'; >>>>> var dropEvent = this.createEvent(type, {}); >>>>> dropEvent.dataTransfer = event.dataTransfer; >>>>> this.dispatchEvent($(options.dropTarget)[0], type, dropEvent); >>>>> >>>>> /*Simulating drag end*/ >>>>> type = 'dragend'; >>>>> var dragEndEvent = this.createEvent(type, {}); >>>>> dragEndEvent.dataTransfer = event.dataTransfer; >>>>> this.dispatchEvent(elem, type, dragEndEvent); >>>>> }, >>>>> createEvent: function (type) { >>>>> var event = document.createEvent("CustomEvent"); >>>>> event.initCustomEvent(type, true, true, null); >>>>> event.dataTransfer = { >>>>> data: { >>>>> }, >>>>> setData: function (type, val) { >>>>> this.data[type] = val; >>>>> }, >>>>> getData: function (type) { >>>>> return this.data[type]; >>>>> } >>>>> }; >>>>> return event; >>>>> }, >>>>> dispatchEvent: function (elem, type, event) { >>>>> if (elem.dispatchEvent) { >>>>> elem.dispatchEvent(event); >>>>> } else if (elem.fireEvent) { >>>>> elem.fireEvent("on" + type, event); >>>>> } >>>>> } >>>>> }); >>>>> >>>>> })(jQuery); >>>>> >>>>> >>>>> above code is not giving any errors like previous one.Tests has been >>>>> passed But the Action drag and drop is not happened. >>>>> >>>>> >>>>> [1] - >>>>> https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/interactions/Actions.html >>>>> >>>>> [2] - >>>>> http://www.nishantverma.com/2011/07/using-drag-and-drop-in-webdriver.html >>>>> >>>>> [3] - http://elementalselenium.com/tips/39-drag-and-drop >>>>> >>>>> [4] - >>>>> http://stackoverflow.com/questions/14210051/how-to-automate-drag-drop-functionality-using-selenium-web-driver >>>>> >>>>> [5] - >>>>> https://github.com/jquery/jquery-ui/blob/1-11-stable/tests/unit/droppable/droppable_events.js#L21-L33 >>>>> >>>>> [6] - >>>>> http://stackoverflow.com/questions/16848165/programmatically-drag-and-drop-element-onto-another-element >>>>> >>>>> [7] - >>>>> https://github.com/jquery/jquery-ui/blob/9e8e339648901899827a58e5bf919f7dda03b88e/tests/jquery.simulate.js >>>>> >>>>> And I have discussed about this at stackoverflow and linkedin as well >>>>> >>>>> you can get by these following links >>>>> >>>>> stackoverflow - >>>>> http://stackoverflow.com/questions/33146808/executing-javascript-for-selenium-ui-integration-test-of-drag-and-drop-java >>>>> >>>>> Linkedin - >>>>> https://www.linkedin.com/groups/961927/961927-6060654701249060868#commentID_6062515331736305664 >>>>> >>>>> I did not get any replies for stackoverflow ,But I got some points on >>>>> linkedin selenium group. I have followed all those steps that has >>>>> mentioned their replies. >>>>> >>>>> So can anyone please tryout this scenario and advice me to do this >>>>> task?.Your help is appreciated mostly. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Oct 9, 2015 at 3:25 PM, Lasantha Samarakoon < >>>>> lasant...@wso2.com> wrote: >>>>> >>>>>> Hi Rajeenthini, >>>>>> >>>>>> You are getting this exception because you can't cast the >>>>>> UESWebDriver into HasInputDevices interface. That is because unlike >>>>>> other drivers such as FirefoxDriver and ChromeDriver the UESWebDriver >>>>>> only implements the WebDriver interface. >>>>>> >>>>>> Therefore you need to implement the HasInputDevices interface in >>>>>> UESWebDriver in order to use those mouse and keyboard actions. >>>>>> >>>>>> >>>>>> Regards, >>>>>> >>>>>> *Lasantha Samarakoon* | Software Engineer >>>>>> WSO2, Inc. >>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>> Mobile: +94 (71) 214 1576 >>>>>> Email: lasant...@wso2.com >>>>>> Web: www.wso2.com >>>>>> >>>>>> lean . enterprise . middleware >>>>>> >>>>>> On Thu, Oct 8, 2015 at 4:55 PM, Madusanka Premaratne < >>>>>> madusan...@wso2.com> wrote: >>>>>> >>>>>>> Hi Rajinthini, >>>>>>> It seems like you have to change the test case. Did you record the >>>>>>> test case using selenium plugin? The best approach is write is yourself >>>>>>> in >>>>>>> this kind of scenarios. You can refer to the links[1] and [2] to get an >>>>>>> idea. >>>>>>> [1] - >>>>>>> http://stackoverflow.com/questions/14210051/how-to-automate-drag-drop-functionality-using-selenium-web-driver >>>>>>> [2] - http://www.toolsqa.com/selenium-webdriver/drag-drop/ >>>>>>> >>>>>>> Thanks, >>>>>>> Madusanka >>>>>>> >>>>>>> On Thu, Oct 8, 2015 at 3:48 PM, Rajeenthini Satkunam < >>>>>>> rajeenth...@wso2.com> wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> I am currently working on writing UI test-cases using selenium for >>>>>>>> Dashboard Server(DS)/User Engagement Server.I have a test Case which >>>>>>>> needs >>>>>>>> to do a action that drag one element to a place and drop it in that >>>>>>>> place(drag and drop).So I have tried the below approach to do this >>>>>>>> task. >>>>>>>> >>>>>>>> public void testAddGadgetToDashboard() throws Exception { >>>>>>>> webElement = getDriver().findElement(By.id(dashboardTitle)); >>>>>>>> webElement.findElement(By.cssSelector("a[href=\"dashboards/" + >>>>>>>> dashboardTitle + "?editor=true\"]")).click(); >>>>>>>> WebElement draggable = getDriver().findElement(By.id("g1")); >>>>>>>> WebElement to = getDriver().findElement(By.id("a")); >>>>>>>> Actions builder = new Actions(getDriver()); >>>>>>>> Action dragAndDrop = builder.clickAndHold(draggable) >>>>>>>> .moveToElement(to) >>>>>>>> .release(to) >>>>>>>> .build(); >>>>>>>> dragAndDrop.perform(); >>>>>>>> >>>>>>>> } >>>>>>>> >>>>>>>> But I am getting an exception when running the test-case, >>>>>>>> >>>>>>>> FAILED: testAddGadgetToDashboard >>>>>>>> Adding gadgets to existing dashboard from dashboard server >>>>>>>> java.lang.ClassCastException: >>>>>>>> org.wso2.ues.ui.integration.util.UESWebDriver cannot be cast to >>>>>>>> org.openqa.selenium.interactions.HasInputDevices >>>>>>>> at org.openqa.selenium.interactions.Actions.<init>(Actions.java:41) >>>>>>>> at >>>>>>>> org.wso2.ues.ui.integration.test.dashboard.AddgadgetToDashboardtest.testAddGadgetToDashboard(AddgadgetToDashboardtest.java:86) >>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>> at >>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>> at >>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>>>>>> at >>>>>>>> org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84) >>>>>>>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) >>>>>>>> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) >>>>>>>> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) >>>>>>>> at >>>>>>>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) >>>>>>>> at >>>>>>>> org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) >>>>>>>> at org.testng.TestRunner.privateRun(TestRunner.java:767) >>>>>>>> at org.testng.TestRunner.run(TestRunner.java:617) >>>>>>>> at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) >>>>>>>> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) >>>>>>>> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) >>>>>>>> at org.testng.SuiteRunner.run(SuiteRunner.java:240) >>>>>>>> at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) >>>>>>>> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) >>>>>>>> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224) >>>>>>>> at org.testng.TestNG.runSuitesLocally(TestNG.java:1149) >>>>>>>> at org.testng.TestNG.run(TestNG.java:1057) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:177) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:105) >>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>> at >>>>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>>>>> at >>>>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>>>>> at java.lang.reflect.Method.invoke(Method.java:601) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:103) >>>>>>>> at >>>>>>>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:74) >>>>>>>> >>>>>>>> Can anyone please advice me on how this has gone wrong and Is >>>>>>>> selenium version or Firefox version are depends on this error thrown? >>>>>>>> >>>>>>>> Note: I am using Firefox version 27 and selenium version is >>>>>>>> automation selenium version. >>>>>>>> -- >>>>>>>> >>>>>>>> *Thank You.* >>>>>>>> >>>>>>>> *Rajeenthini Satkunam* >>>>>>>> >>>>>>>> *Associate Software Engineer | WSO2* >>>>>>>> >>>>>>>> >>>>>>>> *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* >>>>>>>> >>>>>>>> *M :+94770832823 <%2B94770832823> * >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> Dev@wso2.org >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Madusanka Premaratne* | Associate Software Engineer >>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>> Mobile: +94 71 835 70 73| Work: +94 112 145 345 >>>>>>> Email: madusan...@wso2.com | Web: www.wso2.com >>>>>>> >>>>>>> [image: Facebook] <https://www.facebook.com/maduzanka> [image: >>>>>>> Twitter] <https://twitter.com/rmmpremaratne> [image: Google Plus] >>>>>>> <https://plus.google.com/u/0/+MadusankaPremaratnemaduz/about/p/pub> >>>>>>> [image: >>>>>>> Linkedin] <http://lk.linkedin.com/in/madusanka/> [image: Instagram] >>>>>>> <http://instagram.com/madusankapremaratne> [image: Skype] >>>>>>> <http://@rmmpremaratne> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> *Thank You.* >>>>> >>>>> *Rajeenthini Satkunam* >>>>> >>>>> *Associate Software Engineer | WSO2* >>>>> >>>>> >>>>> *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* >>>>> >>>>> *M :+94770832823 <%2B94770832823> * >>>>> >>>>> >>>> >>>> >>>> -- >>>> Nipuna Marcus >>>> *Software Engineer* >>>> WSO2 Inc. >>>> http://wso2.com/ - "lean . enterprise . middleware" >>>> Mobile : +94 (0) 713 667906 >>>> nipu...@wso2.com >>>> >>> >>> >>> >>> -- >>> With regards, >>> *Manu*ranga Perera. >>> >>> phone : 071 7 70 20 50 >>> mail : m...@wso2.com >>> >> >> >> >> -- >> >> *Thank You.* >> >> *Rajeenthini Satkunam* >> >> *Associate Software Engineer | WSO2* >> >> >> *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* >> >> *M :+94770832823 <%2B94770832823> * >> >> > > > -- > Nipuna Marcus > *Software Engineer* > WSO2 Inc. > http://wso2.com/ - "lean . enterprise . middleware" > Mobile : +94 (0) 713 667906 > nipu...@wso2.com > -- *Thank You.* *Rajeenthini Satkunam* *Associate Software Engineer | WSO2* *E:rajeenth...@wso2.com <rajeenth...@wso2.com>* *M :+94770832823 *
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev