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 <[email protected]> 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 <[email protected]>
> 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 <[email protected]>
>> 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 <[email protected]>
>>> 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 <[email protected]>
>>>> 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" <[email protected]> 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 <[email protected]> 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" <[email protected]> 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 <[email protected]>
>>>> 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" <[email protected]> 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 <[email protected]>
>>>> 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 <[email protected]>
>>>> > wrote:
>>>> >>
>>>> >> Hey Pradeep - this is exciting stuff!  Looking forward to your
>>>> >> findings!
>>>> >>
>>>> >> On Wed, Mar 12, 2014 at 5:31 PM, Pradeep Fernando
>>>> >> <[email protected]>
>>>> >> 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: [email protected]; 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: [email protected]; 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: [email protected]; 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

Reply via email to