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