Hi Danesh,

Why are we going to duplicate all user-settable, default configuration
values both at yaml level as well as Java bean level ?
Cannot we make the yaml as the one and only reference point ?

Thanks,
Dilan.


*Dilan U. Ariyaratne*
Senior Software Engineer
WSO2 Inc. <http://wso2.com/>
Mobile: +94766405580 <%2B94766405580>
lean . enterprise . middleware


On Tue, Nov 22, 2016 at 10:19 AM, SajithAR Ariyarathna <sajit...@wso2.com>
wrote:

> Hi Danesh,
>
> Do we really need the @Ignore annotation? IMO, we can ignore frields wich
> are not marked with @Element annotation, thus we don't need a separate
> annotation.
>
> Thanks.
>
> On Mon, Nov 21, 2016 at 11:32 PM, Danesh Kuruppu <dan...@wso2.com> wrote:
>
>> Hi all,
>>
>> In Carbon C5, we are going to introduce new global configuration model
>> where we have only one configuration file for all server configurations.
>> So that user have to maintain only one config file for a server.
>>
>> With New Configuration Model,
>>
>>    - Global configuration file (deployment.yaml) includes minimal sets
>>    of configurations which need to override very often by default (e.g: 
>> server
>>    ports etc).
>>    - All user settable configurations must have default values and they
>>    are burnt into compile codes.
>>    - Any default configuration can overridden by adding the particular
>>    configuration to the global configuration file(deployment.yaml).
>>    - Defining all configurations in the configuration file in not
>>    required. add only if we need to override the default value.
>>    - If configurations are not specified in the configuration file,
>>    values defined in the bean class will apply by default.
>>
>> In global configuration file (deployment.yaml),
>>
>>    - Each component will have their own configurations with a unique
>>    namespace (e.g: wso2.carbon, wso2.transports.netty etc) and it will be a
>>    fragment of deployment.yaml file. Please find the sample file below.
>>    - At runtime, the relevant config bean will be generated by
>>    overriding the default values specified in bean class with values 
>> mentioned
>>    in deployment.yaml file.
>>
>> Sample file looks like,
>>
>>   # Carbon Configuration Parameters
>> wso2.carbon:
>>   id: carbon-kernel
>>   version: 5.2.0-SNAPSHOT
>>   ports:
>>     offset: 0
>>   ...
>>
>>   # Netty Transport Configurations
>> wso2.transports.netty:
>>   listeners:
>>     - id: msf4j-http
>>       host: 127.0.0.1
>>       port: 8080
>>       bossThreadPoolSize: 2
>>       workerThreadPoolSize: 250
>>       parameters:
>>         - name: "executor.workerpool.size"
>>           value: 60
>>
>> ...
>>
>> Along with the above design, we are going to introduce new annotation
>> model to the configuration beans. So each component will have its
>> configuration defined as one or more Java beans annotated with the
>> following annotations
>>
>>    - *org.wso2.carbon.kernel.annotations.Configuration* - *Class level
>>    annotation, This corresponds to a configuration bean to be used by a
>>    component*
>>    - *org.wso2.carbon.kernel.annotations.Element* - *Field level
>>    annotation, This corresponds to a fields of the class*
>>    - *org.wso2.carbon.kernel.annotations.Ignore* - *Field level
>>    annotation, This is to specify that field needs to be ignored when the
>>    configuration is generated*
>>
>> Sample bean class looks like,
>>
>> @Configuration(namespace = "wso2.carbon", description = "Carbon 
>> Configuration Parameters")
>> public class CarbonConfiguration {
>>
>>     @Element(description = "value to uniquely identify a server", required = 
>> true)
>>     private String id = "carbon-kernel";
>>
>>     @Element(description = "server name")
>>     private String name = "WSO2 Carbon Kernel";
>>
>>     @Element(description = "server version")
>>     private String version = "5.2.0";
>>
>>     @Ignore
>>     private String tenant = Constants.DEFAULT_TENANT;
>>
>> ...
>>
>> }
>>
>> So we are going to generate the relevant segment of the configuration
>> file(for documentation purposes) automatically at compile time by reading
>> above annotations and default values.
>>
>> If anyone needs to override the default value, He needs to copy the
>> particular segment of the configuration to the deployment.yaml and change
>> the value.
>>
>> Appreciate your input on this.
>>
>> Thanks
>> --
>>
>> *Danesh Kuruppu*
>> Senior Software Engineer | WSO2
>>
>> Email: dan...@wso2.com
>> Mobile: +94 (77) 1690552
>> Web: WSO2 Inc <https://wso2.com/signature>
>>
>>
>> _______________________________________________
>> Architecture mailing list
>> Architecture@wso2.org
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> Sajith Janaprasad Ariyarathna
> Software Engineer; WSO2, Inc.;  http://wso2.com/
> <https://wso2.com/signature>
>
> _______________________________________________
> Architecture mailing list
> Architecture@wso2.org
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to