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

Reply via email to