Hi,

On Sun, Jun 7, 2015 at 6:03 PM, Athanasios Tsitsipas <
athanasios.tsitsi...@uni-ulm.de> wrote:

> Hi Gayan,
>
>
>
> Excuse me for the massive mails.
>
> I fixed the problem with the unknown 7811 port. In thrift-client-config.xml
> of lb module it was defind as port the 7711 and maybe the https somehow it
> is configured at the next port 7811. If I define as port the 7611 and
> secure port 7711, everything works! I don’t get any error.
>
Great! It is a pleasure to hear that.Yeah usually thrift port is 7611 and
SSL thrift port will be 7711.


> Still, the
>     
> -Dthrift.client.config.file.path="$CARBON_HOME/repository/conf/thrift-client-config.xml"
> \
>
> Is not filled in the stratos.sh. Even if you changed it in the template.
> It seems that it uses the arguments from the stratos.bat or something
> else???
>
> Also, in the init.pp the push templates doesn’t push the stratos.sh.erb :/
>

Thanks for reporting this.IMO we need to push the Stratos.sh with puppet as
we done for other modules.

>
>
> Thank you for your time.
>
>
>
> *From:* Athanasios Tsitsipas [mailto:athanasios.tsitsi...@uni-ulm.de]
> *Sent:* Sunday, June 7, 2015 11:07 AM
>
> *To:* dev@stratos.apache.org
> *Subject:* RE: How to use the Load Balancer with openstack
>
>
>
> At the thrift-client-config.xml there is a configuration for the client.
> Which ip and port should I include. By default in the zip file it has:
>
>
>
> <!-- Apache thrift client configuration for publishing statistics to WSO2
> CEP -->
>
> <thriftClientConfiguration>
>
>     <username>admin</username>
>
>     <password>admin</password>
>
>     <ip>localhost</ip>
>
>     <port>7711</port>
>
> </thriftClientConfiguration>
>
>
>
> At the nginx extention parameters it has also these arguments in the
> nginx-extension.sh
>
>             -Dthrift.receiver.ip= <>
>
>             -Dthrift.receiver.port=7711
>
>
>
> What should I do? And where I can specify these ports for thrift.
>
>
>
> Also the template stratos.sh.erb is not used it seems that it takes the
> parameters from the stratos.bat. Can you check the file at the end, there
> are some syntax errors probably.
>
>
>
> Regards,
>
> Thanos
>
>
>
>
>
>
>
> *From:* Gayan Gunarathne [mailto:gay...@wso2.com <gay...@wso2.com>]
> *Sent:* Sunday, June 7, 2015 7:21 AM
> *To:* dev@stratos.apache.org
> *Subject:* Re: How to use the Load Balancer with openstack
>
>
>
> Hi,
>
>
>
> On Sun, Jun 7, 2015 at 4:45 AM, Athanasios Tsitsipas <
> athanasios.tsitsi...@uni-ulm.de> wrote:
>
> I had success with the nginx eventually.
>
>
>
> Glad to hear that you have success with the nginx.
>
>
>
> But now with the puppet module of stratos load balancer. I think there is
> a problem:
>
>
>
> In the stratos.sh on the spawned vm of load balancer under the folder
> /mnt/ …. , where the zip file of lb is unzip it misses the
>
>
>
>     
> -Dthrift.client.config.file.path="$CARBON_HOME/repository/conf/thrift-client-config.xml"
> \
>
>
>
> A line that I get an error for! In the zip file at puppet master this line
> exists, but not in the spawned vm. Can we get a workaround for this?
>
> We need to add that property to the stratos.sh.erb of load balancer puppet
> module. Now I have added that system property to the
> https://github.com/apache/stratos/blob/master/tools/puppet3/modules/lb/templates/bin/stratos.sh.erb.[1]
>
>
>
>  [1]
> https://git1-us-west.apache.org/repos/asf?p=stratos.git;a=blob;f=tools/puppet3/modules/lb/templates/bin/stratos.sh.erb;hb=2b7a104c
>
>
>
> Regards,
>
> Thanos
>
>
>
>
>
> P.s the error I get is the following
>
> TID: [0] [LB] [2015-06-07 18:43:25,352] FATAL
> {org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent} -
> Failed to activate load balancer service component
>
> java.lang.RuntimeException: Thrift client configuration file path system
> property is not set: thrift.client.config.file.path
>
>         at
> org.apache.stratos.common.statistics.publisher.wso2.cep.ThriftClientConfig.getInstance(ThriftClientConfig.java:48)
>
>         at
> org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPStatisticsPublisher.<init>(WSO2CEPStatisticsPublisher.java:56)
>
>         at
> org.apache.stratos.common.statistics.publisher.wso2.cep.WSO2CEPInFlightRequestPublisher.<init>(WSO2CEPInFlightRequestPublisher.java:42)
>
>         at
> org.apache.stratos.common.statistics.publisher.InFlightRequestPublisherFactory.createInFlightRequestPublisher(InFlightRequestPublisherFactory.java:31)
>
>         at
> org.apache.stratos.load.balancer.common.statistics.notifier.LoadBalancerStatisticsNotifier.<init>(LoadBalancerStatisticsNotifier.java:49)
>
>         at
> org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent.startStatisticsNotifier(LoadBalancerServiceComponent.java:235)
>
>         at
> org.apache.stratos.load.balancer.internal.LoadBalancerServiceComponent.activate(LoadBalancerServiceComponent.java:153)
>
>         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.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
>
>         at
> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>
>         at
> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
>
>         at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>
>         at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
>
>         at
> org.wso2.carbon.mediation.initializer.ServiceBusInitializer.activate(ServiceBusInitializer.java:245)
>
>         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.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
>
>         at
> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>
>         at
> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
>
>         at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>
>         at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
>
>         at
> org.wso2.carbon.event.core.internal.builder.EventBrokerHandler.startEventBroker(EventBrokerHandler.java:58)
>
>         at
> org.wso2.carbon.event.core.internal.builder.EventBrokerBuilderDS.activate(EventBrokerBuilderDS.java:72)
>
>         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.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146)
>
>         at
> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:347)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620)
>
>         at
> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197)
>
>         at
> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343)
>
>         at
> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861)
>
>         at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>
>         at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130)
>
>         at
> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451)
>
>         at
> org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:517)
>
>         at
> org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:290)
>
>         at
> org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118)
>
>         at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847)
>
>         at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>
>         at
> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)
>
>
>
>
>
>
>
>
>
> *From:* Athanasios Tsitsipas [mailto:athanasios.tsitsi...@uni-ulm.de]
> *Sent:* Saturday, June 6, 2015 4:06 PM
> *To:* dev@stratos.apache.org
> *Subject:* RE: How to use the Load Balancer with openstack
>
>
>
> Hi I did that, right now. I installed the nginx to Ubuntu and provided the
> executable path(/usr/sbin/nginx).
>
> If only download the distribution of nginx somehow I need to compile the
> code right?There is no executable file in it. I downloaded the distribution
> from this link: http://nginx.org/en/download.html.
>
>
>
> I’m getting this error now:
>
>
>
> [2015-06-06 13:59:04,464]  INFO - [Nginx] Generating nginx configuration...
>
> [2015-06-06 13:59:04,576]  INFO - [Main] Configuration written to file:
> /tmp/nginx.cfg
>
> [2015-06-06 13:59:04,576]  INFO - [Nginx] Starting nginx instance...
>
> [2015-06-06 13:59:04,585] ERROR - [Nginx] Could not start nginx instance
>
> [2015-06-06 13:59:04,586] ERROR - [LoadBalancerExtension] Could not start
> load balancer
>
> org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException:
> java.lang.RuntimeException: Command execution failed:
>
> nginx: [emerg] unknown directive "tcp" in /tmp/nginx.cfg:5
>
>
>
>         at org.apache.stratos.nginx.extension.Nginx.start(Nginx.java:92)
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension.configureAndStart(LoadBalancerExtension.java:247)
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension.access$100(LoadBalancerExtension.java:46)
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension$1.onEvent(LoadBalancerExtension.java:184)
>
>         at
> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>
>         at java.util.Observable.notifyObservers(Observable.java:159)
>
>         at
> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>
>         at
> org.apache.stratos.messaging.message.processor.topology.CompleteTopologyMessageProcessor.process(CompleteTopologyMessageProcessor.java:68)
>
>         at
> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>
>         at
> org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator.run(TopologyEventMessageDelegator.java:73)
>
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
>         at java.lang.Thread.run(Thread.java:745)
>
> Caused by: java.lang.RuntimeException: Command execution failed:
>
> nginx: [emerg] unknown directive "tcp" in /tmp/nginx.cfg:5
>
>
>
>         at
> org.apache.stratos.common.util.CommandUtils.executeCommand(CommandUtils.java:62)
>
>         at org.apache.stratos.nginx.extension.Nginx.start(Nginx.java:88)
>
>         ... 12 more
>
> [2015-06-06 13:59:04,599]  INFO - [Nginx] Stopping nginx...
>
> [2015-06-06 13:59:04,605] ERROR - [Nginx] Could not stop nginx
>
>
>
>
>
> Can you please provide me with a link for the binary distribution of nginx
> ?
>
>
>
> *From:* Gayan Gunarathne [mailto:gay...@wso2.com <gay...@wso2.com>]
> *Sent:* Saturday, June 6, 2015 7:49 AM
> *To:* dev@stratos.apache.org
> *Subject:* Re: How to use the Load Balancer with openstack
>
>
>
> Hi,
>
>
>
> On Sat, Jun 6, 2015 at 5:08 AM, Athanasios Tsitsipas <
> athanasios.tsitsi...@uni-ulm.de> wrote:
>
> I tried to start nginx extention…
>
>
>
> It is get notified that an application exists but I get the following error
>
>
>
> [2015-06-05 23:34:03,654]  INFO - [TopologyProvider] Member added to
> cluster: [cluster] test.ghost.ghost.domain [member] 192.168.8.42
>
> [2015-06-05 23:34:04,211]  INFO - [Nginx] Generating nginx configuration...
>
> [2015-06-05 23:34:04,218]  INFO - [Main] Configuration written to file:
> /tmp/nginx.cfg
>
> [2015-06-05 23:34:04,218]  INFO - [Nginx] Starting nginx instance...
>
> [2015-06-05 23:34:04,219] ERROR - [Nginx] Could not start nginx instance
>
> [2015-06-05 23:34:04,219] ERROR - [LoadBalancerExtension] Could not start
> load balancer
>
> org.apache.stratos.load.balancer.extension.api.exception.LoadBalancerExtensionException:
> java.io.IOException: Cannot run program "nginx": error=2, No such file or
> directory
>
>         at org.apache.stratos.nginx.extension.Nginx.start(Nginx.java:92)
>
>
> Seems load balancer can't find the program nginx. Did you download and
> extract Nginx binary distribution and provide that nginx file
> path( -Dexecutable.file.path)  in nginx-extension.sh? [1]
>
>
> [1]
> https://github.com/apache/stratos/blob/master/extensions/load-balancer/nginx-extension/INSTALL.md
>
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension.configureAndStart(LoadBalancerExtension.java:247)
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension.access$100(LoadBalancerExtension.java:46)
>
>         at
> org.apache.stratos.load.balancer.extension.api.LoadBalancerExtension$1.onEvent(LoadBalancerExtension.java:184)
>
>         at
> org.apache.stratos.messaging.listener.EventListener.update(EventListener.java:42)
>
>         at java.util.Observable.notifyObservers(Observable.java:159)
>
>         at
> org.apache.stratos.messaging.event.EventObservable.notifyEventListeners(EventObservable.java:51)
>
>         at
> org.apache.stratos.messaging.message.processor.topology.CompleteTopologyMessageProcessor.process(CompleteTopologyMessageProcessor.java:68)
>
>         at
> org.apache.stratos.messaging.message.processor.MessageProcessorChain.process(MessageProcessorChain.java:61)
>
>         at
> org.apache.stratos.messaging.message.receiver.topology.TopologyEventMessageDelegator.run(TopologyEventMessageDelegator.java:73)
>
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
>         at java.lang.Thread.run(Thread.java:745)
>
> Caused by: java.io.IOException: Cannot run program "nginx": error=2, No
> such file or directory
>
>         at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
>
>         at java.lang.Runtime.exec(Runtime.java:617)
>
>         at java.lang.Runtime.exec(Runtime.java:450)
>
>         at java.lang.Runtime.exec(Runtime.java:347)
>
>         at
> org.apache.stratos.common.util.CommandUtils.executeCommand(CommandUtils.java:43)
>
>         at org.apache.stratos.nginx.extension.Nginx.start(Nginx.java:88)
>
>         ... 12 more
>
> Caused by: java.io.IOException: error=2, No such file or directory
>
>         at java.lang.UNIXProcess.forkAndExec(Native Method)
>
>         at java.lang.UNIXProcess.<init>(UNIXProcess.java:186)
>
>         at java.lang.ProcessImpl.start(ProcessImpl.java:130)
>
>         at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
>
>         ... 17 more
>
> [2015-06-05 23:34:04,228]  INFO - [Nginx] Stopping nginx...
>
> [2015-06-05 23:34:04,229] ERROR - [Nginx] Could not stop nginx
>
>
>
> I added the information for the activemq to jndi.properties file. Also I
> changed the script file accordingly and the thrift xml.
>
>
>
> *From:* Imesh Gunaratne [mailto:im...@apache.org]
> *Sent:* Friday, June 5, 2015 9:05 PM
> *To:* dev
> *Subject:* Re: How to use the Load Balancer with openstack
>
>
>
> Hi Athanasios,
>
>
>
> It's nice to hear that you are using the latest codebase, it has three
> load balancing options:
>
>
>
> 1. Stratos Load Balancer
>
> 2. Nginx (via extension)
>
> 3. HAproxy (via extension)
>
>
>
> First you could try to run either of these against your Stratos deployment
> and see whether they are working as expected (before trying the puppet
> module). Load balancer only requires ActiveMQ and CEP information (IP,
> port) to run.
>
>
>
> Do a complete build and find 1 in the following folder:
>
>
> https://github.com/apache/stratos/tree/master/products/load-balancer/modules/distribution
>
>
>
> Update loadbalancer.conf and thrift-client-config.xml with the above
> values and start the product.
>
>
>
> Thanks
>
>
>
> On Wed, Jun 3, 2015 at 7:23 PM, Athanasios Tsitsipas <
> athanasios.tsitsi...@uni-ulm.de> wrote:
>
> Hi there,
>
>
>
> We are trying to install Stratos 4.1.0 and ok we got over some bugs in the
> files. More or less we can create many cartridges and use them with
> applications. But we need a load balancer now connected with a ghost
> application integrated with nodejs. What is the lb module in the puppet
> master modules and what is the haproxy. How we will subscribe the
> application we need to the load balancer and access the load balancer and
> redirect us to the  multiple instances of the application above. Is there
> any guide we can use?
>
>
>
> Many thanks in advance
>
>
>
> Athanasios Tsitsipas
>
>
>
>
>
> --
>
> Imesh Gunaratne
>
>
>
> Senior Technical Lead, WSO2
>
> Committer & PMC Member, Apache Stratos
>
>
>
>
>
> --
>
>
>
> Gayan Gunarathne
> Technical Lead, WSO2 Inc. (http://wso2.com)
>
> Committer & PMC Member, Apache Stratos
>
> email : gay...@wso2.com  | mobile : +94 766819985
>
>
>
>
>
>
>
>
>
> --
>
>
>
> Gayan Gunarathne
> Technical Lead, WSO2 Inc. (http://wso2.com)
>
> Committer & PMC Member, Apache Stratos
>
> email : gay...@wso2.com  | mobile : +94 766819985
>
>
>
>
>



-- 

Gayan Gunarathne
Technical Lead, WSO2 Inc. (http://wso2.com)
Committer & PMC Member, Apache Stratos
email : gay...@wso2.com  | mobile : +94 766819985

Reply via email to