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