This looks good, since this way we can support ESB versions since 480.
On Fri, Jan 29, 2016 at 11:14 AM, Keerthika Mahendralingam <
[email protected]> wrote:
> Hi Thulashika,
> I think you can use the following script to save the feilds in registry.
> It will work with 4.8.1, 4.9.0 and 4.10 as well.
>
> <script language="js"><![CDATA[
>
> var accessToken = mc.getProperty('accessToken');
>
> importPackage(Packages.org.apache.synapse.config);
>
> mc.getConfiguration().getRegistry().newResource("connectors/credentials/
> accessToken",false);
>
> mc.getConfiguration().getRegistry().updateResource("
> connectors/credentials/accessToken", accessToken);
>
> ]]>
>
> </script>
>
>
> @Malaka/Nadeesan, Do you have any suggestion on this?
>
>
>
> Thanks,
>
> On Wed, Jan 27, 2016 at 3:25 PM, Nadeeshaan Gunasinghe <
> [email protected]> wrote:
>
>> Hi Thulasika,
>>
>> This feature is not available in the WSO2 ESB 4.9.0. This is available
>> from in 4.10.
>>
>> Thanks
>>
>> *Nadeeshaan Gunasinghe*
>> Software Engineer, WSO2 Inc. http://wso2.com
>> +94770596754 | [email protected] | Skype: nadeeshaan.gunasinghe
>> <#2030771968_-851590053_>
>> <http://www.facebook.com/nadeeshaan.gunasinghe>
>> <http://lk.linkedin.com/in/nadeeshaan> <http://twitter.com/Nadeeshaan>
>> <http://nadeeshaan.blogspot.com/>
>> Get a signature like this: Click here!
>> <http://ws-promos.appspot.com/r?rdata=eyJydXJsIjogImh0dHA6Ly93d3cud2lzZXN0YW1wLmNvbS9lbWFpbC1pbnN0YWxsP3dzX25jaWQ9NjcyMjk0MDA4JnV0bV9zb3VyY2U9ZXh0ZW5zaW9uJnV0bV9tZWRpdW09ZW1haWwmdXRtX2NhbXBhaWduPXByb21vXzU3MzI1Njg1NDg3Njk3OTIiLCAiZSI6ICI1NzMyNTY4NTQ4NzY5NzkyIn0=>
>>
>> On Wed, Jan 27, 2016 at 2:05 PM, Thulasika Vijayanathan <
>> [email protected]> wrote:
>>
>>> Hi ,
>>>
>>> I am implementing common init method for ESB 4.9 and 4.10. For ESB 4.10
>>> I use the property mediator to store new persistent content(accessToken) in
>>> the registry as following:
>>> <property name="connectors/salesforce/accessToken"
>>> expression="get-property('uri.var.accessToken')" scope="registry"/>
>>>
>>> when I enabling the connector artifact in ESB 4.9.0 I'm getting the
>>> following error due to scope "registry".How to proceed further?
>>>
>>> ERROR - PropertyMediatorFactory Only 'axis2' or 'transport' or
>>> 'axis2-client' or 'default' or 'operation' values are allowed for attribute
>>> scope for a property mediator, Unsupported scope registry
>>> [2016-01-27 13:31:53,717] ERROR - MediationLibraryAdminService Unable to
>>> update status for : {org.wso2.carbon.connector}salesforcerest :: Template
>>> configuration : null cannot be builtfor Synapse Library artifact : newInit1
>>> org.apache.synapse.deployers.SynapseArtifactDeploymentException:
>>> Template configuration : null cannot be builtfor Synapse Library artifact :
>>> newInit1
>>> at
>>> org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:196)
>>> at
>>> org.apache.synapse.libraries.model.LibraryArtifact.loadComponentsInto(LibraryArtifact.java:100)
>>> at
>>> org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:144)
>>> at
>>> org.apache.synapse.libraries.model.SynapseLibrary.loadLibrary(SynapseLibrary.java:129)
>>> at
>>> org.apache.synapse.libraries.util.LibDeployerUtils.loadLibArtifacts(LibDeployerUtils.java:340)
>>> at
>>> org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:100)
>>> at
>>> org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.addImport(MediationLibraryAdminService.java:124)
>>> at
>>> org.wso2.carbon.mediation.library.service.MediationLibraryAdminService.updateStatus(MediationLibraryAdminService.java:436)
>>> 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.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
>>> at
>>> org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
>>> at
>>> org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
>>> at
>>> org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
>>> at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
>>> at
>>> org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:169)
>>> at
>>> org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:82)
>>> at
>>> org.wso2.carbon.core.transports.local.CarbonLocalTransportSender.finalizeSendWithToAddress(CarbonLocalTransportSender.java:45)
>>> at
>>> org.apache.axis2.transport.local.LocalTransportSender.invoke(LocalTransportSender.java:77)
>>> at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
>>> at
>>> org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
>>> at
>>> org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
>>> at
>>> org.wso2.carbon.mediation.library.stub.MediationLibraryAdminServiceStub.updateStatus(MediationLibraryAdminServiceStub.java:1476)
>>> at
>>> org.wso2.carbon.mediation.library.ui.LibraryAdminClient.updateStatus(LibraryAdminClient.java:114)
>>> at
>>> org.apache.jsp.mediation_005flibrary.import_005flib_jsp._jspService(import_005flib_jsp.java:114)
>>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
>>> at
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155)
>>> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:604)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:543)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:37)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.include(ContextPathServletAdaptor.java:369)
>>> at
>>> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:954)
>>> at
>>> org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:688)
>>> at
>>> org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:682)
>>> at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> at java.lang.reflect.Method.invoke(Method.java:606)
>>> at org.apache.tiles.jsp.context.JspUtil.doInclude(JspUtil.java:87)
>>> at
>>> org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:88)
>>> at
>>> org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:82)
>>> at
>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:465)
>>> at
>>> org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:140)
>>> at
>>> org.apache.tiles.jsp.taglib.InsertAttributeTag.render(InsertAttributeTag.java:117)
>>> at
>>> org.apache.tiles.jsp.taglib.RenderTagSupport.execute(RenderTagSupport.java:171)
>>> at
>>> org.apache.tiles.jsp.taglib.RoleSecurityTagSupport.doEndTag(RoleSecurityTagSupport.java:75)
>>> at
>>> org.apache.tiles.jsp.taglib.ContainerTagSupport.doEndTag(ContainerTagSupport.java:80)
>>> at
>>> org.apache.jsp.admin.layout.template_jsp._jspx_meth_tiles_005finsertAttribute_005f7(template_jsp.java:640)
>>> at
>>> org.apache.jsp.admin.layout.template_jsp._jspService(template_jsp.java:356)
>>> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
>>> at
>>> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
>>> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:155)
>>> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
>>> at
>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.RequestDispatcherAdaptor.forward(RequestDispatcherAdaptor.java:30)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor$RequestDispatcherAdaptor.forward(ContextPathServletAdaptor.java:362)
>>> at
>>> org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:198)
>>> at
>>> org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:185)
>>> at
>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:419)
>>> at
>>> org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:370)
>>> at org.wso2.carbon.ui.action.ActionHelper.render(ActionHelper.java:52)
>>> at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:101)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>>> at
>>> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>>> at
>>> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>>> at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>>> at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>>> at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>>> at
>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
>>> at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>>> at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>>> at
>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>>> at
>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:49)
>>> at
>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>>> at
>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>>> at
>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>>> at
>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>>> at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>>> at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>>> at
>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
>>> at
>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>>> at
>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
>>> at
>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>>> at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>> at
>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>>> at java.lang.Thread.run(Thread.java:745)
>>> Caused by: org.apache.synapse.SynapseException: Only 'axis2' or
>>> 'transport' or 'axis2-client' or 'default' or 'operation' values are
>>> allowed for attribute scope for a property mediator, Unsupported scope
>>> registry
>>> at
>>> org.apache.synapse.config.xml.PropertyMediatorFactory.createSpecificMediator(PropertyMediatorFactory.java:137)
>>> at
>>> org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:94)
>>> at
>>> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
>>> at
>>> org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:46)
>>> at
>>> org.apache.synapse.config.xml.FilterMediatorFactory.createSpecificMediator(FilterMediatorFactory.java:136)
>>> at
>>> org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:94)
>>> at
>>> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
>>> at
>>> org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:46)
>>> at
>>> org.apache.synapse.config.xml.FilterMediatorFactory.createSpecificMediator(FilterMediatorFactory.java:136)
>>> at
>>> org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:94)
>>> at
>>> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
>>> at
>>> org.apache.synapse.config.xml.AbstractListMediatorFactory.addChildren(AbstractListMediatorFactory.java:46)
>>> at
>>> org.apache.synapse.config.xml.TemplateMediatorFactory.createSpecificMediator(TemplateMediatorFactory.java:61)
>>> at
>>> org.apache.synapse.config.xml.AbstractMediatorFactory.createMediator(AbstractMediatorFactory.java:94)
>>> at
>>> org.apache.synapse.config.xml.MediatorFactoryFinder.getMediator(MediatorFactoryFinder.java:224)
>>> at
>>> org.apache.synapse.libraries.model.LibraryArtifact$TemplateArtifactFile.build(LibraryArtifact.java:190)
>>> ... 133 more
>>>
>>>
>>> Thanks,
>>> Thulasika
>>>
>>>
>>> On Tue, Dec 8, 2015 at 11:35 AM, Malaka Silva <[email protected]> wrote:
>>>
>>>> Hi,
>>>>
>>>> One of the main issues we had when automating the integration use cases
>>>> is accesstokens getting expired and need human interaction to continue the
>>>> service.
>>>>
>>>> From connector side (Since September release) we have added methods to
>>>> renew the tokens using refresh token.
>>>>
>>>> With ESB 4.10 registry persistence feature we can fully automate this
>>>> use case.
>>>>
>>>> As the first stage we are going to check how this can be done. For this
>>>> will be using the sync service from Salesforce to Google Sheets as the
>>>> model use case.
>>>>
>>>> We will plan to do this change focusing on following points.
>>>>
>>>> 1. Connectors should make use of this ESB 4.10 new feature.
>>>> 2. Connector should be also compatible with previous versions.
>>>>
>>>> May be we can introduce a new init method for esb 4.10?
>>>>
>>>> Thulasika is currently checking this.
>>>>
>>>> @Thulasika please use this thread to update the findings.
>>>>
>>>> Best Regards,
>>>>
>>>> Malaka Silva
>>>> Senior Tech Lead
>>>> M: +94 777 219 791
>>>> Tel : 94 11 214 5345
>>>> Fax :94 11 2145300
>>>> Skype : malaka.sampath.silva
>>>> LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
>>>> Blog : http://mrmalakasilva.blogspot.com/
>>>>
>>>> WSO2, Inc.
>>>> lean . enterprise . middleware
>>>> http://www.wso2.com/
>>>> http://www.wso2.com/about/team/malaka-silva/
>>>> <http://wso2.com/about/team/malaka-silva/>
>>>> https://store.wso2.com/store/
>>>>
>>>> Save a tree -Conserve nature & Save the world for your future. Print
>>>> this email only if it is absolutely necessary.
>>>>
>>>
>>>
>>>
>>> --
>>> Thulasika
>>> Associate Software Engineer
>>> Mobile:0778014295
>>> email: [email protected] <[email protected]>
>>>
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> <[email protected]>
> Keerthika Mahendralingam
> Associate Software Engineer
> Mobile :+94 (0) 776 121144
> [email protected]
> WSO2, Inc.
> lean . enterprise . middleware
>
--
Best Regards,
Malaka Silva
Senior Tech Lead
M: +94 777 219 791
Tel : 94 11 214 5345
Fax :94 11 2145300
Skype : malaka.sampath.silva
LinkedIn : http://www.linkedin.com/pub/malaka-silva/6/33/77
Blog : http://mrmalakasilva.blogspot.com/
WSO2, Inc.
lean . enterprise . middleware
http://www.wso2.com/
http://www.wso2.com/about/team/malaka-silva/
<http://wso2.com/about/team/malaka-silva/>
https://store.wso2.com/store/
Save a tree -Conserve nature & Save the world for your future. Print this
email only if it is absolutely necessary.
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture