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