Do we have ran, Jenkins slave in here ? To test this, can you change
executor value for 1 in jenkins main configuration. Then jenkins master
will build this itself and can verify whether this is some issue in slave
node or not.


*Harsha Thirimanna*
Senior Software Engineer; WSO2, Inc.; http://wso2.com
* <http://www.apache.org/>*
*email: **[email protected]* <[email protected]>* cell: +94 71 5186770  , +94 *
*774617784twitter: **http://twitter.com/ <http://twitter.com/afkham_azeez>*
*harshathirimannlinked-in: **http:
<http://lk.linkedin.com/in/afkhamazeez>**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
<http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122>*

*Lean . Enterprise . Middleware*


On Wed, Nov 12, 2014 at 12:32 AM, Mahesh Chinthaka <[email protected]> wrote:

> Hi all,
> Just to give an update anc current status on this,
>
> I did the code changes patched buildserver and appfacotry accordingly.
> And I was able to get appfactory up and running.
> Tenant creation successfull.
> When creating an application it fails to build. :(
>
> No error logs in AF and AS.
>
> Following shows the jenkins console output of the build attempt.
>
>
>
> Started by user jenkinssystemadmin 
> <https://jenkins.appfactory.private.wso2.com:9674/t/testx.com/webapps/jenkins/user/jenkinssystemadmin>
> Building remotely on dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2 
> <https://jenkins.appfactory.private.wso2.com:9674/t/testx.com/webapps/jenkins/computer/dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2>
>  (af) in workspace 
> /home/wso2/appfactory_deployment_s4/setup/slave-cluster-manager/workspace/workspace/app100-trunk-default
> Checkout:app100-trunk-default / 
> /home/wso2/appfactory_deployment_s4/setup/slave-cluster-manager/workspace/workspace/app100-trunk-default
>  - 
> hudson.remoting.Channel@77ded95b:dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2
> Using strategy: Default
> Last Built Revision: Revision 3cd65385b67f0458d82e621839a16bd10b61fc6e 
> (origin/master)
> Fetching changes from 1 remote Git repository
> Fetching upstream changes from 
> https://git.appfactory.private.wso2.com:8443/git/testx.com/app100.git
> Commencing build of Revision 3cd65385b67f0458d82e621839a16bd10b61fc6e 
> (origin/master)
> Checking out Revision 3cd65385b67f0458d82e621839a16bd10b61fc6e (origin/master)
> Parsing POMs
> ERROR: Failed to parse POMsjava.io.IOException 
> <http://stacktrace.jenkins-ci.org/search?query=java.io.IOException>: remote 
> file operation failed: 
> /home/wso2/appfactory_deployment_s4/setup/slave-cluster-manager/workspace/workspace/app100-trunk-default
>  at 
> hudson.remoting.Channel@77ded95b:dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2:
>  java.io.IOException: Remote call on 
> dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2 failed
>       at hudson.FilePath.act(FilePath.java:977) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.FilePath.act&entity=method>
>       at hudson.FilePath.act(FilePath.java:959) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.FilePath.act&entity=method>
>       at 
> hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms(MavenModuleSetBuild.java:877)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.parsePoms&entity=method>
>       at 
> hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun(MavenModuleSetBuild.java:636)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenModuleSetBuild$MavenModuleSetBuildExecution.doRun&entity=method>
>       at 
> hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.AbstractBuild$AbstractBuildExecution.run&entity=method>
>       at hudson.model.Run.execute(Run.java:1759) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Run.execute&entity=method>
>       at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:491) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenModuleSetBuild.run&entity=method>
>       at hudson.model.ResourceController.execute(ResourceController.java:89) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.ResourceController.execute&entity=method>
>       at hudson.model.Executor.run(Executor.java:240) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.model.Executor.run&entity=method>
> Caused by: java.io.IOException 
> <http://stacktrace.jenkins-ci.org/search?query=java.io.IOException>: Remote 
> call on dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2 failed
>       at hudson.remoting.Channel.call(Channel.java:760) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.Channel.call&entity=method>
>       at hudson.FilePath.act(FilePath.java:970) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.FilePath.act&entity=method>
>       ... 8 more
> Caused by: java.lang.NoSuchMethodError 
> <http://stacktrace.jenkins-ci.org/search?query=java.lang.NoSuchMethodError>: 
> org.codehaus.plexus.DefaultPlexusContainer.<init>(Lorg/codehaus/plexus/ContainerConfiguration;)V
>       at 
> hudson.maven.MavenEmbedderUtils.buildPlexusContainer(MavenEmbedderUtils.java:163)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenEmbedderUtils.buildPlexusContainer&entity=method>
>       at 
> hudson.maven.MavenEmbedderUtils.buildPlexusContainer(MavenEmbedderUtils.java:156)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenEmbedderUtils.buildPlexusContainer&entity=method>
>       at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:109) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenEmbedder.%3Cinit%3E&entity=method>
>       at hudson.maven.MavenEmbedder.<init>(MavenEmbedder.java:136) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenEmbedder.%3Cinit%3E&entity=method>
>       at hudson.maven.MavenUtil.createEmbedder(MavenUtil.java:214) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenUtil.createEmbedder&entity=method>
>       at 
> hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1211)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenModuleSetBuild$PomParser.invoke&entity=method>
>       at 
> hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1015)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.maven.MavenModuleSetBuild$PomParser.invoke&entity=method>
>       at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2665) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.FilePath$FileCallableWrapper.call&entity=method>
>       at hudson.remoting.UserRequest.perform(UserRequest.java:121) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.UserRequest.perform&entity=method>
>       at hudson.remoting.UserRequest.perform(UserRequest.java:49) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.UserRequest.perform&entity=method>
>       at hudson.remoting.Request$2.run(Request.java:324) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.Request$2.run&entity=method>
>       at 
> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.InterceptingExecutorService$1.call&entity=method>
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
> <http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.FutureTask.run&entity=method>
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.ThreadPoolExecutor.runWorker&entity=method>
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  
> <http://stacktrace.jenkins-ci.org/search/?query=java.util.concurrent.ThreadPoolExecutor$Worker.run&entity=method>
>       at hudson.remoting.Engine$1$1.run(Engine.java:63) 
> <http://stacktrace.jenkins-ci.org/search/?query=hudson.remoting.Engine$1$1.run&entity=method>
>       at java.lang.Thread.run(Thread.java:744) 
> <http://stacktrace.jenkins-ci.org/search/?query=java.lang.Thread.run&entity=method>
>       at ......remote call to 
> dynamic-slave-3e948e7b-6beb-4a98-ae01-5fa8a9f7b2a2(Native Method)
>       at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1356)
>       at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
>       at hudson.remoting.Channel.call(Channel.java:752)
>       ... 9 more
> app100 : trunk : [email protected] : original >>  notified as FAILUREBuild 
> failed app100-trunk-default #5Storing artifact permanently with the tag name  
> No artifacts were found to persistFinished: FAILURE
>
>
>
>
> Any help would be much appreciated...!!
>
> On Tue, Nov 4, 2014 at 7:45 PM, Mahesh Chinthaka <[email protected]> wrote:
>
>> Hi all,
>>
>> As per the offline discussions with team, I'm moving undeploy
>> functionality from appfactory.core to appfactory.deployers
>>
>> In fact I'm moving the functionality in
>> *undeployAllArtifactsOfAppFromDepSyncGitRepo* method in
>> *org.wso2.carbon.appfactory.core.deploy.ApplicationDeployer* class to
>> *unDeployArtifact* method in
>> *org.wso2.carbon.appfactory.deployers.AbstractDeployer* class
>>
>> Thanks
>>
>> On Tue, Nov 4, 2014 at 1:07 PM, Harsha Thirimanna <[email protected]>
>> wrote:
>>
>>> Hi Samitha,
>>>
>>> As we discussed, it is better to move AppfactoryRepositoryClient interface
>>> from Repository component to core component and it should be an interface
>>> instead of abstract class. Then Repository component can register its
>>> implementation to the AppfactoryRepositoryClient when the Repository
>>> component activate.
>>>
>>>
>>> *Harsha Thirimanna*
>>> Senior Software Engineer; WSO2, Inc.; http://wso2.com
>>> * <http://www.apache.org/>*
>>> *email: **[email protected]* <[email protected]>* cell: +94 71 5186770  ,
>>> +94 *
>>> *774617784twitter: **http://twitter.com/
>>> <http://twitter.com/afkham_azeez>*
>>> *harshathirimannlinked-in: **http:
>>> <http://lk.linkedin.com/in/afkhamazeez>**//www.linkedin.com/pub/harsha-thirimanna/10/ab8/122
>>> <http://www.linkedin.com/pub/harsha-thirimanna/10/ab8/122>*
>>>
>>> *Lean . Enterprise . Middleware*
>>>
>>>
>>> On Wed, Oct 29, 2014 at 10:48 PM, Samith Dassanayake <[email protected]>
>>> wrote:
>>>
>>>> Hi Mahesh,
>>>> As you have suggested before, can't we remove undeploy functionalities
>>>> from appfactory.core and move them to appfactory.deployers such that 
>>>> deployment
>>>> and undeployment related operations will handle from the same bundle. Then
>>>> we can remove the AppfactoryRepositoryClient from the appfactory.core.
>>>>
>>>> Thanks,
>>>> Samith
>>>>
>>>> On Wed, Oct 29, 2014 at 10:35 PM, Mahesh Chinthaka <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Dimuthu,
>>>>>
>>>>> I worked on above suggested method and got succeeded.
>>>>> So *org.wso2.carbon.appfactory.repository.mgt.client.*
>>>>> *AppfacotryRepositoryClient* is used inside appfactory.deployers as
>>>>> well.
>>>>> We got rid of one AppfactoryRepositoryClient out of two. :)
>>>>>
>>>>> *AppfactoryRepositoryClient* in *appfactory.core* is left. Waiting
>>>>> for a thought on this.
>>>>>
>>>>> thanks
>>>>>
>>>>> On Wed, Oct 22, 2014 at 11:35 AM, Mahesh Chinthaka <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi Dimuthu,
>>>>>>
>>>>>> I will try that way out and let you know.
>>>>>> Thanks.
>>>>>>
>>>>>> On Wed, Oct 22, 2014 at 11:08 AM, Dimuthu Leelarathne <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Mahesh,
>>>>>>>
>>>>>>> As per our offline discussion we can use org.wso2.carbon.appfactory.
>>>>>>> repository.mgt.client.AppfacotryRepositoryClient inside deployers
>>>>>>> as well. So we'll have one AppFactoryRepositoryClient everywhere. If we
>>>>>>> copy the RepositoryMgt into the AppServer it should function without an
>>>>>>> issue because the Carbon env is visible to the Jenkins webapp.
>>>>>>>
>>>>>>> thanks,
>>>>>>> dimuthu
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Oct 21, 2014 at 6:57 PM, Mahesh Chinthaka <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>> ok then , i will proceed with refactoring. Thanks.
>>>>>>>>
>>>>>>>> On Tue, Oct 21, 2014 at 6:36 PM, Janaka Ranabahu <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> On Tue, Oct 21, 2014 at 6:19 PM, Mahesh Chinthaka <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi ,
>>>>>>>>>> No i meant a webservice, i understand it's not a good idea.
>>>>>>>>>> Anyway there are some more findings so far,
>>>>>>>>>>
>>>>>>>>>> *Regarding appfactory.core.deploy.AppfactoryRepositoryClient*
>>>>>>>>>>
>>>>>>>>>> *appfactory.core.deploy.AppfactoryRepositoryClient* is used only
>>>>>>>>>> twice for whole code. That is in *deleteFromDepSyncGitRepo*
>>>>>>>>>> method and *undeployAllArtifactsOfAppFromDepSyncGitRepo *method
>>>>>>>>>> in *ApplicationDeployer* class within the same package. And
>>>>>>>>>> above two methods are private.
>>>>>>>>>>
>>>>>>>>>> Though all other repository deployment functions happen in
>>>>>>>>>> *appfactory.deployers *(which jar goes to jenkins) ,
>>>>>>>>>> undeployment happens in *appfactory.core* section (correct me if
>>>>>>>>>> im wrong).
>>>>>>>>>>
>>>>>>>>>> Therefore if we move undeploy functionality to
>>>>>>>>>> *appfactory.deployers *section , we can get rid of
>>>>>>>>>> *appfactory.core.deploy.AppfactoryRepositoryClient. *
>>>>>>>>>>
>>>>>>>>>> +1. Please proceed with the re-factoring. We need to handle
>>>>>>>>> deployment and undeployment related operations from the same place.
>>>>>>>>>
>>>>>>>>>> *Regarding
>>>>>>>>>> appfactory.deployers.clients.AppfactoryRepositoryClient*
>>>>>>>>>>
>>>>>>>>>> Unfortunately we will have to do the same implementation as in 
>>>>>>>>>> *appfactory.repository.mgt
>>>>>>>>>> *here , since this goes to jenkins and we need to keep minimum
>>>>>>>>>> dependancies. Because of the minimum dependencies scenario we cannot 
>>>>>>>>>> use
>>>>>>>>>> *JGitAgent* available in *appfacotry.repository.mgt . *Therefore
>>>>>>>>>> we have to re-implement it here in *appfactory.deployers.clients*
>>>>>>>>>> though it's a replication.
>>>>>>>>>>
>>>>>>>>>> Let's check whether we could move them to a common component,
>>>>>>>>> maybe something like appfactory.common component.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Janaka
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Advise please....
>>>>>>>>>>
>>>>>>>>>> On Tue, Oct 21, 2014 at 3:36 PM, Danushka Fernando <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> What do you meant by a service ? An OSGI service? +1 Go ahead
>>>>>>>>>>> with the solution #2.
>>>>>>>>>>>
>>>>>>>>>>> Thanks & Regards
>>>>>>>>>>> Danushka Fernando
>>>>>>>>>>> Software Engineer
>>>>>>>>>>> WSO2 inc. http://wso2.com/
>>>>>>>>>>> Mobile : +94716332729
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Oct 21, 2014 at 3:29 PM, Mahesh Chinthaka <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi all,
>>>>>>>>>>>> Im working on [1]
>>>>>>>>>>>>
>>>>>>>>>>>> In here we have to consider 3 classes
>>>>>>>>>>>>
>>>>>>>>>>>>    1. org.wso2.carbon.appfactory.repository.mgt.client
>>>>>>>>>>>>    .AppfacotryRepositoryClient
>>>>>>>>>>>>    2. org.wso2.carbon.appfactory.core.deploy
>>>>>>>>>>>>    .AppfacotryRepositoryClient
>>>>>>>>>>>>    3. org.wso2.carbon.appfactory.deployers.clients
>>>>>>>>>>>>    .AppfacotryRepositoryClient
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> *org.wso2.carbon.appfactory.repository.mgt.client.AppfacotryRepositoryClient*
>>>>>>>>>>>> has already integrated with JGit plugin via *JGitAgent* class.
>>>>>>>>>>>>
>>>>>>>>>>>> Still
>>>>>>>>>>>> *org.wso2.carbon.appfactory.core.deploy.AppfacotryRepositoryClient*
>>>>>>>>>>>> and
>>>>>>>>>>>> *org.wso2.carbon.appfactory.deployers.clients.AppfacotryRepositoryClient*
>>>>>>>>>>>> use *GitSCMClient*. Now we need to remove SCM plugin and
>>>>>>>>>>>> integrate JGit plugin to these two classes as well.
>>>>>>>>>>>> I see following approaches,
>>>>>>>>>>>>
>>>>>>>>>>>> 1. Implement same functionality which is in
>>>>>>>>>>>> *org.wso2.carbon.appfactory.repository.mgt.client.AppfacotryRepositoryClient*
>>>>>>>>>>>> for above both places. But this will cause code redundancy, I 
>>>>>>>>>>>> guess.
>>>>>>>>>>>> 2. Make
>>>>>>>>>>>> *org.wso2.carbon.appfactory.repository.mgt.client.AppfacotryRepositoryClient*
>>>>>>>>>>>> as a  service  and make it available to use in other two places.
>>>>>>>>>>>>
>>>>>>>>>>>> Please advise me in way forward. Suggest me a better approach
>>>>>>>>>>>> please.
>>>>>>>>>>>> Thanks
>>>>>>>>>>>>
>>>>>>>>>>>> [1] - https://wso2.org/jira/browse/APPFAC-2328
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>>>>>>>>>>>> WSO2, Inc | lean. enterprise. middleware.
>>>>>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka
>>>>>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>>>>>>>>>>>> Email: [email protected] | Web: www.wso2.com
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>>>>>>>>>> WSO2, Inc | lean. enterprise. middleware.
>>>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka
>>>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>>>>>>>>>> Email: [email protected] | Web: www.wso2.com
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Janaka Ranabahu*
>>>>>>>>> Senior Software Engineer; WSO2 Inc.; http://wso2.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *E-mail: [email protected] <http://wso2.com>**M: **+94 718370861
>>>>>>>>> <%2B94%20718370861>*
>>>>>>>>>
>>>>>>>>> Lean . Enterprise . Middleware
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>>>>>>>> WSO2, Inc | lean. enterprise. middleware.
>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka
>>>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>>>>>>>> Email: [email protected] | Web: www.wso2.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dimuthu Leelarathne
>>>>>>> Architect & Product Lead of App Factory
>>>>>>>
>>>>>>> WSO2, Inc. (http://wso2.com)
>>>>>>> email: [email protected]
>>>>>>> Mobile : 0773661935
>>>>>>>
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>>>>>> WSO2, Inc | lean. enterprise. middleware.
>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka
>>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>>>>>> Email: [email protected] | Web: www.wso2.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>>>>> WSO2, Inc | lean. enterprise. middleware.
>>>>> #20, Palm Grove, Colombo 03, Sri Lanka
>>>>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>>>>> Email: [email protected] | Web: www.wso2.com
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards
>>>>
>>>> Samith Dassanayake
>>>> Software Engineer, WSO2 Inc.
>>>>
>>>>
>>>> _______________________________________________
>>>> Dev mailing list
>>>> [email protected]
>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>
>>>>
>>>
>>
>>
>> --
>> *Mahesh Chinthaka Vidanagama* | Software Engineer
>> WSO2, Inc | lean. enterprise. middleware.
>> #20, Palm Grove, Colombo 03, Sri Lanka
>> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
>> Email: [email protected] | Web: www.wso2.com
>>
>
>
>
> --
> *Mahesh Chinthaka Vidanagama* | Software Engineer
> WSO2, Inc | lean. enterprise. middleware.
> #20, Palm Grove, Colombo 03, Sri Lanka
> Mobile: +94 71 63 63 083 | Work: +94 112 145 345
> Email: [email protected] | Web: www.wso2.com
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to