Can you also provide an example bean class for the netty listener? That
would make it clear how the bean class and its nested classes would be
annotated when array elements come into play.

Have we thought about secure vault too?

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
>
>


-- 
Nuwan Dias

Software Architect - WSO2, Inc. http://wso2.com
email : nuw...@wso2.com
Phone : +94 777 775 729
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to