Hello Dulitha,

Please find the below steps I followed in attempting to reproduce your
issue in developer studio 3.8.0 in linux . Please give me the steps to
reproduce if this is not the way. Also let me know your OS.

1) created ESB project 1
2) created Rest API with the name "sampleRest" in project 1
3) created ESB project 2
4) created Rest API with the name "sampleRest" in project 2
5) created Capp1 including ESB Project 1
6) created Capp2 including ESB Project 2
7) deleted sampleRest from each ESB project and observed the changes being
reflected in the capp accordingly.

I also tried deleting multiple artifacts. and observed that the car file
reflects them fine.

Regards
Awanthika

Awanthika Senarath
Software Engineer, WSO2 Inc.
Mobile: +94717681791



On Tue, Dec 22, 2015 at 9:31 PM, Dulitha Wijewantha <[email protected]>
wrote:

>
>
> On Wed, Dec 16, 2015 at 9:17 PM, Awanthika Senarath <[email protected]>
> wrote:
>
>> Hello Dulitha,
>>
>>
>> ​I agree that artifact name needs to be unqiue to the car file. But in a
>> scenario where you have 2 esb configuration projects having an artifact
>> with the same name (in-sequence.xml) - it crashes the car interface.​
>>
>> If you have the same ESB artifact in different configuration projects,
>> you cannot pack them in the same car file. Because in car file level we
>> only consider the artifact name and not the folder hierarchy (which
>> involves the ESB project). The ESB project is introduced by Dev studio to
>> maintain artifacts. When you deploy the car file in the ESB, ESB will only
>> deploy the artifacts as single entries and not the project, and I fail to
>> understand you reasoning behind having the same artifact name as you wont
>> be able to deploy them in the same ESB instance in a single car file anyway.
>>
>> But I accept that this should be conveyed to the user via a message, not
>> crashing the car file.
>>
>>
>> About the issue you faced when deleting artifacts, I was not able to
>> reproduce it,
>>
>> 1. Created two ESB projects
>> 2. Created 2 Rest API artifacts with the same name in both projects
>> 3. Deleted on Rest API
>>
>> It worked as expected for me in Dev studio 3.8.0
>>
>> Could you please give me your Dev studio version and also reproducing
>> steps?
>>
>
> ​It was dev studio 3.8.0. ​
>
> ​Did you create the car project as well on both projects? ​
>
> Also there is an issue in deleting multiple artifacts. If muliple are
> deleted the car file doesn't reflect those.
>
>
>>
>> Regards
>> Awanthika
>>
>> Awanthika Senarath
>> Software Engineer, WSO2 Inc.
>> Mobile: +94717681791
>>
>>
>>
>> On Wed, Dec 16, 2015 at 10:23 PM, Dulitha Wijewantha <[email protected]>
>> wrote:
>>
>>>
>>>
>>> On Tue, Dec 15, 2015 at 10:26 PM, Awanthika Senarath <[email protected]
>>> > wrote:
>>>
>>>> Hi Dulitha,
>>>>
>>>> Find my responses in-line,
>>>>
>>>> 1) Can't have the same project name in the workspace. For example - I
>>>> create a project called gateway-dev and have gateway-car, gateway-synapse,
>>>> gateway-registry. I can't create a project with gateway-staging and have
>>>> gateway-car. Is this an eclipse limitation?
>>>>     This is an eclipse limitation. Eclipse maintains a META file called
>>>> .project for each and every project and the name in this .project file
>>>> needs to be unique.
>>>>
>>>> 2) Can't have the same artifact name in the workspace. This one is bit
>>>> annoying. I renamed the project to gateway-dev-synapse and
>>>> gateway-staging-synapse. I can't have the api artifact with id.xml inside
>>>> dev project and staging project in the same namespace:- the car picking
>>>> form gets confused on the two assets. What's more - it will get corrupted
>>>> and not have anything at all from synapse to pick. Below is an error that
>>>> popped in the error console
>>>>     Yes, car files import artifacts based on the artifact name and in
>>>> the artifact.xml of a car file it will list all the artifacts that needs to
>>>> be bundled in that particular car, hence the artifact names needs to be
>>>> unique for the car file. The error you have got is due to dev studio
>>>> crashing before the file system files are properly refreshed, OR an attempt
>>>> to manually edit the file system resources not via eclipse. Ideally this
>>>> should be resolved by refreshing the workspace files through eclipse (right
>>>> click the file and refresh)
>>>>
>>>
>>> ​I agree that artifact name needs to be unqiue to the car file. But in a
>>> scenario where you have 2 esb configuration projects having an artifact
>>> with the same name (in-sequence.xml) - it crashes the car interface.​
>>>
>>>
>>>
>>>> ​
>>>>
>>> 3) Deleting a resource (API) got me below error -
>>>>     Could you please let us know how to reproduce this? did you attempt
>>>> to rename the resource before deleting?
>>>>
>>> ​This was the scenario where I had the same arifact name in 2 different
>>> esb configuration projects. ​
>>>
>>>
>>>
>>>>
>>>> 4) Bulk import for resources -
>>>>     You are correct, this is a current limitation. You can import the
>>>> synapse configuration with multiple proxies in it and dev-studio will
>>>> generate the proxies for different artifacts in the synapse configuration.
>>>> But currently it is not supported to import multiple proxy.xml files
>>>> simultaneously.
>>>>
>>>> Regards
>>>> Awanthika
>>>>
>>>>
>>>> Awanthika Senarath
>>>> Software Engineer, WSO2 Inc.
>>>> Mobile: +94717681791
>>>>
>>>>
>>>>
>>>> On Wed, Dec 16, 2015 at 6:25 AM, Dulitha Wijewantha <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi guys,
>>>>> I got some issues today working on the developer studio.
>>>>>
>>>>> 1) Can't have the same project name in the workspace. For example - I
>>>>> create a project called gateway-dev and have gateway-car, gateway-synapse,
>>>>> gateway-registry. I can't create a project with gateway-staging and have
>>>>> gateway-car. Is this an eclipse limitation?
>>>>>
>>>>> 2) Can't have the same artifact name in the workspace. This one is bit
>>>>> annoying. I renamed the project to gateway-dev-synapse and
>>>>> gateway-staging-synapse. I can't have the api artifact with id.xml inside
>>>>> dev project and staging project in the same namespace:- the car picking
>>>>> form gets confused on the two assets. What's more - it will get corrupted
>>>>> and not have anything at all from synapse to pick. Below is an error that
>>>>> popped in the error console -
>>>>>
>>>>> org.eclipse.core.runtime.CoreException: The file is not synchronized
>>>>> with the local file system.
>>>>> at
>>>>> org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.commitFileBufferContent(ResourceTextFileBuffer.java:338)
>>>>> at
>>>>> org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:325)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.TextFileChange.commit(TextFileChange.java:233)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.TextChange.perform(TextChange.java:240)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
>>>>> at
>>>>> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
>>>>> at
>>>>> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
>>>>> at
>>>>> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
>>>>>
>>>>>
>>>>> org.eclipse.core.runtime.CoreException: The file is not synchronized
>>>>> with the local file system.
>>>>> at
>>>>> org.eclipse.core.internal.filebuffers.ResourceTextFileBuffer.commitFileBufferContent(ResourceTextFileBuffer.java:338)
>>>>> at
>>>>> org.eclipse.core.internal.filebuffers.ResourceFileBuffer.commit(ResourceFileBuffer.java:325)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.TextFileChange.commit(TextFileChange.java:233)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.TextChange.perform(TextChange.java:240)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.CompositeChange.perform(CompositeChange.java:278)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:258)
>>>>> at
>>>>> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:306)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.UIPerformChangeOperation.executeChange(UIPerformChangeOperation.java:92)
>>>>> at
>>>>> org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:218)
>>>>> at
>>>>> org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:87)
>>>>> at
>>>>> org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
>>>>>
>>>>> 3) Deleting a resource (API) got me below error -
>>>>>
>>>>>  org.eclipse.swt.SWTException: Failed to execute runnable
>>>>> (java.lang.NullPointerException)
>>>>> at org.eclipse.swt.SWT.error(SWT.java:4397)
>>>>> at org.eclipse.swt.SWT.error(SWT.java:4312)
>>>>> at
>>>>> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
>>>>> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3976)
>>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3653)
>>>>> at
>>>>> org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)
>>>>> at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.run(RefactoringWizardDialog2.java:331)
>>>>> at
>>>>> org.eclipse.ltk.ui.refactoring.RefactoringWizard.internalPerformFinish(RefactoringWizard.java:637)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.ErrorWizardPage.performFinish(ErrorWizardPage.java:162)
>>>>> at
>>>>> org.eclipse.ltk.ui.refactoring.RefactoringWizard.performFinish(RefactoringWizard.java:710)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.RefactoringWizardDialog2.okPressed(RefactoringWizardDialog2.java:468)
>>>>> at org.eclipse.jface.dialogs.Dialog.buttonPressed(Dialog.java:476)
>>>>> at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:628)
>>>>> at
>>>>> org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:248)
>>>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>>>>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
>>>>> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
>>>>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)
>>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)
>>>>> at org.eclipse.jface.window.Window.runEventLoop(Window.java:826)
>>>>> at org.eclipse.jface.window.Window.open(Window.java:802)
>>>>> at
>>>>> org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation$1.run(RefactoringWizardOpenOperation.java:187)
>>>>> at
>>>>> org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
>>>>> at
>>>>> org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:202)
>>>>> at
>>>>> org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation.run(RefactoringWizardOpenOperation.java:122)
>>>>> at
>>>>> org.eclipse.ltk.internal.ui.refactoring.actions.DeleteResourcesHandler.execute(DeleteResourcesHandler.java:40)
>>>>> at
>>>>> org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:290)
>>>>> at
>>>>> org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90)
>>>>> at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>> at java.lang.reflect.Method.invoke(Method.java:606)
>>>>> at
>>>>> org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
>>>>> at
>>>>> org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:243)
>>>>> at
>>>>> org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:224)
>>>>> at
>>>>> org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
>>>>> at
>>>>> org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:167)
>>>>> at
>>>>> org.eclipse.core.commands.Command.executeWithChecks(Command.java:499)
>>>>> at
>>>>> org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
>>>>> at
>>>>> org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
>>>>> at
>>>>> org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommandInContext(LegacyHandlerService.java:480)
>>>>> at
>>>>> org.eclipse.ui.internal.ide.actions.LTKLauncher.runCommand(LTKLauncher.java:95)
>>>>> at
>>>>> org.eclipse.ui.internal.ide.actions.LTKLauncher.openDeleteWizard(LTKLauncher.java:47)
>>>>> at
>>>>> org.eclipse.ui.actions.DeleteResourceAction.run(DeleteResourceAction.java:474)
>>>>> at
>>>>> org.eclipse.ui.actions.BaseSelectionListenerAction.runWithEvent(BaseSelectionListenerAction.java:168)
>>>>> at
>>>>> org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
>>>>> at
>>>>> org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
>>>>> at
>>>>> org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
>>>>> at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>>>>> at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4166)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1489)
>>>>> at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1474)
>>>>> at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1279)
>>>>> at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4012)
>>>>> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3651)
>>>>> at
>>>>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
>>>>> at
>>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>>>>> at
>>>>> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
>>>>> at
>>>>> org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
>>>>> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
>>>>> at
>>>>> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>>>>> at
>>>>> org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
>>>>> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
>>>>> at
>>>>> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
>>>>> at
>>>>> org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>>>>> at
>>>>> org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>>>>> at
>>>>> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>>>>> 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:606)
>>>>> at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
>>>>> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
>>>>> at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
>>>>> Caused by: java.lang.NullPointerException
>>>>> at
>>>>> org.wso2.developerstudio.eclipse.platform.ui.provider.FilterNestedProjects.getPathList(FilterNestedProjects.java:121)
>>>>> at
>>>>> org.wso2.developerstudio.eclipse.platform.ui.provider.FilterNestedProjects.select(FilterNestedProjects.java:91)
>>>>> at org.eclipse.jface.viewers.ViewerFilter.filter(ViewerFilter.java:51)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:921)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:620)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2645)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1923)
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:721)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1898)
>>>>> at
>>>>> org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1855)
>>>>> at
>>>>> org.eclipse.ui.navigator.CommonViewer.internalRefresh(CommonViewer.java:561)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1535)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
>>>>> at
>>>>> org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1533)
>>>>> at
>>>>> org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:555)
>>>>> at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:353)
>>>>> at org.eclipse.ui.navigator.CommonViewer.refresh(CommonViewer.java:510)
>>>>> at
>>>>> org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1465)
>>>>> at
>>>>> org.wso2.developerstudio.eclipse.platform.ui.provider.ProjectContentProvider$2.run(ProjectContentProvider.java:163)
>>>>> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
>>>>> at
>>>>> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
>>>>> ... 77 more
>>>>>
>>>>> 4) Bulk import for resources - I guess this is a limitation currently.
>>>>> There is no way to import bulk set of Proxy services to the project.
>>>>>
>>>>> Cheers
>>>>>
>>>>>
>>>>> --
>>>>> Dulitha Wijewantha (Chan)
>>>>> Software Engineer - Mobile Development
>>>>> WSO2 Inc
>>>>> Lean.Enterprise.Middleware
>>>>>  * ~Email       [email protected] <[email protected]>*
>>>>> *  ~Mobile     +94712112165 <%2B94712112165>*
>>>>> *  ~Website   dulitha.me <http://dulitha.me>*
>>>>> *  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
>>>>>   *~Github     @dulichan <https://github.com/dulichan>*
>>>>>   *~SO     @chan <http://stackoverflow.com/users/813471/chan>*
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> [email protected]
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Dulitha Wijewantha (Chan)
>>> Software Engineer - Mobile Development
>>> WSO2 Inc
>>> Lean.Enterprise.Middleware
>>>  * ~Email       [email protected] <[email protected]>*
>>> *  ~Mobile     +94712112165 <%2B94712112165>*
>>> *  ~Website   dulitha.me <http://dulitha.me>*
>>> *  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
>>>   *~Github     @dulichan <https://github.com/dulichan>*
>>>   *~SO     @chan <http://stackoverflow.com/users/813471/chan>*
>>>
>>
>>
>
>
> --
> Dulitha Wijewantha (Chan)
> Software Engineer - Mobile Development
> WSO2 Inc
> Lean.Enterprise.Middleware
>  * ~Email       [email protected] <[email protected]>*
> *  ~Mobile     +94712112165 <%2B94712112165>*
> *  ~Website   dulitha.me <http://dulitha.me>*
> *  ~Twitter     @dulitharw <https://twitter.com/dulitharw>*
>   *~Github     @dulichan <https://github.com/dulichan>*
>   *~SO     @chan <http://stackoverflow.com/users/813471/chan>*
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to