Hi Dimuthu,

I too have a small concern about this approach. Before we had the Generic
API, we had an API for SOA assets such as Services, WSDL, Schema and
Policy. This API was based on a common core but designed for the specific
needs of these artifacts. However, this wasn't very useful since when
people started customizing the RXT, the API wasn't very useful and they
started requesting for fixes and also asking for workarounds. The
introduction of the Generic API solved this problem and multiple products
are freely using the same API without ever having to change any method or
use any workaround.

Another benefit is that the Generic API design is proper RESTful. May be
the G-Reg REST API isn't perfect, but this is something we can/should fix.
A Java API OTOH, is not so RESTful, and people will be creating one world
inside Carbon and another outside or in the UIs.

So, how would this wrapper API be different from the SOA asset APIs we had
in the past?

Thanks,
Senaka.


On Thu, Aug 7, 2014 at 5:07 AM, Dimuthu Leelarathne <[email protected]>
wrote:

> Hi Subash,
>
> We are not writing the wrapper for APIs. APIM team is writing wrapper for
> APIs. Similarly data access layer for services will be provided by Greg/AS
> teams. I am thinking that for applications we'll have something like
> "org.wso2.carbon.applications.*". There is nothing appfactory about it, and
> it will be used by all who needs to get info about apps.
>
> thanks,
> dimuthu
>
>
>
> On Thu, Aug 7, 2014 at 9:29 AM, Subash Chaturanga <[email protected]> wrote:
>
>>
>> Hi Dimuthu,
>>
>>
>> On Thu, Aug 7, 2014 at 9:08 AM, Dimuthu Leelarathne <[email protected]>
>> wrote:
>>
>>> Hi Subash,
>>>
>>> That was the conclusion of the discussion. The idea is to provide a data
>>> access layer on top of unified data model. It is similar to the DAOs that
>>> we write on top of a RDBMS, but not the same. Let me explain by example for
>>> applications,
>>>
>>> - There will be one Application object used across the platform for
>>> applications
>>> - Carbon Platform will provide one API for accessing applications. For
>>> example ApplicationNavigator ( A thin wrapper across GenericArtifactManager)
>>>
>>>
>> If it is high level AF specific wrapper interface for governance  API
>> that's fine, and I believe that wrapper API might not able to reusable for
>> AM. Why I asked it was, if that wrapper API has anything meaningful across
>> the platform, that is not yet in governance API, then we can consider it.
>> Does AF has such cases ?
>>
>>
>>
>>> In this way every product will provide their domain model to platform to
>>> build a unified data model and a unified data access model on top of it.
>>>
>>> thanks,
>>> dimuthu
>>>
>>>
>>>
>>> On Thu, Aug 7, 2014 at 8:55 AM, Subash Chaturanga <[email protected]>
>>> wrote:
>>>
>>>> Hi Dimuthu,
>>>> IMHO, the single API for carbon platform to access the unified metadata
>>>> should be the governance API we provide. If it not meets the platform wide
>>>> requirement, we have to fix that.  What are the things forced AF on using a
>>>> wrapper governance API. @Sumedha does AM also uses something as such ?
>>>>
>>>>
>>>> On Thu, Aug 7, 2014 at 8:53 AM, Subash Chaturanga <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi,
>>>>> Done. Updated the JIRA with the latest patch + source. So now the
>>>>> media type format we make mandate would be as follows
>>>>>
>>>>> application/vnd.*.<parent-key>.<child_one_key>.<child_two_key> +
>>>>> <message-format>
>>>>>
>>>>> i.e application/vnd.wso2.application.mobile.android + json where
>>>>>  inheritance goes  from left to right.
>>>>>
>>>>>
>>>>> On Wed, Aug 6, 2014 at 5:37 PM, Senaka Fernando <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi Subash,
>>>>>>
>>>>>> Yes, I think so. I think this is implicitly enforced. So, the
>>>>>> parent-child model can't be setup between arbitrary mediatypes. Because 
>>>>>> if
>>>>>> we start doing that, people can go crazy with it.
>>>>>>
>>>>>> Thanks,
>>>>>> Senaka.
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 6, 2014 at 12:57 PM, Subash Chaturanga <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Senaka,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 6, 2014 at 5:01 PM, Senaka Fernando <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Subash,
>>>>>>>>
>>>>>>>> Awesome! BTW, I still like to know how this parentKey thing works.
>>>>>>>> I thought that it wasn't required to have a parentKey, because it was
>>>>>>>> deducible from the mediatype of the child. Checked your patch, but 
>>>>>>>> that's a
>>>>>>>> binary and not the diff, :(.
>>>>>>>>
>>>>>>>>
>>>>>>> Yes, In fact I am in the process of thinking that too. Initially I
>>>>>>> did it for not users forcing a particular pattern of the mediatype. But
>>>>>>> with our searching model, they have to. +1 for removing parent key as 
>>>>>>> well.
>>>>>>> Will update once done.
>>>>>>>
>>>>>>>
>>>>>>>> Hi Dimuthu,
>>>>>>>>
>>>>>>>> I didn't quite understand what you meant by API for applications
>>>>>>>> and API for services? AFAIU, there is going to be one-single generic 
>>>>>>>> API
>>>>>>>> that works for anything.
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Senaka.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Wed, Aug 6, 2014 at 11:22 AM, Dimuthu Leelarathne <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hi Subash,
>>>>>>>>>
>>>>>>>>> Thanks for the quick implementation.
>>>>>>>>>
>>>>>>>>> It looks enough from App Factory end to achieve what we want. This
>>>>>>>>> will allow us to start right away with unified governance model for
>>>>>>>>> applications. We'll contribute the Application aspect to the platform.
>>>>>>>>> We'll be defining media types for the following and design the API. 
>>>>>>>>> We'll
>>>>>>>>> send you + everybody an open invite for the review session.
>>>>>>>>>
>>>>>>>>> Under Application
>>>>>>>>> - Java WebApp
>>>>>>>>> - Jaggery
>>>>>>>>> - WSO2 Data Services
>>>>>>>>>
>>>>>>>>> From Greg end we'll be needing an API for the following because
>>>>>>>>> they are services.
>>>>>>>>>
>>>>>>>>> JAX-WS
>>>>>>>>> JAX-RS
>>>>>>>>>
>>>>>>>>> thanks,
>>>>>>>>> dimuthu
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Aug 6, 2014 at 3:37 PM, Subash Chaturanga <[email protected]
>>>>>>>>> > wrote:
>>>>>>>>>
>>>>>>>>>> Hi all,
>>>>>>>>>> This is to give a quick update on this.
>>>>>>>>>>
>>>>>>>>>> I have completed the RXT inheritance with what we have so far
>>>>>>>>>> discussed. Developer tested this on turing and following are the set 
>>>>>>>>>> of
>>>>>>>>>> features. To inherit parent attributes in RXT config, there is a 
>>>>>>>>>> attribute
>>>>>>>>>> called "parentKey" which specifies the parent artifact key.
>>>>>>>>>>
>>>>>>>>>>  mediatype
>>>>>>>>>>                             key                         #artifacts
>>>>>>>>>>
>>>>>>>>>>  application/vnd.wso2.application+json
>>>>>>>>>>         applications                      1
>>>>>>>>>>  application/vnd.wso2.application.mobile+json
>>>>>>>>>>     mobileApplications            2
>>>>>>>>>>  application/vnd.wso2.application.mobile.android+json
>>>>>>>>>> androidApplications            4
>>>>>>>>>>
>>>>>>>>>> Features
>>>>>>>>>>
>>>>>>>>>> 1. API level;
>>>>>>>>>> In governance api level once you initiate the governance manager
>>>>>>>>>>  as follows as per above example;
>>>>>>>>>>
>>>>>>>>>>   GenericArtifactManager manager = new
>>>>>>>>>> GenericArtifactManager(registry, "applications");
>>>>>>>>>>
>>>>>>>>>>   - manager.getAllGenericArtifacts();
>>>>>>>>>>   - manager.getAllGenericArtifactsByLifecycle(<lifecycle_name>)
>>>>>>>>>>   -
>>>>>>>>>>  
>>>>>>>>>> manager.getAllGenericArtifactsByLifecycleStatus(<lifecycle_name,<status>)
>>>>>>>>>>   -  manager.findGenericArtifacts(GenericArtifactFilter criteria)
>>>>>>>>>>   - manager.findGenericArtifacts(Map<String, List<String>>
>>>>>>>>>> criteria)
>>>>>>>>>>
>>>>>>>>>> all above searching interfaces will respect to parent/child
>>>>>>>>>> relationship and return results based on that.
>>>>>>>>>>
>>>>>>>>>> 2. In Carbon Mgt console UI:
>>>>>>>>>>    - Artifact List UI
>>>>>>>>>>       Applications List UI will list all 7 applications created,
>>>>>>>>>> while Mobile Application List will show 6 and etc.
>>>>>>>>>>
>>>>>>>>>> 3. In API level, if a user tries to add an artifact that has any
>>>>>>>>>> attribute missing compared to it's parent, GovernanceException 
>>>>>>>>>> thrown.
>>>>>>>>>>
>>>>>>>>>> I have not yet implemented the UI for facilitate this. Because we
>>>>>>>>>> have a feature on RXT define Wizard in Jaggery (ongoing GSoC 
>>>>>>>>>> project),
>>>>>>>>>> hence thought of improving the UI on that front. Hence, current RXT 
>>>>>>>>>> config
>>>>>>>>>> UI does not validate the parent inheritance validation.  But this 
>>>>>>>>>> will be
>>>>>>>>>> pushed eventually for 5.0.0 release.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Please add anything you think lacking in this impl.
>>>>>>>>>>
>>>>>>>>>> @Dimuthu
>>>>>>>>>> You can find the source patch + binary patch on Turing at [1].
>>>>>>>>>>
>>>>>>>>>> [1] -  https://wso2.org/jira/browse/REGISTRY-2252
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Aug 4, 2014 at 4:20 AM, Senaka Fernando <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Subash,
>>>>>>>>>>>
>>>>>>>>>>> Looks good, but, can we change this to the following format,
>>>>>>>>>>> such that it remains compatible with the naming standards.
>>>>>>>>>>>
>>>>>>>>>>> 1. application/vnd.wso2.application+json > name,version
>>>>>>>>>>> 2. application/vnd.wso2.application.mobile+json > mobileType
>>>>>>>>>>> 3. application/vnd.wso2.application.mobile.android+json > apkPath
>>>>>>>>>>>
>>>>>>>>>>> This will still ensure that
>>>>>>>>>>> "application/vnd.wso2.application%+json" will return all 
>>>>>>>>>>> applications, and
>>>>>>>>>>> "application/vnd.wso2.application.mobile%+json" will return all 
>>>>>>>>>>> mobile
>>>>>>>>>>> applications and vice versa. And, if we follow the pattern, we 
>>>>>>>>>>> really need
>>>>>>>>>>> not care whether it is three levels, four levels, or "n" levels 
>>>>>>>>>>> deep.
>>>>>>>>>>>
>>>>>>>>>>> Also, unless the payload will be JSON instead of XML, please
>>>>>>>>>>> keep "+xml" instead of "+json".
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> Senaka.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Aug 3, 2014 at 8:28 PM, Subash Chaturanga <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi,
>>>>>>>>>>>> $subject will allows users to define a parent artifact catalog
>>>>>>>>>>>> through the rxt configuration. This will basically force artifacts 
>>>>>>>>>>>> to
>>>>>>>>>>>> inherit pre-defined set of upstream parent attributes.
>>>>>>>>>>>>
>>>>>>>>>>>> For example, suppose I have 3 RXTs, application, mobile
>>>>>>>>>>>> application and android application. Following is the media types 
>>>>>>>>>>>> and it's
>>>>>>>>>>>> native attributes
>>>>>>>>>>>>
>>>>>>>>>>>> 1. application/vnd.wso2.application+json > name,version
>>>>>>>>>>>> 2. application/vnd.wso2.application/vnd.wso2.application.mobile
>>>>>>>>>>>> +json > mobileType
>>>>>>>>>>>> 3.
>>>>>>>>>>>> application/vnd.wso2.application/vnd.wso2.application.mobile/vnd.wso2.application.mobile.android
>>>>>>>>>>>> +json > apkPath
>>>>>>>>>>>>
>>>>>>>>>>>> ( @Senaka/Dimuthu, we need to finalze the way we define media
>>>>>>>>>>>> types. Please give your feedback on above model for media types for
>>>>>>>>>>>> inherited rxts.)
>>>>>>>>>>>>
>>>>>>>>>>>> Artifact denotes from media type #3 should have all 4
>>>>>>>>>>>> attributes; name,version,mobileType,apkPath. For #2 it should be 
>>>>>>>>>>>> 3.  From
>>>>>>>>>>>> governance API level and from UI, users will force to inherit all 
>>>>>>>>>>>> parent
>>>>>>>>>>>> attributes. And if a certain attribute is Required for a parent, 
>>>>>>>>>>>> it will be
>>>>>>>>>>>> applied for the child nodes as well. Also, since the media types 
>>>>>>>>>>>> can get
>>>>>>>>>>>> lengthy and not kind of human readable, we are planning to stick 
>>>>>>>>>>>> to the
>>>>>>>>>>>> short name mapping for media types which we already have on 
>>>>>>>>>>>> governance API
>>>>>>>>>>>> level.
>>>>>>>>>>>>
>>>>>>>>>>>> And you can search All types of "applications" through the
>>>>>>>>>>>> "application" governance artifact manager, while "android" 
>>>>>>>>>>>> governance
>>>>>>>>>>>> artifact manager will return only android artifacts.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> 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
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *[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
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Dimuthu Leelarathne
>>>>>>>>> Architect & Product Lead of App Factory
>>>>>>>>>
>>>>>>>>> WSO2, Inc. (http://wso2.com)
>>>>>>>>> email: [email protected]
>>>>>>>>> Mobile : 0773661935
>>>>>>>>>
>>>>>>>>> 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
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>>
>>>>>> *[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
>>>>
>>>
>>>
>>>
>>> --
>>> 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
>



-- 


*[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; ext: 51736*;


*M: +44 782 741 1966 Linked-In: http://linkedin.com/in/senakafernando
<http://linkedin.com/in/senakafernando>*Lean . Enterprise . Middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to