Hi All,
You can add below system properties to client side and it will solve the
problem:
Since we have self signed server certificate please point wso2carbn.jks
file to TS.
System.setProperty("javax.net.ssl.keyStore",
prop.getProperty("trust_store_path"));
System.setProperty("javax.net.ssl.keyStorePassword",
prop.getProperty("trust_store_password"));
System.setProperty("javax.net.ssl.trustStore",
prop.getProperty("trust_store_path"));
System.setProperty("javax.net.ssl.trustStorePassword",
prop.getProperty("trust_store_password")
On Thu, Aug 20, 2015 at 9:12 AM, Danushka Fernando <[email protected]>
wrote:
> Yup that's the idea. Because with aws lb we can't do mutual ssl.
>
> Thanks & Regards
> Danushka Fernando
> Senior Software Engineer
> WSO2 inc. http://wso2.com/
> Mobile : +94716332729
>
>
> On Aug 20, 2015 8:54 AM, "Dimuthu Leelarathne" <[email protected]> wrote:
>
>>
>> Hi,
>>
>> On Wed, Aug 19, 2015 at 5:36 PM, Anuruddha Premalal <[email protected]>
>> wrote:
>>
>>> Hi All,
>>>
>>> I raised the issue in jenkins dev mailing list and still waiting for a
>>> response. Standalone jenkins use jetty servelet container [1]. However it's
>>> still using winstone[2] for java command line argument parsing which I
>>> couldn't find a way to configure SSL clientAuthentication.
>>>
>>> One workaround is to call stratos services using the stratos admin. The
>>> other option is to use a signedJWT token athenticator.
>>>
>>> Using stratos admin for application(stratos) creation might incur
>>> metering or appfactory wall related concerns in-future.
>>> IMO if the MutualAuth doesn't work with current jenkins deployment it's
>>> better to go for SignedJWT Authenticator.
>>>
>>
>> +1 for SignedJWTAuthenticator and invoking the service as the tenant
>> admin (and this means -1 doing it as super tenant admin).
>>
>> On the side(not related to this conversation) Is SignedJWTAuthenticator
>> operating without Mutual SSL now?
>>
>> thanks,
>> dimuthu
>>
>>
>>>
>>> Appreciate your feedback on this regard.
>>>
>>> [1]
>>> https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins
>>> [2] http://winstone.sourceforge.net/#configFile
>>>
>>> On Wed, Aug 19, 2015 at 12:20 PM, Anuruddha Premalal <[email protected]
>>> > wrote:
>>>
>>>> Hi All,
>>>>
>>>> I've completed the following flow for single tenant cartridge.
>>>>
>>>> * Creating S2 git repo for app creation.
>>>> * Creating and deploying the app in stratos and bringing up the
>>>> cartridge.
>>>> * Preparing the tomcat cartridge.
>>>> * Creating s2 repo for app versioning
>>>> * Cleaning application resources(stratos & s2 repos) on deletion.
>>>>
>>>> There's an issue in talking to stratos on application versioning.
>>>>
>>>> On versioning stratos rest calls(to create app) goes through jenkins,
>>>> we are using MutualSSL for communication between stratos and deployers
>>>> bundle. For this to work stratos
>>>> expect "javax.servlet.request.X509Certificate" attribute to be set with the
>>>> certificate object, this attribute is not getting set when the call goes
>>>> through jenkins. Because of this stratos is unable to authenticate the
>>>> application creation request.
>>>>
>>>> Also there's an error log[1] in jenkins before sending the rest call.
>>>> This might be the reason for the failure of setting certificate object. FYI
>>>> client truststore and the keystores are identical in jenkins and stratos
>>>> side.
>>>>
>>>> has anyone encountered a similar issue before?
>>>>
>>>> [1] org.apache.commons.httpclient.HttpMethodDirector
>>>> processAuthenticationResponse
>>>> SEVERE: Invalid challenge: Basic
>>>> org.apache.commons.httpclient.auth.MalformedChallengeException: Invalid
>>>> challenge: Basic
>>>> at
>>>> org.apache.commons.httpclient.auth.AuthChallengeParser.extractParams(AuthChallengeParser.java:98)
>>>> at
>>>> org.apache.commons.httpclient.auth.RFC2617Scheme.processChallenge(RFC2617Scheme.java:94)
>>>> at
>>>> org.apache.commons.httpclient.auth.BasicScheme.processChallenge(BasicScheme.java:112)
>>>> at
>>>> org.apache.commons.httpclient.auth.AuthChallengeProcessor.processChallenge(AuthChallengeProcessor.java:162)
>>>> at
>>>> org.apache.commons.httpclient.HttpMethodDirector.processWWWAuthChallenge(HttpMethodDirector.java:694)
>>>> at
>>>> org.apache.commons.httpclient.HttpMethodDirector.processAuthenticationResponse(HttpMethodDirector.java:668)
>>>> at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:193)
>>>> at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>>>> at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>>>> at
>>>> org.wso2.carbon.appfactory.s4.integration.StratosRestService.doPost(StratosRestService.java:301)
>>>> at
>>>> org.wso2.carbon.appfactory.s4.integration.StratosRestService.deployApplication(StratosRestService.java:134)
>>>> at
>>>> org.wso2.carbon.appfactory.deployers.StratosApplicationHandler.createAndDeployStratosApplication(StratosApplicationHandler.java:60)
>>>> at
>>>> org.wso2.carbon.appfactory.deployers.AbstractStratosDeployer.addToGitRepo(AbstractStratosDeployer.java:114)
>>>> at
>>>> org.wso2.carbon.appfactory.deployers.AbstractStratosDeployer.deploy(AbstractStratosDeployer.java:72)
>>>> at
>>>> org.wso2.carbon.appfactory.deployers.AbstractDeployer.deployLatestSuccessArtifact(AbstractDeployer.java:123)
>>>> at
>>>> org.wso2.carbon.appfactory.jenkins.deploy.JenkinsArtifactDeployer.deployLatestSuccessArtifact(JenkinsArtifactDeployer.java:84)
>>>> at
>>>> org.wso2.carbon.appfactory.jenkins.artifact.storage.AppfactoryArtifactStoragePlugin.doDynamic(AppfactoryArtifactStoragePlugin.java:92)
>>>> 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.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
>>>> at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
>>>> at
>>>> org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
>>>> at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:391)
>>>> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
>>>> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
>>>> at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
>>>> at
>>>> org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
>>>> at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
>>>> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
>>>> at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
>>>> at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
>>>> at
>>>> hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)
>>>> at
>>>> hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
>>>> at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
>>>> at
>>>> hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:140)
>>>> at
>>>> jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
>>>> at
>>>> hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
>>>> at
>>>> hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
>>>> at
>>>> hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
>>>> at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:168)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
>>>> at
>>>> org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
>>>> at
>>>> hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
>>>> at
>>>> org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
>>>> at
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
>>>> at
>>>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
>>>> at
>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
>>>> at
>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
>>>> at
>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
>>>> at
>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
>>>> at
>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
>>>> at
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
>>>> at
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
>>>> at org.eclipse.jetty.server.Server.handle(Server.java:370)
>>>> at
>>>> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
>>>> at
>>>> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)
>>>> at
>>>> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
>>>> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
>>>> at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
>>>> at
>>>> org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
>>>> at org.eclipse.jetty.io.nio.SslConnection.handle(SslConnection.java:196)
>>>> at
>>>> org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
>>>> at
>>>> org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
>>>> at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
>>>> 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:744)
>>>>
>>>> Aug 19, 2015 11:31:51 AM org.apache.commons.httpclient.HttpMethodBase
>>>> getResponseBody
>>>> WARNING: Going to buffer response body of large or unknown size. Using
>>>> getResponseBodyAsStream instead is recommended.
>>>> Aug 19, 2015 11:31:51 AM
>>>> org.wso2.carbon.appfactory.s4.integration.StratosRestService
>>>> deployApplication
>>>> SEVERE: Authorization failed when subsctibing to cartridge
>>>>
>>>>
>>>> Regards,
>>>> Anuruddha
>>>>
>>>> On Mon, Aug 3, 2015 at 4:00 PM, Anuruddha Premalal <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Raj,
>>>>>
>>>>> Yes adding -Dstratos.component.startup.synchronizer.enabled=true to
>>>>> stratos.sh fixed the issue. We missed updating stratos.sh file while doing
>>>>> the migration from 4.0.0 to 4.1.0
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Aug 3, 2015 at 1:44 PM, Rajkumar Rajaratnam <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Hi Anuruddha,
>>>>>>
>>>>>> I guess we have already fixed this issue sometimes back. I went
>>>>>> though the log again and found that you haven't enabled Component startup
>>>>>> synchronizer. If you enable it, it will ensure that CompleteTopologyEvent
>>>>>> will be published only after SM is activated (SM will be activated only
>>>>>> after AS).
>>>>>>
>>>>>> In your logs, have a look at line number 402 : "Component startup
>>>>>> synchronizer enabled: false"
>>>>>>
>>>>>> Please check whether your bin/stratos.sh have
>>>>>> "-Dstratos.component.startup.synchronizer.enabled=true". If not, add it.
>>>>>> Please let us know whether it resolves your issue.
>>>>>>
>>>>>> Thanks,
>>>>>> Raj.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Mon, Aug 3, 2015 at 12:59 PM, Anuruddha Premalal <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi Raj,
>>>>>>>
>>>>>>> Thanks for the support given in finding the issue.I couldn't find a
>>>>>>> public stratos jira for this so I've raised jira[1] to track this.
>>>>>>>
>>>>>>> [1] https://issues.apache.org/jira/browse/STRATOS-1487
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Aug 3, 2015 at 12:43 PM, Rajkumar Rajaratnam <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Monitors were not created because CompleteTopologyEvent was
>>>>>>>> published before AutoscalerComponent was activated. In the attached
>>>>>>>> logs,
>>>>>>>>
>>>>>>>> Line number 478 - CompleteTopologyEvent was received by AS
>>>>>>>> Line number 501 - AutoscalerComponent was activated
>>>>>>>>
>>>>>>>> When AS received CompleteTopologyEvent, it didn't load the
>>>>>>>> application context from registry. Hence it just logged "The
>>>>>>>> application is
>>>>>>>> not yet deployed for this [application] asdevelopment" (Line number
>>>>>>>> 482)
>>>>>>>> and ignored the CompleteTopologyEvent. And CompleteTopologyEvent is
>>>>>>>> published only once (until topology is initialized) - so there is no
>>>>>>>> way
>>>>>>>> that the monitors will be created.
>>>>>>>>
>>>>>>>> It needs to be fixed.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Raj.
>>>>>>>>
>>>>>>>> On Mon, Aug 3, 2015 at 12:06 PM, Anuruddha Premalal <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> HI Raj,
>>>>>>>>>
>>>>>>>>> i'm attaching the carbon log file herewith.
>>>>>>>>>
>>>>>>>>> On Mon, Aug 3, 2015 at 11:52 AM, Rajkumar Rajaratnam <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Anuruddha,
>>>>>>>>>>
>>>>>>>>>> Cluster monitor can be created in two situations.
>>>>>>>>>>
>>>>>>>>>> 1) when a cluster is created for the first time (application
>>>>>>>>>> deployment time)
>>>>>>>>>> 2) when stratos is restarted
>>>>>>>>>>
>>>>>>>>>> If cluster monitor creation failed, it would log enough
>>>>>>>>>> information about it (some error logs like "Monitor creation failed,
>>>>>>>>>> even
>>>>>>>>>> after retrying for 5 times") . You can trace back the logs and see
>>>>>>>>>> the
>>>>>>>>>> reason for it. I don't think scenario 1) is the reason for the above
>>>>>>>>>> behaviour, because the members will not be created if the cluster
>>>>>>>>>> monitor
>>>>>>>>>> creation failed. Scenario 2) can be one reason for this behaviour.
>>>>>>>>>> If it is
>>>>>>>>>> the reason, then you should be able to see some error logs regarding
>>>>>>>>>> cluster monitor creation failed. Have you restarted stratos?
>>>>>>>>>>
>>>>>>>>>> Further, "*A cluster monitor is not found in autoscaler context"
>>>>>>>>>> *error doesn't necessarily mean that cluster monitor creation
>>>>>>>>>> failed. It can be because cluster is undeployed and the monitor
>>>>>>>>>> is removed before getting this event from CEP.
>>>>>>>>>>
>>>>>>>>>> If you could attach the complete log, we will be able to point
>>>>>>>>>> out the issue.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Raj.
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 3, 2015 at 11:32 AM, Anuruddha Premalal <
>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>
>>>>>>>>>>> Also this setup use kubernetes as the IaaS
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Aug 3, 2015 at 11:31 AM, Anuruddha Premalal <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>>
>>>>>>>>>>>> I am working on $subject.
>>>>>>>>>>>>
>>>>>>>>>>>> In the current appfactory setup we have a single JVM Stratos
>>>>>>>>>>>> 4.1.0 deployment. I am trying to get the autoscaling working since
>>>>>>>>>>>> resetting the SM node each time of failure consumes time. Once a
>>>>>>>>>>>> member
>>>>>>>>>>>> fault event received to AS receives it but unable to continue with
>>>>>>>>>>>> the
>>>>>>>>>>>> following log. When will the cluster monitor get initiated? What
>>>>>>>>>>>> would are
>>>>>>>>>>>> the possibilities for failing the initialization of the cluster
>>>>>>>>>>>> monitor?
>>>>>>>>>>>>
>>>>>>>>>>>> *INFO
>>>>>>>>>>>> {org.apache.stratos.cep.extension.FaultHandlingWindowProcessor} -
>>>>>>>>>>>> Faulty
>>>>>>>>>>>> member detected [member-id]
>>>>>>>>>>>> asdevelopment.anuasdevelopment.anuasdevelopment.domain38d5a847-d16a-4891-bbc0-6582cd9b9988
>>>>>>>>>>>> with [last time-stamp] 1438580270973 [time-out] 60000 milliseconds*
>>>>>>>>>>>> *TID: [0] [SCC] [2015-08-03 11:26:38,956] INFO
>>>>>>>>>>>> {org.apache.stratos.cep.extension.FaultHandlingWindowProcessor} -
>>>>>>>>>>>> Publishing member fault event for [member-id]
>>>>>>>>>>>> asdevelopment.anuasdevelopment.anuasdevelopment.domain38d5a847-d16a-4891-bbc0-6582cd9b9988*
>>>>>>>>>>>> *TID: [0] [SCC] [2015-08-03 11:26:38,969] DEBUG
>>>>>>>>>>>> {org.apache.stratos.autoscaler.event.receiver.health.AutoscalerHealthStatEventReceiver}
>>>>>>>>>>>> - Member fault event received: [member]
>>>>>>>>>>>> asdevelopment.anuasdevelopment.anuasdevelopment.domain38d5a847-d16a-4891-bbc0-6582cd9b9988
>>>>>>>>>>>> *
>>>>>>>>>>>> *TID: [0] [SCC] [2015-08-03 11:26:38,969] DEBUG
>>>>>>>>>>>> {org.apache.stratos.autoscaler.event.receiver.health.AutoscalerHealthStatEventReceiver}
>>>>>>>>>>>> - A cluster monitor is not found in autoscaler context [cluster]
>>>>>>>>>>>> asdevelopment.anuasdevelopment.anuasdevelopment.domain*
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks & Regards,
>>>>>>>>>>>> --
>>>>>>>>>>>> *Anuruddha Premalal*
>>>>>>>>>>>> Software Eng. | WSO2 Inc.
>>>>>>>>>>>> Mobile : +94710461070
>>>>>>>>>>>> Web site : www.regilandvalley.com
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> *Anuruddha Premalal*
>>>>>>>>>>> Software Eng. | WSO2 Inc.
>>>>>>>>>>> Mobile : +94710461070
>>>>>>>>>>> Web site : www.regilandvalley.com
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Rajkumar Rajaratnam
>>>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>>> Software Engineer, WSO2
>>>>>>>>>>
>>>>>>>>>> Mobile : +94777568639
>>>>>>>>>> Blog : rajkumarr.com
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> *Anuruddha Premalal*
>>>>>>>>> Software Eng. | WSO2 Inc.
>>>>>>>>> Mobile : +94710461070
>>>>>>>>> Web site : www.regilandvalley.com
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Rajkumar Rajaratnam
>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>> Software Engineer, WSO2
>>>>>>>>
>>>>>>>> Mobile : +94777568639
>>>>>>>> Blog : rajkumarr.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Anuruddha Premalal*
>>>>>>> Software Eng. | WSO2 Inc.
>>>>>>> Mobile : +94710461070
>>>>>>> Web site : www.regilandvalley.com
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Rajkumar Rajaratnam
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>> Software Engineer, WSO2
>>>>>>
>>>>>> Mobile : +94777568639
>>>>>> Blog : rajkumarr.com
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Anuruddha Premalal*
>>>>> Software Eng. | WSO2 Inc.
>>>>> Mobile : +94710461070
>>>>> Web site : www.regilandvalley.com
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Anuruddha Premalal*
>>>> Software Eng. | WSO2 Inc.
>>>> Mobile : +94710461070
>>>> Web site : www.regilandvalley.com
>>>>
>>>>
>>>
>>>
>>> --
>>> *Anuruddha Premalal*
>>> Software Eng. | WSO2 Inc.
>>> Mobile : +94710461070
>>> Web site : www.regilandvalley.com
>>>
>>>
>>
>>
>> --
>> Dimuthu Leelarathne
>> Director & Product Lead of App Factory
>>
>> WSO2, Inc. (http://wso2.com)
>> email: [email protected]
>> Mobile : 0773661935
>>
>> Lean . Enterprise . Middleware
>>
>
--
Thanks and Regards,
Punnadi Gunarathna
Senior Software Engineer,
WSO2, Inc.; http://wso2.com <http://wso2>
Blog: http://hi-my-world.blogspot.com/
Tel : 94 11 214 5345
Fax :94 11 2145300
<http://lalajisureshika.blogspot.com/>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev