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
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to