+1 for RabbitMQ. Seems like it's non-Java and hopefully lightweight.
On Mon, Mar 17, 2014 at 10:55 AM, chris snow <chsnow...@gmail.com> wrote: > Is RabbbitMQ the simplest to setup? i.e. just install the OS package > ("apt-get install rabbitmq-server") and then configure stratos to use > it? > > > On Mon, Mar 17, 2014 at 1:36 PM, Isuru Perera <isu...@wso2.com> wrote: > > I think running an ActiveMQ or a RabbitMQ along with Stratos single pack > > would be okay. > > > > Integrating MB features to Stratos will bring unnecessary complications. > > Having MB within CC was one of the limitations to upgrade jclouds > libraries > > when we were doing Stratos 3.0.0-incubating release. > > > > There is nothing much to configure in Message Broker. IMO we don't need > to > > integrate MB into Stratos for now. > > > > On Mon, Mar 17, 2014 at 6:35 PM, Pradeep Fernando <pradee...@gmail.com> > > wrote: > >> > >> So the remaining bit is MB. > >> > >> We need to integrate WSO2 MB or ActiveMQ. > >> > >> @Shaheed : will get back to you with answers. :) sorry im bit busy at > the > >> moment. > >> > >> thanks > >> > >> > >> On Mon, Mar 17, 2014 at 6:33 PM, Pradeep Fernando <pradee...@gmail.com> > >> wrote: > >>> > >>> Hi Guys, > >>> > >>> Now the server starts fine with as + cc + sm + cep > >>> > >>> I managed to workaround the classloading issue, by renaming stub > >>> packages. Right now im encountering a CNF due to jcloud class > >>> unavailability. Its a pretty straightforward fix. > >>> > >>> [2014-03-17 18:29:20,715] ERROR > >>> {org.wso2.carbon.utils.deployment.Axis2ServiceRegistry} - Error while > >>> adding services from bundle : > >>> org.apache.stratos.cloud.controller-4.0.0.SNAPSHOT > >>> java.lang.NoClassDefFoundError: > >>> org/jclouds/rest/ResourceNotFoundException > >>> > >>> at java.lang.Class.forName0(Native Method) > >>> at java.lang.Class.forName(Class.java:247) > >>> at > >>> > org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.<init>(DefaultSchemaGenerator.java:140) > >>> at > >>> org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:453) > >>> at > >>> > org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:397) > >>> at > >>> > org.apache.axis2.deployment.ServiceGroupBuilder.populateServiceGroup(ServiceGroupBuilder.java:101) > >>> at > >>> > org.wso2.carbon.utils.deployment.Axis2ServiceRegistry.addServices(Axis2ServiceRegistry.java:217) > >>> at > >>> > org.wso2.carbon.utils.deployment.Axis2ServiceRegistry.register(Axis2ServiceRegistry.java:102) > >>> at > >>> > org.wso2.carbon.utils.deployment.Axis2ServiceRegistry.register(Axis2ServiceRegistry.java:89) > >>> at > >>> > org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:473) > >>> at > >>> > org.wso2.carbon.core.init.CarbonServerManager.start(CarbonServerManager.java:219) > >>> at > >>> > org.wso2.carbon.core.internal.CarbonCoreServiceComponent.activate(CarbonCoreServiceComponent.java:77) > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > >>> at > >>> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > >>> at > >>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > >>> at java.lang.reflect.Method.invoke(Method.java:597) > >>> 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.equinox.http.servlet.internal.Activator.registerHttpService(Activator.java:81) > >>> at > >>> > org.eclipse.equinox.http.servlet.internal.Activator.addProxyServlet(Activator.java:60) > >>> at > >>> > org.eclipse.equinox.http.servlet.internal.ProxyServlet.init(ProxyServlet.java:40) > >>> at > >>> > org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.init(DelegationServlet.java:38) > >>> at > >>> > org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1267) > >>> at > >>> > org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1186) > >>> at > >>> > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1081) > >>> at > >>> > org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) > >>> at > >>> > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) > >>> at > >>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > >>> at > >>> > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) > >>> at > >>> > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) > >>> at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > >>> at java.util.concurrent.FutureTask.run(FutureTask.java:138) > >>> at > >>> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > >>> at > >>> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > >>> at java.lang.Thread.run(Thread.java:662) > >>> Caused by: java.lang.ClassNotFoundException: > >>> org.jclouds.rest.ResourceNotFoundException > >>> at > >>> > org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501) > >>> at > >>> > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421) > >>> at > >>> > org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412) > >>> at > >>> > org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) > >>> at java.lang.ClassLoader.loadClass(ClassLoader.java:247) > >>> ... 49 more > >>> [2014-03-17 18:29:20,726] INFO > >>> {org.wso2.carbon.core.deployment.DeploymentInterceptor} - Deploying > Axis2 > >>> service: InstanceCleanupNotificationService {super-tenant} > >>> [2014-03-17 18:29:21,465] INFO > >>> {org.wso2.carbon.core.init.CarbonServerManager} - Repository : > >>> > /home/pradeep/checkout/stratos-profile/products/stratos/modules/distribution/target/apache-stratos-4.0.0-SNAPSHOT/repository/deployment/server/ > >>> [2014-03-17 18:29:21,748] INFO > >>> {org.wso2.carbon.core.internal.permission.update.PermissionUpdater} - > >>> Permission cache updated for tenant -1234 > >>> [2014-03-17 18:29:21,904] INFO > >>> > {org.wso2.carbon.databridge.receiver.thrift.internal.ThriftDataReceiver} - > >>> Thrift Server started at 10.100.1.80 > >>> [2014-03-17 18:29:21,923] INFO > >>> > {org.wso2.carbon.databridge.receiver.thrift.internal.ThriftDataReceiver} - > >>> Thrift SSL port : 7711 > >>> [2014-03-17 18:29:21,925] INFO > >>> > {org.wso2.carbon.databridge.receiver.thrift.internal.ThriftDataReceiver} - > >>> Thrift port : 7611 > >>> [2014-03-17 18:29:21,958] INFO > >>> > {org.wso2.carbon.event.input.adaptor.wsevent.local.internal.ds.WSEventLocalEventAdaptorServiceDS} > >>> - Successfully deployed the input WSEventLocal adaptor service > >>> [2014-03-17 18:29:21,962] INFO > >>> > {org.wso2.carbon.event.output.adaptor.wsevent.local.internal.ds.WSEventLocalEventAdaptorServiceDS} > >>> - Successfully deployed the output WSEventLocal adaptor service > >>> [2014-03-17 18:29:21,976] INFO > >>> > {org.wso2.carbon.event.input.adaptor.email.internal.ds.EmailEventAdaptorServiceDS} > >>> - Successfully deployed the input email event service > >>> [2014-03-17 18:29:21,983] INFO > >>> > {org.wso2.carbon.event.input.adaptor.wsevent.internal.ds.WSEventAdaptorServiceDS} > >>> - Successfully deployed the input WSEvent adaptor service > >>> [2014-03-17 18:29:21,993] INFO > >>> > {org.wso2.carbon.event.output.adaptor.email.internal.ds.EmailEventAdaptorServiceDS} > >>> - Successfully deployed the output Email event adaptor service > >>> [2014-03-17 18:29:22,002] INFO > >>> > {org.wso2.carbon.event.output.adaptor.sms.internal.ds.SMSEventAdaptorServiceDS} > >>> - Successfully deployed the output SMS event adaptor service > >>> [2014-03-17 18:29:22,011] INFO > >>> > {org.wso2.carbon.event.output.adaptor.wsevent.internal.ds.WSEventAdaptorServiceDS} > >>> - Successfully deployed the output WSEvent adaptor service > >>> [2014-03-17 18:29:22,026] INFO > >>> > {org.wso2.stratos.identity.saml2.sso.mgt.SSOServiceProviderUpdateManager} - > >>> A SSO Service Provider is registered for : console > >>> [2014-03-17 18:29:22,060] ERROR > >>> {org.wso2.stratos.identity.saml2.sso.mgt.ui.Util} - The configuration > >>> element 'TenantRegistrationPage' not found in > >>> > '/home/pradeep/checkout/stratos-profile/products/stratos/modules/distribution/target/apache-stratos-4.0.0-SNAPSHOT/repository/conf/sso-idp-config.xml' > >>> [2014-03-17 18:29:22,133] INFO > >>> {org.wso2.carbon.core.transports.http.HttpsTransportListener} - HTTPS > port > >>> : 9443 > >>> [2014-03-17 18:29:22,133] INFO > >>> {org.wso2.carbon.core.transports.http.HttpTransportListener} - HTTP > port > >>> : 9763 > >>> [2014-03-17 18:29:22,138] INFO > >>> {org.apache.tomcat.util.net.NioSelectorPool} - Using a shared > selector for > >>> servlet write/read > >>> [2014-03-17 18:29:22,154] INFO > >>> {org.apache.tomcat.util.net.NioSelectorPool} - Using a shared > selector for > >>> servlet write/read > >>> [2014-03-17 18:29:22,193] INFO > >>> {org.wso2.carbon.ntask.core.service.impl.TaskServiceImpl} - Task > service > >>> starting in STANDALONE mode... > >>> [2014-03-17 18:29:22,202] INFO > >>> {org.apache.stratos.manager.utils.CartridgeConfigFileReader} - Setting > >>> config properties into System properties > >>> [2014-03-17 18:29:22,225] INFO > >>> {org.apache.stratos.manager.internal.ADCManagementServerComponent} - > >>> Topology receiver thread started > >>> [2014-03-17 18:29:22,226] INFO > >>> > {org.apache.stratos.manager.topology.receiver.StratosManagerTopologyReceiver} > >>> - Stratos Manager topology receiver thread started > >>> [2014-03-17 18:29:22,231] INFO > >>> {org.apache.stratos.manager.internal.ADCManagementServerComponent} - > ADC > >>> management server component is activated > >>> [2014-03-17 18:29:22,255] INFO > >>> {org.wso2.carbon.core.init.JMXServerManager} - JMX Service URL : > >>> service:jmx:rmi://localhost:11111/jndi/rmi://localhost:9999/jmxrmi > >>> [2014-03-17 18:29:22,275] INFO > >>> {org.wso2.carbon.ntask.core.impl.AbstractQuartzTaskManager} - Task > >>> scheduled: [-1234][TENANT_SYNC_TASK_TYPE][TENANT_SYNC_TASK] > >>> [2014-03-17 18:29:22,275] INFO > >>> {org.wso2.carbon.core.internal.StartupFinalizerServiceComponent} - > Server > >>> : Apache Stratos Controller-4.0.0-SNAPSHOT > >>> [2014-03-17 18:29:22,275] INFO > >>> {org.wso2.carbon.core.internal.StartupFinalizerServiceComponent} - > WSO2 > >>> Carbon started in 55 sec > >>> [2014-03-17 18:29:22,430] INFO > >>> {org.wso2.carbon.ui.internal.CarbonUIServiceComponent} - Mgt Console > URL : > >>> https://10.100.1.80:9443/carbon/ > >>> [2014-03-17 18:29:22,521] INFO > >>> {org.wso2.andes.client.security.DynamicSaslRegistrar} - Additional > SASL > >>> providers successfully registered. > >>> [2014-03-17 18:29:22,522] INFO > >>> {org.wso2.andes.client.security.CallbackHandlerRegistry} - Callback > >>> handlers available for SASL mechanisms: CRAM-MD5 CRAM-MD5-HASHED > AMQPLAIN > >>> PLAIN > >>> [2014-03-17 18:29:22,535] WARN {org.wso2.andes.common.QpidProperties} > - > >>> Unable to find resource qpidversion.properties from classloader > >>> > >>> > >>> On Mon, Mar 17, 2014 at 4:15 PM, Shaheed Haque <shahh...@cisco.com> > >>> wrote: > >>>> > >>>> Hi Pradeep, > >>>> > >>>> > >>>> > >>>> I *think* I am interested in this topic and am new to this domain, but > >>>> from the archives, I'm not 100% of the original goals of this work. > >>>> > >>>> > >>>> > >>>> Also, if the idea is to ship in 4.0.0, how can we take advantage of > your > >>>> work: do we still use the same CLIs to start the processes or what? I > see > >>>> some mention of profiles and pre-built VMs, but am unclear how they > relate > >>>> to this. > >>>> > >>>> > >>>> > >>>> Can you clarify please? Is there a JIRA/spec for this feature I can > >>>> read? > >>>> > >>>> > >>>> > >>>> Thanks, Shaheed > >>>> > >>>> > >>>> > >>>> On Monday 17 March 2014 06:17:01 Sanjiva Weerawarana wrote: > >>>> > >>>> Interesting ... it would be cool to combine these with something like > >>>> rPath to build a minimal Linux image with just the exact bits in it. > Looks > >>>> like rPath is gone - what's the way people build custom images now? > Or is > >>>> that gone with just more memory and more disk being normal?? > >>>> > >>>> > >>>> > >>>> On Sun, Mar 16, 2014 at 10:34 PM, chris snow <chsnow...@gmail.com> > >>>> wrote: > >>>> > >>>> Hi Sanjiva, > >>>> > >>>> Vagrant works on top of an existing image (box). There are plenty of > >>>> boxes for vagrant. Ubuntu for example provides vagrant boxes [1], > although > >>>> the disk size is a little small to be useful. Opscode also provide > some > >>>> pretty good boxes [2]. If these still don't meet your needs, you can > copy > >>>> the packer definitions from opscode and modify them to build your own > box > >>>> from scratch [3]. Packer is definitely worth a look too. > >>>> > >>>> Many thanks, > >>>> > >>>> Chris > >>>> > >>>> --- > >>>> [1] http://cloud-images.ubuntu.com/vagrant/ > >>>> [2] https://github.com/opscode/bento > >>>> [3] https://github.com/opscode/bento/tree/master/packer > >>>> [4] http://packer.io > >>>> > >>>> On 16 Mar 2014 15:27, "Sanjiva Weerawarana" <sanj...@wso2.com> wrote: > >>>> > >>>> Hey Chris - that's awesome .. totally +1 for having vagrant scripts as > >>>> well! > >>>> > >>>> > >>>> I'm not familiar with vagrant - just checking it out. Does it build a > VM > >>>> image or does it set up the environment to run the image? > >>>> > >>>> > >>>> Sanjiva. > >>>> > >>>> > >>>> > >>>> On Sat, Mar 15, 2014 at 1:06 PM, chris snow <chsnow...@gmail.com> > wrote: > >>>> > >>>> Hi Sanjiva, > >>>> > >>>> For VM images, vagrant makes life very easy for users; setting up > disks, > >>>> setting up network cards, setting up memory, configuring guest proxy > >>>> settings, running provisioning scripts, etc. > >>>> > >>>> I am working on a vagrant setup of cloudstack + Stratos. My project > is > >>>> here [1]. It isn't ready for general use yet, but I'm making good > progress. > >>>> Although my scripts are buggy, with a few commands I can checkout, > build and > >>>> provision a cloudstack developer environment. I am now working on the > >>>> scripts to do the same for Stratos. > >>>> > >>>> Initially, the memory requirements will be high on my environment, but > >>>> for me the first goal is automation, the next goal will be efficiency. > >>>> > >>>> Many thanks, > >>>> Chris > >>>> > >>>> --- > >>>> [1] https://github.com/snowch/devcloud-script > >>>> > >>>> On 15 Mar 2014 06:24, "Sanjiva Weerawarana" <sanj...@wso2.com> wrote: > >>>> > >>>> I think right now we need to focus on getting a single trivial server > >>>> mechanism to be able to run Stratos without too much of stuff having > to be > >>>> set up. I'd love to see two developer distros: > >>>> > >>>> > >>>> - a VM image that has everything in it and runs in under 4GB with > >>>> OpenStack + Docker. It doesn't matter whether this uses one Carbon > server to > >>>> run it all or whether we use RabbitMQ or other AMQP broker. (Carbon > stuff > >>>> HAS to run in one server - else its a bug in those products .. so the > >>>> decision should not be based on ability to run in one JVM but rather > just > >>>> making it dirt simple to use.) This distro needs to be in 4.0.0 - I > think > >>>> we're nearly there for it. > >>>> > >>>> > >>>> - next is a "no-IaaS-IaaS" based distro. That, we write a direct > plugin > >>>> to jClouds that spins up Docker images as processes and there's one > JVM that > >>>> works as the SM+CC+LB+AS+all. Thus the download becomes one JVM plus > a URL > >>>> to a Docker image registry from which the images are booted up and run > >>>> (obviously a local registry will do better). We don't have this > no-IaaS-IaaS > >>>> yet so this can come maybe as 4.1.0 or whatever (its not that hard to > make > >>>> it work). > >>>> > >>>> > >>>> For production deployments obviously this one server stuff is nonsense > >>>> .. so we need to have full decoupled distributed execution. For that > we > >>>> should ship puppet scripts to get them up and running plus maybe Boto > >>>> scripts for someone to get it all up on EC2 with one command. Again > its > >>>> totally fine to use whatever broker here and whatever other pluggable > >>>> components people want to use (and we need to make sure all the parts > are > >>>> pluggable: load balancers, message broker, the CEP engine, etc.)). > >>>> > >>>> > >>>> Makes sense? > >>>> > >>>> > >>>> Sanjiva. > >>>> > >>>> > >>>> > >>>> On Fri, Mar 14, 2014 at 7:59 PM, Pradeep Fernando < > pradee...@gmail.com> > >>>> wrote: > >>>> > >>>> Hi Chris, > >>>> > >>>> Yes good point. Other day Azeez did the same suggestion. > >>>> > >>>> Thanks > >>>> > >>>> --Pradeep > >>>> sent from my phone > >>>> > >>>> On Mar 14, 2014 3:47 PM, "chris snow" <chsnow...@gmail.com> wrote: > >>>> > >>>> Hi Pradeep - I don't know enough about how the profiles work to have a > >>>> view on that :( > >>>> > >>>> One thing I'm wondering though is how much memory will be saved if we > >>>> use RabbitMQ (or another MQ) instead of MB? > >>>> > >>>> On Fri, Mar 14, 2014 at 10:10 AM, Pradeep Fernando < > pradee...@gmail.com> > >>>> wrote: > >>>> > btw, > >>>> > > >>>> > Now im working on MB and CEP bits. > >>>> > > >>>> > IMHO, we should not create MB and CEP only profiles in stratos. > >>>> > However, > >>>> > adding MB/CEP features (the ones that we use) to default profile > (the > >>>> > profile that has all) makes sense. > >>>> > > >>>> > WDYT? > >>>> > > >>>> > Are we all on same page.. > >>>> > > >>>> > thanks > >>>> > > >>>> > > >>>> > On Fri, Mar 14, 2014 at 3:32 PM, chris snow <chsnow...@gmail.com> > >>>> > wrote: > >>>> >> > >>>> >> Hey Pradeep - this is exciting stuff! Looking forward to your > >>>> >> findings! > >>>> >> > >>>> >> On Wed, Mar 12, 2014 at 5:31 PM, Pradeep Fernando > >>>> >> <pradee...@gmail.com> > >>>> >> wrote: > >>>> >> > Hi Guys, > >>>> >> > > >>>> >> > I started on the $subject. This thread is to track the progress.. > >>>> >> > > >>>> >> > thanks, > >>>> >> > > >>>> >> > > >>>> >> > -- > >>>> >> > Pradeep Fernando. > >>>> >> > http://pradeepfernando.blogspot.com/ > >>>> >> > >>>> >> > >>>> >> > >>>> >> -- > >>>> >> Check out my professional profile and connect with me on LinkedIn. > >>>> >> http://lnkd.in/cw5k69 > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > -- > >>>> > Pradeep Fernando. > >>>> > http://pradeepfernando.blogspot.com/ > >>>> > >>>> > >>>> > >>>> -- > >>>> Check out my professional profile and connect with me on LinkedIn. > >>>> http://lnkd.in/cw5k69 > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Sanjiva Weerawarana, Ph.D. > >>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ > >>>> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 5345) > >>>> x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 265 8311 > >>>> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva > >>>> Lean . Enterprise . Middleware > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Sanjiva Weerawarana, Ph.D. > >>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ > >>>> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 5345) > >>>> x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 265 8311 > >>>> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva > >>>> Lean . Enterprise . Middleware > >>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> > >>>> Sanjiva Weerawarana, Ph.D. > >>>> Founder, Chairman & CEO; WSO2, Inc.; http://wso2.com/ > >>>> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 5345) > >>>> x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 265 8311 > >>>> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva > >>>> Lean . Enterprise . Middleware > >>>> > >>>> > >>>> > >>> > >>> > >>> > >>> -- > >>> Pradeep Fernando. > >>> http://pradeepfernando.blogspot.com/ > >> > >> > >> > >> > >> -- > >> Pradeep Fernando. > >> http://pradeepfernando.blogspot.com/ > > > > > > > > > > -- > > Isuru Perera > > Senior Software Engineer | WSO2, Inc. | http://wso2.com/ > > > > Lean . Enterprise . Middleware > > > > about.me/chrishantha > > > > -- > Check out my professional profile and connect with me on LinkedIn. > http://lnkd.in/cw5k69 > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/