Thanks for the feedback Ruwan. Yes we should do that :-)

On Wed, Jun 15, 2016 at 5:50 PM, Ruwan Abeykoon <[email protected]> wrote:

> Hi Rushmin,
> Can we change
> file path /_system/governance/appmgt/applicationdata/custom-
> property-definitions/*app_type*.json
>
> Reason: it looks nice.
>
> Cheers,
> Ruwan
>
> On Wed, Jun 15, 2016 at 4:53 PM, Rushmin Fernando <[email protected]>
> wrote:
>
>> I have implemented this feature as a slight variation of aforementioned
>> solution #1.
>>
>> So rather than saving the custom property definitions in the RXT itself
>> (as another fields) there is a separate configuration file in the registry.
>>
>> The reason behind this approach is to make sure that automatic UI
>> generation using RXT doesn't break.
>>
>> *How to configure*
>>
>> Add a custom property definition file for the desired app type (e.g.
>> webapp or mobile)
>>
>>   -- The file path should
>> be /_system/governance/appmgt/applicationdata/custom-property-definitions-
>> *app_type*.json
>> (e.g. 
>> /_system/governance/appmgt/applicationdata/custom-property-definitions-webapp.json)
>>
>>   --  The content of the file should be a JSON which should look
>> something like below.
>>
>> *[{"name":"overview_custom1"},{"name":"overview_custom2"}]*
>>
>>
>> *Request / Response payload fragment*
>>
>> {
>>   "name": "app1",
>>   "version": "1.0",
>>   "isDefaultVersion":true,
>>   .
>>   .
>>   .
>>   *"customProperties":[*
>> *    {*
>> *       "name":"overview_custom1",*
>> *       "value":"custom_property_1"*
>> *    }*
>> *  ]*
>> }
>>
>>
>>
>>
>> On Fri, Jun 10, 2016 at 4:55 PM, Rushmin Fernando <[email protected]>
>> wrote:
>>
>>> *Correction*
>>>
>>> If RXTs has the support, we can go for #2, else #1 is a good option.
>>>
>>>
>>> On Fri, Jun 10, 2016 at 4:49 PM, Rushmin Fernando <[email protected]>
>>> wrote:
>>>
>>>> App Manager team had a quick chat on this and came up with the
>>>> following points.
>>>>
>>>> It is better if we can have the first class concepts like app-name,
>>>> context, version etc .. remain fixed.
>>>>
>>>> But like Sagara mentioned, we should make the custom attributes fields
>>>> dynamic in the DTO. For that, we can use a list of CustomProperty objects.
>>>>
>>>> e.g.
>>>>
>>>> AppDTO
>>>> -name
>>>> -version
>>>> -context
>>>> -other first class concepts
>>>> -cutomProperties :: List<CustomProperty>
>>>>
>>>> CustomProperty
>>>> -name
>>>> -value
>>>>
>>>> When populating the DTO, how can we know whether a property is a custom
>>>> property ? *Two options*
>>>>
>>>> 1) Maintaining a special field in the RXT, with the names of the custom
>>>> fields (Dimuthu's idea)
>>>> 2) Marking the registry property with a meta-property. e.g. customField
>>>>
>>>> If RXTs has the support, we can go for #1, else #1 is a good option.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Jun 7, 2016 at 9:44 AM, Dinusha Senanayaka <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi All,
>>>>>
>>>>> We could not go for approach suggested by Sagara due to the reasons
>>>>> explained by Lahiru in previous reply. We could go for what Dimuthu has
>>>>> suggested (keep custom fields in a json string), but it will be difficult
>>>>> to populate UI. Anyway if we cannot keep rxt metadata something like
>>>>> follows we have to go with that approach. Appreciate any other suggestions
>>>>> on this ?
>>>>>
>>>>> <field type="text" required="true" *customField="true"*>
>>>>>          <name>Name</name>
>>>>> </field>
>>>>>
>>>>> Regards,
>>>>> Dinusha.
>>>>>
>>>>> On Fri, May 27, 2016 at 11:21 PM, Lahiru Cooray <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>> (In AppM REST API design we followed the contract first approach
>>>>>> according to [1])
>>>>>>
>>>>>> The main concern is how do we manage an API definition (eg:swagger)
>>>>>> if our
>>>>>> request/response data models are dynamic?
>>>>>> And also in AppM user story there are few domain specific constraints
>>>>>> we need to address so AFAIC our models should be specific.
>>>>>>
>>>>>> So, to cater the $subject one approach would be as Dimuthu has
>>>>>> mentioned, constructing a JSON string with all custom fields
>>>>>> name/value pairs and add that as a value in an RXT field, where we are
>>>>>> aware of the custom attributes. So we can place a property in our DTO to
>>>>>> filter and dynamically add the custom attributes.
>>>>>>
>>>>>>
>>>>>> [1] WSO2 REST APIs Design Guidelines
>>>>>> <https://mail-attachment.googleusercontent.com/attachment/u/1/?ui=2&ik=eeed032778&view=att&th=153cac6e0121d5c7&attid=0.3&disp=inline&realattid=f_imfqigvq2&safe=1&zw&saddbat=ANGjdJ97Zr-Wn0_34Q8gZ93xllw3HjDhqBz_TCvuJEeZblKVlnghpEZoX6H3D6njd1VCmZEG-HTQvjocS7xhODFpbrjvINDTQkO9vtp0-MX0dBysDGBBGBWCXKKa6hKvblsJuYsYWVYO7-MwzuJvGBHk_KkKR3oFQyRGE4yke5n4NYNxnfI07P5eHbb7914r4bhxtXLX8X3m65F7-GYyr42EPpdQOPt1yy-bQ2Yi-Msmb4qlD0Ya4UAGqX7h1FxSFEMLJLJY7cRNsz5QYnXpy3sggp_EWbSyg5QyQqAZN1G5WPx6VeMX-8ibEyIoWYL1rtQsKB0Oi7u52iQDDB3OwIvXFljJdJb-2POsQMPUSPy30m84dgQ_Aqj-eWWQzh-IK-eoHzsYQuaXb87w5Fe7neHW_AQDfRuBXy6rZNeluVOxZPgUnXaTe5X353OYTswQdWCIx9-dw2qpsupxF0ECm_vIHoIQF-oKNUBpHPKQThM0XaKm4IEYxQl-XEt1cYT6lQSM2Xe-pEKgyhPnaBIQN30tIYwDO86LliRALRTDGTnc315abijbbjWbCTEosVlJ3o52QI8t5Eow0mkcT8mhzQpTFFKInPRzwDU3MBsYataoWBnJjhngR47o-DUw7Dwiri5Hyph6FoSw5PvMUJiU>
>>>>>>
>>>>>> On Fri, May 27, 2016 at 10:03 AM, Dimuthu Leelarathne <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hi all,
>>>>>>>
>>>>>>> According to the userstory, I think the custom fields are going to
>>>>>>> be defined per deployment. In that case we can ask the RXT to be 
>>>>>>> modified
>>>>>>> at the deployment time as Sagara suggested. Or else you can construct a
>>>>>>> JSON string with all custom fields name/value pairs and add that as a 
>>>>>>> value
>>>>>>> in an RXT field. I also believe Sagara's approach is more elegant as 
>>>>>>> that
>>>>>>> has inherent support and full-fills the requirement.
>>>>>>>
>>>>>>> thanks,
>>>>>>> Dimuthu
>>>>>>>
>>>>>>> On Thu, May 26, 2016 at 10:35 PM, Sagara Gunathunga <[email protected]
>>>>>>> > wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, May 26, 2016 at 10:36 AM, Dinusha Senanayaka <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> +Chandana
>>>>>>>>>
>>>>>>>>> On Thu, May 26, 2016 at 9:03 PM, Dinusha Senanayaka <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi All,
>>>>>>>>>>
>>>>>>>>>> There are some use cases that publisher UI need to be customized
>>>>>>>>>> by adding new UI fields.  Those fields can be used in the store for
>>>>>>>>>> different use cases (eg; App Price). With the support of Enterprise 
>>>>>>>>>> Store,
>>>>>>>>>> getting this done is very easy. It's just adding new field/s in the 
>>>>>>>>>> RXT and
>>>>>>>>>> few modifications to .hbs file. We don't have to do anything 
>>>>>>>>>> additionally
>>>>>>>>>> to POST/UPDATE/GET  app info with these new fields trough the 
>>>>>>>>>> jaggery APIs.
>>>>>>>>>>
>>>>>>>>>> Requirement is how are we going to do this with the new REST API
>>>>>>>>>> model. We use pre-defined DTO classes for request/response 
>>>>>>>>>> generation with
>>>>>>>>>> the swagger definition. Therefore  publisher users could not add new 
>>>>>>>>>> custom
>>>>>>>>>> fields easily and get them supported through the APIs as previously 
>>>>>>>>>> without
>>>>>>>>>> modifying the code.
>>>>>>>>>>
>>>>>>>>>> One option is, pre-define "customFields" object inside AppDTO
>>>>>>>>>> class and get the users to define custom fields in the RXT with new 
>>>>>>>>>> tag
>>>>>>>>>> called "customFields". So that we could populate value inside the 
>>>>>>>>>> DTO class
>>>>>>>>>> by looking at the fields marked as customFields in the RXT. But this
>>>>>>>>>> requires capability to define some additional property to RXT field 
>>>>>>>>>> in
>>>>>>>>>> addition to name/value. @Registry team, any ideas on whether this is
>>>>>>>>>> possible ?
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> I don't see any issue to solve at the Registry/RXT model level, as
>>>>>>>> you also mentioned once you modify underline RXT to accommodate 
>>>>>>>> additional
>>>>>>>> fields  ES will pickup them easily. If you look at G-Reg REST API wick 
>>>>>>>> also
>>>>>>>> adjust RXT changes automatically.
>>>>>>>>
>>>>>>>> You face to above problem due to pre-defined DTOs, you need to find
>>>>>>>> a solution at that level, better not to use fixed DTOs at all. May be
>>>>>>>> referring to G-Reg REST API implementation will help[1]
>>>>>>>>
>>>>>>>>
>>>>>>>> [1] -
>>>>>>>> https://github.com/wso2/carbon-governance/tree/master/components/governance/org.wso2.carbon.governance.rest.api
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks !
>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Suggestions/feedback are appreciated.
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>> Dinusha.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Dinusha Dilrukshi
>>>>>>>>>> Associate Technical Lead
>>>>>>>>>> WSO2 Inc.: http://wso2.com/
>>>>>>>>>> Mobile: +94725255071
>>>>>>>>>> Blog: http://dinushasblog.blogspot.com/
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Dinusha Dilrukshi
>>>>>>>>> Associate Technical Lead
>>>>>>>>> WSO2 Inc.: http://wso2.com/
>>>>>>>>> Mobile: +94725255071
>>>>>>>>> Blog: http://dinushasblog.blogspot.com/
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Architecture mailing list
>>>>>>>>> [email protected]
>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Sagara Gunathunga
>>>>>>>>
>>>>>>>> Architect; 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
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Dimuthu Leelarathne
>>>>>>> Director, Solutions Architecture
>>>>>>>
>>>>>>> WSO2, Inc. (http://wso2.com)
>>>>>>> email: [email protected]
>>>>>>> Mobile: +94773661935
>>>>>>> Blog: http://muthulee.blogspot.com
>>>>>>>
>>>>>>> Lean . Enterprise . Middleware
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Architecture mailing list
>>>>>>> [email protected]
>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> *Lahiru Cooray*
>>>>>> Software Engineer
>>>>>> WSO2, Inc.;http://wso2.com/
>>>>>> lean.enterprise.middleware
>>>>>>
>>>>>> Mobile: +94 715 654154
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Dinusha Dilrukshi
>>>>> Associate Technical Lead
>>>>> WSO2 Inc.: http://wso2.com/
>>>>> Mobile: +94725255071
>>>>> Blog: http://dinushasblog.blogspot.com/
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *Best Regards*
>>>>
>>>> *Rushmin Fernando*
>>>> *Technical Lead*
>>>>
>>>> WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware
>>>>
>>>> mobile : +94772891266
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> *Best Regards*
>>>
>>> *Rushmin Fernando*
>>> *Technical Lead*
>>>
>>> WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware
>>>
>>> mobile : +94772891266
>>>
>>>
>>>
>>
>>
>> --
>> *Best Regards*
>>
>> *Rushmin Fernando*
>> *Technical Lead*
>>
>> WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware
>>
>> mobile : +94772891266
>>
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
>
> *Ruwan Abeykoon*
> *Associate Director/Architect**,*
> *WSO2, Inc. http://wso2.com <http://wso2.com/> *
> *lean.enterprise.middleware.*
>
> email: [email protected]
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
*Best Regards*

*Rushmin Fernando*
*Technical Lead*

WSO2 Inc. <http://wso2.com/> - Lean . Enterprise . Middleware

mobile : +94772891266
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to