Hi Ruwan, The purpose of suggesting to move these default values to CONSTANTS is as follows. Instead of simply setting a raw value to a bean property, by setting it up via a CONSTANT with a meaningful name like DEFAULT_VERSION brings the message that unless you set an alternative value via the yaml file, a default value will be set via this CONSTANT.
It's true that a property like version would change from one release to another. But it remains as a CONSTANT for a particular release which we need to understand in my opinion. Thanks, Dilan. *Dilan U. Ariyaratne* Senior Software Engineer WSO2 Inc. <http://wso2.com/> Mobile: +94766405580 <%2B94766405580> lean . enterprise . middleware On Tue, Nov 29, 2016 at 7:27 AM, Ruwan Abeykoon <[email protected]> wrote: > Hi Dilan, > -1 moving the default value in the properties to constants, since they are > not constants. Most of the values within those defaults will be changed > over the time, when we learn more about the system behavior, over many > release cycles. > > For the propose of readability and maintainability the original code looks > better than the suggestion. > > i.e > @Element(description = "server version") > private String version = "5.2.0"; > > is better than > @Element(description = "server version") > private String version = CarbonConfigurationConstants.DEFAULT_VERSION; > > Cheers, > Ruwan > > On Mon, Nov 28, 2016 at 9:08 PM, Dilan Udara Ariyaratne <[email protected]> > wrote: > >> Hi Danesh, >> >> Referring to the following, >> >> @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"; >> >> ... >> >> } >> >> In a developer's perspective, it would be more meaningful to define any >> default value as a separate CONSTANT in the code level and >> set any bean property similar to above with such a constant for better >> readability. >> >> For ex: >> >> @Configuration(namespace = "wso2.carbon", description = "Carbon >> Configuration Parameters") >> public class CarbonConfiguration { >> >> @Element(description = "value to uniquely identify a server", required = >> true) >> private String id = CarbonConfigurationConstants.DEFAULT_ID; >> @Element(description = "server name") >> private String name = CarbonConfigurationConstants.DEFAULT_NAME; >> @Element(description = "server version") >> private String version = CarbonConfigurationConstants.DEFAULT_VERSION; >> ... >> } >> >> In the meantime, also have the following question. >> >> If all user-configurable properties are not readily available in the >> .yaml file by default, how would a user know which >> properties are configurable and which are not ? >> >> Thanks, >> Dilan. >> >> *Dilan U. Ariyaratne* >> Senior Software Engineer >> WSO2 Inc. <http://wso2.com/> >> Mobile: +94766405580 <%2B94766405580> >> lean . enterprise . middleware >> >> >> On Mon, Nov 28, 2016 at 10:58 AM, Danesh Kuruppu <[email protected]> wrote: >> >>> Hi Rukshan, >>> >>> No. We are going to include this in next kernel release(5.2.0). >>> >>> Thanks >>> Danesh >>> >>> On Mon, Nov 28, 2016 at 10:26 AM, Rukshan Premathunga <[email protected]> >>> wrote: >>> >>>> Hi Danesh, >>>> >>>> Is this feature is available now? if so can you mention the kernel >>>> version please? >>>> >>>> Thanks and Regards >>>> >>>> On Tue, Nov 22, 2016 at 12:22 PM, Danesh Kuruppu <[email protected]> >>>> wrote: >>>> >>>>> Hi Nuwan, >>>>> >>>>> 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. >>>>>> >>>>> >>>>> Please check TransportsConfiguration sample below. We need to mention >>>>> the default values of an array or collection in class constructor as >>>>> below. >>>>> >>>>> @Configuration(namespace = "wso2.transports.netty", description = "Netty >>>>> Transport Configurations") >>>>> public class TransportsConfiguration { >>>>> >>>>> //default values of an array or collection need to mention in class >>>>> constructor >>>>> public TransportsConfiguration() { >>>>> ListenerConfiguration listenerConfiguration = >>>>> ListenerConfiguration(); >>>>> listenerConfigurations = new HashSet<>(); >>>>> listenerConfigurations.add(listenerConfiguration); >>>>> >>>>> SenderConfiguration senderConfiguration = SenderConfiguration(); >>>>> senderConfigurations = new HashSet<>(); >>>>> senderConfigurations.add(senderConfiguration); >>>>> >>>>> transportProperties = new HashSet<>(); >>>>> } >>>>> >>>>> @Element(description = "transport properties") >>>>> private Set<TransportProperty> transportProperties = >>>>> Collections.EMPTY_SET; >>>>> >>>>> @Element(description = "listener configurations") >>>>> private Set<ListenerConfiguration> listenerConfigurations; >>>>> >>>>> @Element(description = "sender configurations") >>>>> private Set<SenderConfiguration> senderConfigurations; >>>>> >>>>> } >>>>> >>>>> >>>>>> Have we thought about secure vault too? >>>>>> >>>>> >>>>> Yes, we resolve all secure valut values and system property values in >>>>> deployment.yaml before generating bean class. >>>>> >>>>> Thanks >>>>> -- >>>>> >>>>> *Danesh Kuruppu* >>>>> Senior Software Engineer | WSO2 >>>>> >>>>> Email: [email protected] >>>>> Mobile: +94 (77) 1690552 >>>>> Web: WSO2 Inc <https://wso2.com/signature> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> [email protected] >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> >>>> -- >>>> Rukshan Chathuranga. >>>> Software Engineer. >>>> WSO2, Inc. >>>> >>> >>> >>> >>> -- >>> >>> *Danesh Kuruppu* >>> Senior Software Engineer | WSO2 >>> >>> Email: [email protected] >>> Mobile: +94 (77) 1690552 >>> Web: WSO2 Inc <https://wso2.com/signature> >>> >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> _______________________________________________ >> Architecture mailing list >> [email protected] >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > > *Ruwan Abeykoon* > *Associate Director/Architect**,* > *WSO2, Inc. http://wso2.com <https://wso2.com/signature> * > *lean.enterprise.middleware.* > > > _______________________________________________ > Architecture mailing list > [email protected] > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > >
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
