@Dimuthu, You mean you are not using this for next release ? Still if AF does not have time at the moment, can you send me link for a particular class/codes in AF that use gov api, so that I can provide equivalent code using metadata API. Then you guys can test it.
On Wed, Sep 10, 2014 at 12:08 AM, Subash Chaturanga <[email protected]> wrote: > Hi Dimuthu et al, > In the attributes you have given for all service types in current AF, I > have following questions; > > What is "Description" ? Is this the service > description/document/interface definition (WSDL/WADL) ? or some human > readable description ? > > @Saniva et al; IF there is NO such particular thing specific for HTTP or > SOAP, we can maintain one service without having particular sub types and > represent all with following attributes; (One disadvantage is anything > required in future for a service type in wso2 and that is NOT common, > those will have to be managed with the property bag). Advantage is, reduce > the # meta models and APIs and having all services in one place. > > > *vnd.wso2.service* > > Subtype > > Suffix > > Parameters > > Description > > Content Model > > Associations > > * > > xml/json > > version (default is “1”) > > Top level type for all services > > -String name > > -String namespace > > -String owner > > -String description > > -String createdDate > > -List Transport Protocols (http/s,jms,tcp,xmpp) > > - List Message Format (soap 1.1/1.2,xml) > > - List Grammar (XSDs; common to WSDL/WADL both) > > -List Message Encryption(ssl/ws-security,other) > > - List Documentation(URLs/inline strings) > > > > 1..n service versions > > 1..n contacts > > > > *vnd.wso2.version/service* > > Subtype > > Suffix > > Parameters > > Description > > Content Model > > Associations > > service > > > > List<String> Endpoints > Object Security (Authentication UT,OAuth etc) ? > > 1..n endpoints > > > > > *vnd.wso2.endpoint* > > Subtype > > Suffix > > Parameters > > Description > > Content Model > > Associations > > * > > > Top level type for all endpoints > String URL1..n service versions > > > > *vnd.wso2.contact* > > Subtype > > Suffix > > Parameters > > Description > > Content Model > > Associations > > * > > > Top level type for all contacts > > - First Name > - Last Name > - Organization > - Address > - Country > - Email. > - Telephone > - Mobile > - IM - The user's personal e-mail address. > - URL - The users site address. > > > 1..n services > Contacts will be get generated from the current carbon user store. > > > > Shall we finalise service ? Can AF/AM/G-Reg agree on above service ? Is > there anything that is lacking/some required attribute ? > > > > On Tue, Sep 9, 2014 at 1:03 PM, Dimuthu Leelarathne <[email protected]> > wrote: > >> Hi Subash, >> >> Thanks. We will not be taking this up yet. >> >> thanks, >> dimuthu >> >> >> On Thu, Sep 4, 2014 at 6:10 PM, Subash Chaturanga <[email protected]> >> wrote: >> >>> Hi, >>> Finished the searching with Solr index. I have tested a sample complete >>> client code inside Turing G-Reg 4.6.0 governance component. >>> @Dimuthu, >>> Now this API should be able to used to re build what you have already >>> with gov api. I will work on completing my external TODOs left, like adding >>> unit tests etc. >>> >>> >>> On Mon, Sep 1, 2014 at 9:14 AM, Subash Chaturanga <[email protected]> >>> wrote: >>> >>>> Hi, >>>> Moving to @architecture. >>>> >>>> >>>> On Fri, Aug 29, 2014 at 3:47 AM, Subash Chaturanga <[email protected]> >>>> wrote: >>>> >>>>> Hi all, >>>>> This is to give you a progress update. Now the code is moved to wso2 >>>>> -dev repo [1]. And I have completed the implementation except the >>>>> search/findAll which have to implement through indexing. Following is the >>>>> client code I used. >>>>> >>>>> >>>>> // You have to set this path ONLY if you are using this api outside a >>>>> carbon server runtime. >>>>> >>>>> Util.setProviderMapFilePath("<path-to-registry.xml>"); >>>>> >>>>> HTTPServiceVersionV1 bv = new >>>>> HTTPServiceVersionV1(registry, "1.0.0"); >>>>> >>>>> bv.setProperty("foo", "bar"); >>>>> >>>>> HTTPServiceV1 http1 = new HTTPServiceV1(registry, >>>>> "myservice",bv); >>>>> >>>>> http1.setOwner("serviceOwner"); >>>>> >>>>> http1.setProperty("createdDate", "12-12-2012"); >>>>> >>>>> HTTPServiceV1.add(registry, http1); >>>>> >>>>> HTTPServiceV1 httpServiceV1 = HTTPServiceV1.get(registry, >>>>> http1.getUUID()); >>>>> >>>>> HTTPServiceVersionV1 v2 = httpServiceV1.newVersion("1.2.0"); >>>>> >>>>> v2.setProperty("foo", "bar"); >>>>> >>>>> HTTPServiceVersionV1.add(registry, v2); >>>>> >>>>> for(HTTPServiceVersionV1 v:httpServiceV1.getVersions()){ >>>>> >>>>> System.out.println(v.getName()); >>>>> >>>>> } >>>>> >>>>> http1.attachLifecycle("SampleLifeCycle"); >>>>> >>>>> StateMachineLifecycle lc = http1.getLifecycle(); >>>>> >>>>> StateMachineLifecycle.State s = lc.getCurrentState(); >>>>> >>>>> lc.transfer("Promote"); >>>>> >>>>> StateMachineLifecycle.State s1 = lc.getCurrentState(); >>>>> >>>>> >>>>> I have attached the screen shot of the G-Reg 4.6.0 mgt console after >>>>> running this client. You can find the associations are created and >>>>> lifecycle has attached and promoted to Test status. >>>>> >>>>> The API always deals with UUIDs from creating associations to CRUD >>>>> instances. And the code is in wso2-dev git repo and no need to backport on >>>>> turing, hence AF can build it and put it in to dropins. >>>>> >>>>> Once finish the searching/getAll we can try replacing a AF code with >>>>> this API. Meanwhile we need to finalize the rest of the meta data >>>>> @Sanjiva's meta data spec 1.0.0 ;-). Also will arrange a code/API review >>>>> once search is implemented. >>>>> >>>>> Basic Implementation TODOs; >>>>> >>>>> - Search >>>>> - Add more class/method comments to improve readability. >>>>> - Create an ant sample. >>>>> - Performance tune >>>>> >>>>> >>>>> [1] - >>>>> https://github.com/wso2-dev/carbon-registry/tree/master/components/registry/org.wso2.carbon.registry.metadata >>>>> >>>>> >>>>> >>>>> On Fri, Aug 22, 2014 at 7:35 PM, Senaka Fernando <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi all, >>>>>> >>>>>> Sanjiva, I added a comment on 2a in FAQ #2, too see whether we can >>>>>> find a solution to what Dimuthu mentioned. This is the reason why I >>>>>> actually proposed 2a - but that's obviously not the ideal solution too. >>>>>> So, >>>>>> trying to understand the best compromise here. >>>>>> >>>>>> Subash, I don't think the get/set property business is a good idea at >>>>>> all. If this is an end-to-end API, shouldn't we for example do: >>>>>> >>>>>> >>>>>> HTTPServiceVersionV1 httpV1 = http1.newVersion("1.0.0"); >>>>>> EndpointV1 endpoint = new EndpointV1("http://test.rest/stockquote"); >>>>>> endpoint.setSecured(true); >>>>>> httpV1.addEndpoint(endpoint); >>>>>> HTTPServiceVersionV1.add(httpV1); >>>>>> >>>>>> My view is that the API needs to be very expressive so that everybody >>>>>> who uses that will generally find it to be comprehensive and the property >>>>>> option is only if they don't find a way to do what they want. >>>>>> >>>>>> Also, a very radical question on services and endpoints. I think >>>>>> everybody (G-Reg, AppFac and API-M teams) is clear that the >>>>>> ServiceVersion >>>>>> is what has the lifecycle state. But, I wanted to ask a separate >>>>>> question. >>>>>> Are we ruling out the possibility of a single service version being in >>>>>> multiple environments? If yes, then simply forget this question. If no, >>>>>> should we be having a state for the endpoint (i.e. A single service >>>>>> version >>>>>> with Dev endpoint a QA endpoint and vice versa). If we think we need the >>>>>> above, should we have a concept of primary endpoint, which is what in >>>>>> return deduces what state the service is in (ex:- the primary endpoint >>>>>> for >>>>>> a service v1 is dev, which means the service is in dev state)? >>>>>> >>>>>> Thanks, >>>>>> Senaka. >>>>>> >>>>>> >>>>>> On Fri, Aug 22, 2014 at 2:15 PM, Sanjiva Weerawarana < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Dimuthu see FAQ #2 in the document. Please suggest alternatives or >>>>>>> accept it :-). >>>>>>> >>>>>>> >>>>>>> On Fri, Aug 22, 2014 at 3:36 PM, Dimuthu Leelarathne < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi Subash and all, >>>>>>>> >>>>>>>> The API look extremely cluttered with V1 appended to all classes. :( >>>>>>>> >>>>>>>> thanks, >>>>>>>> dimuthu >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Aug 22, 2014 at 9:30 AM, Dimuthu Leelarathne < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Subash, >>>>>>>>> >>>>>>>>> I believe this API allows us to create a foo service without a >>>>>>>>> version. But that should not be the case. As discussed the instance >>>>>>>>> also >>>>>>>>> must have a version. So the Create API should change. >>>>>>>>> >>>>>>>>> thanks, >>>>>>>>> dimuthu >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Aug 22, 2014 at 1:05 AM, Subash Chaturanga < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi Sanjiva et al, >>>>>>>>>> Here is the [1] latest metadata API. In the process of finishing >>>>>>>>>> the first cut implementation. Will update soon once I finished it. >>>>>>>>>> Please >>>>>>>>>> provide your feedback if anything needs to be changed from the API >>>>>>>>>> consumer >>>>>>>>>> PoV. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> So this is the latest client code; >>>>>>>>>> >>>>>>>>>> HTTPServiceV1 http1 = new HTTPServiceV1("foo"); >>>>>>>>>> http1.setOwner("serviceOwner"); >>>>>>>>>> http1.setProperty("createdDate","12-12-2012"); >>>>>>>>>> HTTPServiceV1.add(http1); >>>>>>>>>> >>>>>>>>>> HTTPServiceV1[] services = HTTPServiceV1.getAll(); >>>>>>>>>> for(HTTPServiceV1 ht:services){ >>>>>>>>>> ht.setProperty("newProp","newValue"); >>>>>>>>>> HTTPServiceV1.update(ht); >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> HTTPServiceVersionV1 httpV1 = http1.newVersion("1.0.0"); >>>>>>>>>> httpV1.setEndpointUrl("http://test.rest/stockquote"); >>>>>>>>>> httpV1.setProperty("isSecured","true"); >>>>>>>>>> HTTPServiceVersionV1.add(httpV1); >>>>>>>>>> >>>>>>>>>> HTTPServiceVersionV1 v1 = >>>>>>>>>> HTTPServiceVersionV1.get(httpV1.getUUID()); >>>>>>>>>> HTTPServiceV1.delete(v1.getUUID()); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [1] - >>>>>>>>>> https://github.com/subash89/carbon-registry/tree/master/components/registry/org.wso2.carbon.registry.metadata >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Mon, Aug 18, 2014 at 9:15 AM, Dimuthu Leelarathne < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi all, >>>>>>>>>>> >>>>>>>>>>> Please see my comments in line. >>>>>>>>>>> >>>>>>>>>>> On Sun, Aug 17, 2014 at 3:32 PM, Sanjiva Weerawarana < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> [At least Sagara/Dimuthu/Senaka/Frank/Paul please read >>>>>>>>>>>> carefully. Lot of subtlety to get right ..] >>>>>>>>>>>> >>>>>>>>>>>> With media types, we have only 3 simple/direct ways of >>>>>>>>>>>> categorizing stuff: >>>>>>>>>>>> {type}/{subtype}+{format}. >>>>>>>>>>>> There are of course parameters as add-ons but this is the >>>>>>>>>>>> primary set. >>>>>>>>>>>> >>>>>>>>>>>> For services {type} = vnd.wso2.service. >>>>>>>>>>>> >>>>>>>>>>>> Question is what is subtype? I think we're agreeing WAR is not >>>>>>>>>>>> appropriate as that's an implementation format. From a service >>>>>>>>>>>> metadata >>>>>>>>>>>> perspective, whether its PHP or .Net or Jaggery or whatever is not >>>>>>>>>>>> important either. JAX-RS and JAX-WS are also really just internal >>>>>>>>>>>> things - >>>>>>>>>>>> what JAX-RS produces is an HTTP service. What JAX-WS produces is a >>>>>>>>>>>> SOAP-speaking service which could potentially be exposed in >>>>>>>>>>>> multiple access >>>>>>>>>>>> channels. >>>>>>>>>>>> >>>>>>>>>>>> So, it seems to me, what really matters about a service is what >>>>>>>>>>>> the access protocol is and what format the messages are to be >>>>>>>>>>>> sent. In >>>>>>>>>>>> other words: >>>>>>>>>>>> >>>>>>>>>>>> {subtype} = access protocol: http | smtp | thrift | ... >>>>>>>>>>>> {format} = message format: soap | xml | json | txt | binary | >>>>>>>>>>>> ... >>>>>>>>>>>> >>>>>>>>>>>> So how do you represent a SOAP service which is available over >>>>>>>>>>>> multiple protocols then? Direct interpretation would say it should >>>>>>>>>>>> be >>>>>>>>>>>> vnd.wso2.service/*+soap. However that's not a valid media type; >>>>>>>>>>>> that's a >>>>>>>>>>>> pattern to match against many media types. >>>>>>>>>>>> >>>>>>>>>>>> We can solve this by considering "soap" as an access protocol >>>>>>>>>>>> and model a SOAP service with vnd.wso2.service/soap. The same >>>>>>>>>>>> service's >>>>>>>>>>>> HTTP specific rendition would be vnd.wso2.service/soap+http. This >>>>>>>>>>>> model >>>>>>>>>>>> does well for WSDL too - sort of .. WSDL separates the service >>>>>>>>>>>> interface >>>>>>>>>>>> (portType) from its access information (binding - both transport >>>>>>>>>>>> and >>>>>>>>>>>> formatting). >>>>>>>>>>>> >>>>>>>>>>>> So what if we reverse the model and use format as the subtype >>>>>>>>>>>> and protocol as the format: >>>>>>>>>>>> >>>>>>>>>>>> {subtype} = message format: soap | xml | json | txt | binary | >>>>>>>>>>>> ... >>>>>>>>>>>> {format} = access protocol: http | smtp | thrift >>>>>>>>>>>> >>>>>>>>>>>> BUT that has its set of problems too .. many services can speak >>>>>>>>>>>> both XML and JSON for example. Furthermore, SOAP does not imply a >>>>>>>>>>>> particular format .. SOAP can be sent over XML or a binary >>>>>>>>>>>> serialization of >>>>>>>>>>>> XML. Luckily no one uses the latter so lets ignore it. (The use of >>>>>>>>>>>> XML vs. >>>>>>>>>>>> a binary serialization seems more in the league of content transfer >>>>>>>>>>>> encoding [1] anyway.) >>>>>>>>>>>> >>>>>>>>>>>> There's also the aspect of versions of a service to be >>>>>>>>>>>> considered. It seems to me its really a version of a service that >>>>>>>>>>>> has a >>>>>>>>>>>> particular interface, not the service itself (as the interface may >>>>>>>>>>>> change >>>>>>>>>>>> over time). >>>>>>>>>>>> >>>>>>>>>>>> *So, in summary, my suggestion is we go with*: >>>>>>>>>>>> >>>>>>>>>>>> {type} = vnd.wso2.service >>>>>>>>>>>> {subtype} = access protocol: soap | http | thift | ... >>>>>>>>>>>> {format} = xml | json | text | binary ... >>>>>>>>>>>> >>>>>>>>>>>> Then, we make sure each service will have at least one version: >>>>>>>>>>>> >>>>>>>>>>>> vnd.wso2.version/service >>>>>>>>>>>> >>>>>>>>>>>> That could have some standard associations depending on what >>>>>>>>>>>> type of service it is a version of. For example, for SOAP services >>>>>>>>>>>> it makes >>>>>>>>>>>> sense to have a required associated WSDL interface definition >>>>>>>>>>>> (portType). >>>>>>>>>>>> For HTTP services maybe we can associate with Swagger or WADL for >>>>>>>>>>>> interface >>>>>>>>>>>> definition. >>>>>>>>>>>> >>>>>>>>>>>> [NOTE: In App Factory currently bunch of the information is at >>>>>>>>>>>> the wrong level w.r.t. to an app and its versions. AF only knows >>>>>>>>>>>> about >>>>>>>>>>>> versions in terms of Git and for governance. It doesn't keep other >>>>>>>>>>>> stuff >>>>>>>>>>>> like resources against versions when it really needs to have those >>>>>>>>>>>> can >>>>>>>>>>>> differ by version easily.] >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Going into this model means we'll be in-sync with ES and >>>>>>>>>>> AppManager and in addition and resources will be version specific. >>>>>>>>>>> However >>>>>>>>>>> then AF story changes drastically - this includes UIs. We'll also >>>>>>>>>>> need a >>>>>>>>>>> solid story for agile development if we are going for this model. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> If we want the metadata model to capture the >>>>>>>>>>>> deployment/implementation model, I suggest we create another top >>>>>>>>>>>> level type >>>>>>>>>>>> called vnd.wso2.artifact and have subtypes: >>>>>>>>>>>> >>>>>>>>>>>> vnd.wso2.artifact/war >>>>>>>>>>>> vnd.wso2.artifact/war+jaxrs >>>>>>>>>>>> vnd.wso2.artifact/war+jaxws >>>>>>>>>>>> vnd.wso2.artifact/car >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> +1. This will be useful for AF to make deployment decision and >>>>>>>>>>> it can be coupled with the concept of Runtimes, for example Tomcat, >>>>>>>>>>> AppServer and etc ... but that can come later with the multiple >>>>>>>>>>> runtime >>>>>>>>>>> environment feature. >>>>>>>>>>> >>>>>>>>>>> thanks, >>>>>>>>>>> dimuthu >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> etc.. Then there can be an association or a property to >>>>>>>>>>>> capture the artifact type of a particular service. The value of >>>>>>>>>>>> that >>>>>>>>>>>> association could be the name of the war file for example. >>>>>>>>>>>> >>>>>>>>>>>> The last part is the endpoint part .. a particular version of a >>>>>>>>>>>> service is going to be available at one ore more endpoints. >>>>>>>>>>>> Endpoints come >>>>>>>>>>>> off servers .. which is part of the model that Senaka and G-Reg >>>>>>>>>>>> team have >>>>>>>>>>>> planned. >>>>>>>>>>>> >>>>>>>>>>>> Endpoints are also of course connected to APIs. >>>>>>>>>>>> >>>>>>>>>>>> Subash is going to schedule a discussion to finalize that part. >>>>>>>>>>>> >>>>>>>>>>>> Sanjiva. >>>>>>>>>>>> [1] http://en.wikipedia.org/wiki/MIME#Content-Transfer-Encoding >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Aug 15, 2014 at 5:29 PM, Dimuthu Leelarathne < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Hi all, >>>>>>>>>>>>> >>>>>>>>>>>>> We should be using the name WebApplication for all of these, >>>>>>>>>>>>> - PHP >>>>>>>>>>>>> - .NET ASP >>>>>>>>>>>>> - Jaggery >>>>>>>>>>>>> - Java WebApp >>>>>>>>>>>>> >>>>>>>>>>>>> In our meta model, it should be as follows. >>>>>>>>>>>>> >>>>>>>>>>>>> Parent - Application >>>>>>>>>>>>> Child - WebApp >>>>>>>>>>>>> >>>>>>>>>>>>> However, JAX-RS and JAX-WS are services. >>>>>>>>>>>>> >>>>>>>>>>>>> In that sense, >>>>>>>>>>>>> >>>>>>>>>>>>> Parent - Service >>>>>>>>>>>>> Child - SoapService >>>>>>>>>>>>> Child - RESTService >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> For App Factory to proceed the above classes will be enough - >>>>>>>>>>>>> WebApp, SOAPService, RESTService. Only 3 meta models are required. >>>>>>>>>>>>> >>>>>>>>>>>>> thanks, >>>>>>>>>>>>> dimuthu >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Aug 15, 2014 at 1:05 PM, Senaka Fernando < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Fri, Aug 15, 2014 at 6:27 AM, Sagara Gunathunga < >>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Thu, Aug 14, 2014 at 4:34 AM, Dimuthu Leelarathne < >>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Hi Subash and all, >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We want the store the following for the App Factory >>>>>>>>>>>>>>>> artefacts. I am not sure whether to fill the parameters >>>>>>>>>>>>>>>> section or the >>>>>>>>>>>>>>>> Content section of the tables so I decided write inline to the >>>>>>>>>>>>>>>> mail. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> For WAR - Name, Key, Owner, Description, Type, Repository >>>>>>>>>>>>>>>> Type, EndPoint URL >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> I guess you mean application with web pages as WAR, if so >>>>>>>>>>>>>>> IMHO it's better to use different name than WAR to avoid >>>>>>>>>>>>>>> confusions. WAR >>>>>>>>>>>>>>> is not a application type instead it's a deployment unit where >>>>>>>>>>>>>>> JAX-WS and >>>>>>>>>>>>>>> JAX-RS services also deploy as WAR archives. >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> +1 to Sagara. we can all this "WebApplication"? >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>> Senaka. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Thanks ! >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> For JAXWS, JAXRS, Data Services, Jaggery and Jaggery >>>>>>>>>>>>>>>> parameters would be the following. >>>>>>>>>>>>>>>> Name, Key, Owner, Description, Type, Repository Type, >>>>>>>>>>>>>>>> Endpoint ( we will need a new feature for this so sending a >>>>>>>>>>>>>>>> separate mail >>>>>>>>>>>>>>>> on this to architecture) >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> thanks, >>>>>>>>>>>>>>>> dimuthu >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Wed, Aug 13, 2014 at 7:01 PM, Ruchira Wageesha < >>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> Hi Subash, >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> In the attached google doc, I saw that you guys are going >>>>>>>>>>>>>>>>> to use versions in class name? If that is the case, how can >>>>>>>>>>>>>>>>> we create >>>>>>>>>>>>>>>>> Server1.0.0 or Service1.2.0 like classes from Java or do we >>>>>>>>>>>>>>>>> assume versions >>>>>>>>>>>>>>>>> to be always like v1...vn? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> According to my picture, it should be a different jar >>>>>>>>>>>>>>>>> version like in maven/OSGI. i.e. We have the exact classname >>>>>>>>>>>>>>>>> for every >>>>>>>>>>>>>>>>> version of the same service, but different implementations in >>>>>>>>>>>>>>>>> different >>>>>>>>>>>>>>>>> jars. It is the model that we follow in Java and why cannot >>>>>>>>>>>>>>>>> we continue >>>>>>>>>>>>>>>>> that for this as well? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Wed, Aug 13, 2014 at 4:33 AM, Senaka Fernando < >>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi Subash, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Please find comments in-line. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> On Tue, Aug 12, 2014 at 7:16 PM, Janaka Ranabahu < >>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Hi Subash, >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> On Tue, Aug 12, 2014 at 11:12 PM, Subash Chaturanga < >>>>>>>>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>>>> We had a meeting on $subject as a continuation on >>>>>>>>>>>>>>>>>>>> "Applications in the unified governance model" and decide >>>>>>>>>>>>>>>>>>>> what is the >>>>>>>>>>>>>>>>>>>> unified governance meta models should be in high level. >>>>>>>>>>>>>>>>>>>> And Sanjiva updated >>>>>>>>>>>>>>>>>>>> the same doc with todays conclusions in [1]. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Came up with set of high level meta models to start >>>>>>>>>>>>>>>>>>>> with compared to what we have already in G-Reg(refer doc >>>>>>>>>>>>>>>>>>>> [1]). >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> a. Came up with a meta model java interface to address >>>>>>>>>>>>>>>>>>>> the current requirement. There, we will be creating first >>>>>>>>>>>>>>>>>>>> class APIs for >>>>>>>>>>>>>>>>>>>> identified well known unified governance metadata models. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> b. Decided some modifications for the media types. >>>>>>>>>>>>>>>>>>>> - skip the "application/" for media types and now >>>>>>>>>>>>>>>>>>>> it will be something as vnd.wso2.service for services. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Why? "application" here has nothing to do with services >>>>>>>>>>>>>>>>>> and applications that we are talking about. This is the >>>>>>>>>>>>>>>>>> standard way of >>>>>>>>>>>>>>>>>> writing a vendor specific MIME type (i.e. >>>>>>>>>>>>>>>>>> application/vnd.<vendor_name><vendor_specific_portion>). Why >>>>>>>>>>>>>>>>>> do we have to >>>>>>>>>>>>>>>>>> change this notation? I know that given #2 below, there is >>>>>>>>>>>>>>>>>> no reason we >>>>>>>>>>>>>>>>>> can't play around with the names of the mediatypes, but if >>>>>>>>>>>>>>>>>> this has no >>>>>>>>>>>>>>>>>> special intent, I see no point in removing the >>>>>>>>>>>>>>>>>> "application/" part though. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> - having version support for media >>>>>>>>>>>>>>>>>>>> types.(version will be part of the media type), have not >>>>>>>>>>>>>>>>>>>> finalized on how >>>>>>>>>>>>>>>>>>>> to add a version string to media type. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> This is fine as we agreed. The MIME processor can accept >>>>>>>>>>>>>>>>>> a string after the standard mediatype notation (i.e. >>>>>>>>>>>>>>>>>> ";version=x") for >>>>>>>>>>>>>>>>>> these specific assets. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> c. Metadata java interfaces will always deal with >>>>>>>>>>>>>>>>>>>> UUIDs, but never with paths. >>>>>>>>>>>>>>>>>>>> - meta data structure/attribute can get changed >>>>>>>>>>>>>>>>>>>> from time to time. Should need a mechanism to support >>>>>>>>>>>>>>>>>>>> metadata in old >>>>>>>>>>>>>>>>>>>> format as well as in new format (aka different versions of >>>>>>>>>>>>>>>>>>>> a media type) in >>>>>>>>>>>>>>>>>>>> the same carbon runtime. Hence interface name itself will >>>>>>>>>>>>>>>>>>>> have version >>>>>>>>>>>>>>>>>>>> information. >>>>>>>>>>>>>>>>>>>> i.e media type versions are restricted to have only >>>>>>>>>>>>>>>>>>>> majors. i.e for services org.wso2.metadata.ServiceV1 (we >>>>>>>>>>>>>>>>>>>> knew this is ugly, >>>>>>>>>>>>>>>>>>>> but can't help, but you're mostly welcome for a better >>>>>>>>>>>>>>>>>>>> suggestion). >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> This was the way I thought of solving it (during the call >>>>>>>>>>>>>>>>>> I was in), "org.wso2.metadata.service.v1.Service". But, if >>>>>>>>>>>>>>>>>> it is just a >>>>>>>>>>>>>>>>>> single class inside the "org.wso2.metadata.service.v1.*" >>>>>>>>>>>>>>>>>> package, there is >>>>>>>>>>>>>>>>>> no point in doing that. But, if we plan to have a few >>>>>>>>>>>>>>>>>> classes in the >>>>>>>>>>>>>>>>>> package, then we probably can do that. Then, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. the code is a bit more readable >>>>>>>>>>>>>>>>>> 2. there is no possibility of somebody using two >>>>>>>>>>>>>>>>>> different versions of the Service class in the code that >>>>>>>>>>>>>>>>>> is based on this >>>>>>>>>>>>>>>>>> API >>>>>>>>>>>>>>>>>> 3. Using OSGi, we can stop exporting the older API >>>>>>>>>>>>>>>>>> versions on a later date >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Also, note my comments below on how this works in >>>>>>>>>>>>>>>>>> specific situations. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> d. First class version support. >>>>>>>>>>>>>>>>>>>> - Create an artifact without a version. >>>>>>>>>>>>>>>>>>>> - Then create versions from the artifact >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> e. Apart from these, all CRUD + search; typical >>>>>>>>>>>>>>>>>>>> interfaces will be given for each metadata type. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> We did not touch this subject during the discussion but >>>>>>>>>>>>>>>>>>> apart from these, I believe we need to introduce methods to >>>>>>>>>>>>>>>>>>> perform >>>>>>>>>>>>>>>>>>> governance operations in these artifacts. The interface >>>>>>>>>>>>>>>>>>> should supports to >>>>>>>>>>>>>>>>>>> attach, detach, perform governance operation(promote,demote >>>>>>>>>>>>>>>>>>> or any >>>>>>>>>>>>>>>>>>> lifecycle event) and get lifecycle state of an artifacts. >>>>>>>>>>>>>>>>>>> Right now we have >>>>>>>>>>>>>>>>>>> registry API's to do these but IMO, the artifacts should >>>>>>>>>>>>>>>>>>> have 1st class >>>>>>>>>>>>>>>>>>> support for governance operations. >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I have mixed views on this. Does all metadata need to be >>>>>>>>>>>>>>>>>> governed? Isn't the metadata API separate from the >>>>>>>>>>>>>>>>>> governance around it? >>>>>>>>>>>>>>>>>> Wouldn't some governance functionality be limited to certain >>>>>>>>>>>>>>>>>> products? If >>>>>>>>>>>>>>>>>> so, doesn't it make sense to have the governance of these >>>>>>>>>>>>>>>>>> metadata as a >>>>>>>>>>>>>>>>>> separate API? i.e. org.wso2.metadata.governance? >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>>> Janaka >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Super parent media type will be "vnd.wso2.metadata". >>>>>>>>>>>>>>>>>>>> Following is the design for high level service. Refer doc >>>>>>>>>>>>>>>>>>>> [1] for more >>>>>>>>>>>>>>>>>>>> detailed info. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> vnd.wso2.service __ 1 ____ n vnd.wso2.contact >>>>>>>>>>>>>>>>>>>> 1 ____ n >>>>>>>>>>>>>>>>>>>> vnd.wso2.version 1 ____ n vnd.wso2.endpoint >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> vnd.wso2.version? or vnd.wso2.version.service? Does any >>>>>>>>>>>>>>>>>> version artifact look the same? Note that I specifically did >>>>>>>>>>>>>>>>>> not use >>>>>>>>>>>>>>>>>> vnd.wso2.service.version for it will break our media-type >>>>>>>>>>>>>>>>>> based inheritance >>>>>>>>>>>>>>>>>> model. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Also, contacts are loosely coupled. It can be @ service >>>>>>>>>>>>>>>>>> level or @ service version level. And, why contact? why not >>>>>>>>>>>>>>>>>> vnd.wso2.user? >>>>>>>>>>>>>>>>>> vnd.wso2.userprofile? IMHO, a contact is what a service has, >>>>>>>>>>>>>>>>>> but when that >>>>>>>>>>>>>>>>>> information gets stored in the registry its a user-profile, >>>>>>>>>>>>>>>>>> and this should >>>>>>>>>>>>>>>>>> directly comply with the WSO2 IS user-profile structure (as >>>>>>>>>>>>>>>>>> you have >>>>>>>>>>>>>>>>>> mentioned below). In other words, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> public interface Service { >>>>>>>>>>>>>>>>>> UserProfile[] getContacts() >>>>>>>>>>>>>>>>>> } >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> (vnd.wso2.contact will get populated from carbon user >>>>>>>>>>>>>>>>>>>> profile and will provide useful information on impact >>>>>>>>>>>>>>>>>>>> analysis) >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Targeting Oct WSO2Con, we will be starting with jax-rs >>>>>>>>>>>>>>>>>>>> service which is vnd.wso2.metadata > vnd.wso2.service > >>>>>>>>>>>>>>>>>>>> vnd.wso2.service.jax-rs. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Great, and what's the Java package name for this? If you >>>>>>>>>>>>>>>>>> take my approach, it will be >>>>>>>>>>>>>>>>>> "org.wso2.metadata.service.v1.RESTfulService". >>>>>>>>>>>>>>>>>> Its a little ugly, but, I expanded the abbreviated name >>>>>>>>>>>>>>>>>> JAX-RS - and the >>>>>>>>>>>>>>>>>> "RS" stands for RESTful Service and not RESTService. JAX >>>>>>>>>>>>>>>>>> part is redundant >>>>>>>>>>>>>>>>>> since this is a Java API. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Immediate action items; >>>>>>>>>>>>>>>>>>>> - Need to update the doc [1] and fill the tables for >>>>>>>>>>>>>>>>>>>> the defined meta data models and finalize what we keep/drop >>>>>>>>>>>>>>>>>>>> - Finalize the format for Service. >>>>>>>>>>>>>>>>>>>> - Finalize the format for JAX-RS. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Please feel free to add your thoughts on adding >>>>>>>>>>>>>>>>>>>> anything that seems useful for a >>>>>>>>>>>>>>>>>>>> service/JAX-RS/Application in general >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> Please add if I had missed anything. >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Adding more to Ajith's comments, yet again, if you follow >>>>>>>>>>>>>>>>>> the package name model I propose, you can, have >>>>>>>>>>>>>>>>>> org.wso2.metadata.common.v1.Endpoint (if endpoint is a more >>>>>>>>>>>>>>>>>> generic concept >>>>>>>>>>>>>>>>>> than a service for instance) or >>>>>>>>>>>>>>>>>> org.wso2.metadata.service.v1.Endpoint (if >>>>>>>>>>>>>>>>>> endpoints are only associated with services). Similarly, you >>>>>>>>>>>>>>>>>> can have >>>>>>>>>>>>>>>>>> org.wso2.metadata.common.v1.Contact or >>>>>>>>>>>>>>>>>> org.wso2.metadata.common.v1.User or >>>>>>>>>>>>>>>>>> org.wso2.metadata.common.v1.UserProfile. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Thanks, >>>>>>>>>>>>>>>>>> Senaka. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> [1] - >>>>>>>>>>>>>>>>>>>> https://docs.google.com/a/wso2.com/document/d/1lqoHru84oCtBXHILNhKyyUdWA0yN05Um4xyfKFIX1_4/edit >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>>> Thanks >>>>>>>>>>>>>>>>>>>> /subash >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>> *Subash Chaturanga* >>>>>>>>>>>>>>>>>>>> Senior Software Engineer & Lead WSO2 Governance Registry >>>>>>>>>>>>>>>>>>>> Platform TG; WSO2 Inc. http://wso2.com >>>>>>>>>>>>>>>>>>>> Contact: >>>>>>>>>>>>>>>>>>>> email: [email protected] >>>>>>>>>>>>>>>>>>>> blog: http://subashsdm.blogspot.com/ >>>>>>>>>>>>>>>>>>>> twitter: @subash89 >>>>>>>>>>>>>>>>>>>> phone: +9477 2225922 >>>>>>>>>>>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>>> *Janaka Ranabahu* >>>>>>>>>>>>>>>>>>> Senior Software Engineer; WSO2 Inc.; http://wso2.com >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> * E-mail: [email protected] <http://wso2.com>**M: **+94 >>>>>>>>>>>>>>>>>>> 718370861 <%2B94%20718370861>* >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> *[image: http://wso2.com] <http://wso2.com> Senaka >>>>>>>>>>>>>>>>>> Fernando* >>>>>>>>>>>>>>>>>> Software Architect; WSO2 Inc.; http://wso2.com >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> * Member; Apache Software Foundation; http://apache.org >>>>>>>>>>>>>>>>>> <http://apache.org>E-mail: senaka AT wso2.com >>>>>>>>>>>>>>>>>> <http://wso2.com>**P: >>>>>>>>>>>>>>>>>> +1 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*; >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> *M: +44 782 741 1966 <%2B44%20782%20741%201966> >>>>>>>>>>>>>>>>>> Linked-In: http://linkedin.com/in/senakafernando >>>>>>>>>>>>>>>>>> <http://linkedin.com/in/senakafernando>* >>>>>>>>>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> *Ruchira Wageesha**Associate Technical Lead* >>>>>>>>>>>>>>>>> *WSO2 Inc. - lean . enterprise . middleware | wso2.com >>>>>>>>>>>>>>>>> <http://wso2.com>* >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> *email: [email protected] <[email protected]>, blog: >>>>>>>>>>>>>>>>> ruchirawageesha.blogspot.com >>>>>>>>>>>>>>>>> <http://ruchirawageesha.blogspot.com>, >>>>>>>>>>>>>>>>> mobile: +94 77 5493444 <%2B94%2077%205493444>* >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> Dimuthu Leelarathne >>>>>>>>>>>>>>>> Architect & Product Lead of App Factory >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>>>>>>>>>> email: [email protected] >>>>>>>>>>>>>>>> Mobile : 0773661935 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>> Sagara Gunathunga >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Senior Technical Lead; WSO2, Inc.; http://wso2.com >>>>>>>>>>>>>>> V.P Apache Web Services; http://ws.apache.org/ >>>>>>>>>>>>>>> Linkedin; http://www.linkedin.com/in/ssagara >>>>>>>>>>>>>>> Blog ; http://ssagara.blogspot.com >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> -- >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *[image: http://wso2.com] <http://wso2.com> Senaka Fernando* >>>>>>>>>>>>>> Software Architect; WSO2 Inc.; http://wso2.com >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> * Member; Apache Software Foundation; http://apache.org >>>>>>>>>>>>>> <http://apache.org>E-mail: senaka AT wso2.com >>>>>>>>>>>>>> <http://wso2.com>**P: >>>>>>>>>>>>>> +1 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*; >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *M: +44 782 741 1966 <%2B44%20782%20741%201966> Linked-In: >>>>>>>>>>>>>> http://linkedin.com/in/senakafernando >>>>>>>>>>>>>> <http://linkedin.com/in/senakafernando>*Lean . Enterprise . >>>>>>>>>>>>>> Middleware >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Dimuthu Leelarathne >>>>>>>>>>>>> Architect & Product Lead of App Factory >>>>>>>>>>>>> >>>>>>>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>>>>>>> email: [email protected] >>>>>>>>>>>>> Mobile : 0773661935 >>>>>>>>>>>>> >>>>>>>>>>>>> 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 >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dimuthu Leelarathne >>>>>>>>>>> Architect & Product Lead of App Factory >>>>>>>>>>> >>>>>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>>>>> email: [email protected] >>>>>>>>>>> Mobile : 0773661935 >>>>>>>>>>> >>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Thanks >>>>>>>>>> /subash >>>>>>>>>> >>>>>>>>>> *Subash Chaturanga* >>>>>>>>>> Senior Software Engineer & Lead WSO2 Governance Registry >>>>>>>>>> Platform TG; WSO2 Inc. http://wso2.com >>>>>>>>>> Contact: >>>>>>>>>> email: [email protected] >>>>>>>>>> blog: http://subashsdm.blogspot.com/ >>>>>>>>>> twitter: @subash89 >>>>>>>>>> phone: +9477 2225922 >>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Dimuthu Leelarathne >>>>>>>>> Architect & Product Lead of App Factory >>>>>>>>> >>>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>>> email: [email protected] >>>>>>>>> Mobile : 0773661935 >>>>>>>>> >>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dimuthu Leelarathne >>>>>>>> Architect & Product Lead of App Factory >>>>>>>> >>>>>>>> WSO2, Inc. (http://wso2.com) >>>>>>>> email: [email protected] >>>>>>>> Mobile : 0773661935 >>>>>>>> >>>>>>>> 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 >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> >>>>>> *[image: http://wso2.com] <http://wso2.com> Senaka Fernando* >>>>>> Software Architect; WSO2 Inc.; http://wso2.com >>>>>> >>>>>> >>>>>> >>>>>> * Member; Apache Software Foundation; http://apache.org >>>>>> <http://apache.org>E-mail: senaka AT wso2.com <http://wso2.com>**P: >>>>>> +1 408 754 7388 <%2B1%20408%20754%207388>; ext: 51736*; >>>>>> >>>>>> >>>>>> *M: +44 782 741 1966 <%2B44%20782%20741%201966> Linked-In: >>>>>> http://linkedin.com/in/senakafernando >>>>>> <http://linkedin.com/in/senakafernando>*Lean . Enterprise . >>>>>> Middleware >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks >>>>> /subash >>>>> >>>>> *Subash Chaturanga* >>>>> Senior Software Engineer & Lead WSO2 Governance Registry >>>>> Platform TG; WSO2 Inc. http://wso2.com >>>>> Contact: >>>>> email: [email protected] >>>>> blog: http://subashsdm.blogspot.com/ >>>>> twitter: @subash89 >>>>> phone: +9477 2225922 >>>>> Lean . Enterprise . Middleware >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks >>>> /subash >>>> >>>> *Subash Chaturanga* >>>> Senior Software Engineer & Lead WSO2 Governance Registry >>>> Platform TG; WSO2 Inc. http://wso2.com >>>> Contact: >>>> email: [email protected] >>>> blog: http://subashsdm.blogspot.com/ >>>> twitter: @subash89 >>>> phone: +9477 2225922 >>>> Lean . Enterprise . Middleware >>>> >>> >>> >>> >>> -- >>> Thanks >>> /subash >>> >>> *Subash Chaturanga* >>> Senior Software Engineer & Lead WSO2 Governance Registry >>> Platform TG; WSO2 Inc. http://wso2.com >>> Contact: >>> email: [email protected] >>> blog: http://subashsdm.blogspot.com/ >>> twitter: @subash89 >>> phone: +9477 2225922 >>> Lean . Enterprise . Middleware >>> >> >> >> >> -- >> Dimuthu Leelarathne >> Architect & Product Lead of App Factory >> >> WSO2, Inc. (http://wso2.com) >> email: [email protected] >> Mobile : 0773661935 >> >> Lean . Enterprise . Middleware >> > > > > -- > Thanks > /subash > > *Subash Chaturanga* > Senior Software Engineer & Lead WSO2 Governance Registry > Platform TG; WSO2 Inc. http://wso2.com > Contact: > email: [email protected] > blog: http://subashsdm.blogspot.com/ > twitter: @subash89 > phone: +9477 2225922 > Lean . Enterprise . Middleware > -- Thanks /subash *Subash Chaturanga* Senior Software Engineer & Lead WSO2 Governance Registry Platform TG; WSO2 Inc. http://wso2.com Contact: email: [email protected] blog: http://subashsdm.blogspot.com/ twitter: @subash89 phone: +9477 2225922 Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
