+ IsuruH

On Tue, Jun 19, 2018 at 12:41 PM, Malintha Amarasinghe <malint...@wso2.com>
wrote:

> List of fields planned to be added as of now; kindly let me know if any
> field is missing.
>
> *API*
> name
> context
> version
> apiDefinition
> responseCaching
> isDefaultVersion
> type - (http vs ws)
> transport - (http/https)
> endpointConfig
> endpointSecurity
> corsConfiguration
> authorizationHeader
>
>
> *SubscriptionThrottlePolicy*
> policyName
> defaultLimit (throttling limits)
> stopOnQuotaReach
>
> *ApplicationThrottlePolicy*
> policyName
> defaultLimit (throttling limits)
>
>
> Thanks!
> Malintha
>
> On Tue, Jun 19, 2018 at 12:00 PM, Harsha Kumara <hars...@wso2.com> wrote:
>
>>
>>
>> On Tue, Jun 19, 2018 at 11:45 AM Malintha Amarasinghe <malint...@wso2.com>
>> wrote:
>>
>>> Hi,
>>>
>>> Micro gateway CLI works completely separately to API manager; whenever a
>>> new API is added for a label, whenever there is a change happens to an
>>> existing label there won't be any events published etc like previously. The
>>> CLI needs to regenerate the source build it and push the artifacts to the
>>> deployment and the full process needs to complete. In most occasions, the
>>> CLI can be configured to run periodically to generate sources and do above
>>> job.
>>>
>>> But in this case, most of the time, the CLI will be uselessly generating
>>> sources building it and pushing the artifacts to deployment. Comparatively,
>>> building and pushing artifacts to deployment have a huge overhead compared
>>> to generating sources.
>>>
>>> This effort is to avoid that as much as possible by change-detection;
>>> i.e.
>>>
>>> 1. The CLI will check if any of the required resources has changed vs
>>> the previous build and notify the user after a successful "setup" (source
>>> generate) command using the command line output and the exit code of the
>>> command.
>>> 2. Using the exit code, a user can write a shell script etc to decide
>>> whether he should proceed with "build" or not.
>>>
>>>
>>> *Proposed implementation:*
>>>
>>> API Publisher APIs does not have ETag feature. Even if it is there, the
>>> ETag will be generated for the whole resource. For code generation, we will
>>> be only using few attributes of the resource, hence using a global ETag for
>>> a resource may lead to unnecessary changes for the ETag. Hence the proposed
>>> implementation will be using a CLI-side hash generation for *used
>>> attributes *of the resource (API/Policies) only.
>>>
>>> To mark the attributes which are used for generating the code, a newly
>>> introduced annotation "@Hash" can be used.
>>>
>>> Ex:
>>>
>>> public class APIDetailedDTO extends APIInfoDTO {
>>>
>>>     /**
>>>      * Swagger definition of the APIDetailedDTO which contains details 
>>> about URI templates and scopes\n
>>>      **/
>>>     *@Hash*
>>>     @JsonProperty("apiDefinition")
>>>     public String getApiDefinition() {
>>>         return apiDefinition;
>>>     }
>>>
>>>     public void setApiDefinition(String apiDefinition) {
>>>         this.apiDefinition = apiDefinition;
>>>     }
>>>
>>>
>>>     /**
>>>      * WSDL URL if the APIDetailedDTO is based on a WSDL endpoint\n
>>>      **/
>>>     @JsonProperty("wsdlUri")
>>>     public String getWsdlUri() {
>>>         return wsdlUri;
>>>     }
>>>
>>>     public void setWsdlUri(String wsdlUri) {
>>>         this.wsdlUri = wsdlUri;
>>>     }
>>>
>>>     *@Hash*
>>>     @JsonProperty("responseCaching")
>>>     public String getResponseCaching() {
>>>         return responseCaching;
>>>     }
>>>
>>>
>>>
>>> The methods marked with *@Hash* will be automatically extracted from
>>> the code and will be used to generate the hashes for each resource.
>>>
>>> The generated hashes will be stored inside the CLI's temp folder against
>>> each resources' UUID, which will be used to compare the hash changes
>>> between next runs.
>>>
>> What are the fields which we have added to the hash?
>>
>>>
>>>
>>> Highly appreciate your ideas on this.
>>>
>>> Thanks!
>>> Malintha
>>>
>>>
>>> --
>>> Malintha Amarasinghe
>>> *WSO2, Inc. - lean | enterprise | middleware*
>>> http://wso2.com/
>>>
>>> Mobile : +94 712383306
>>>
>>
>>
>> --
>> Harsha Kumara
>> Associate Technical Lead, WSO2 Inc.
>> Mobile: +94775505618
>> Blog:harshcreationz.blogspot.com
>>
>
>
>
> --
> Malintha Amarasinghe
> *WSO2, Inc. - lean | enterprise | middleware*
> http://wso2.com/
>
> Mobile : +94 712383306
>



-- 
Malintha Amarasinghe
*WSO2, Inc. - lean | enterprise | middleware*
http://wso2.com/

Mobile : +94 712383306
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to