Kirill Tkalenko created IGNITE-23504:
----------------------------------------

             Summary: Add configuration of local and distributed system 
properties
                 Key: IGNITE-23504
                 URL: https://issues.apache.org/jira/browse/IGNITE-23504
             Project: Ignite
          Issue Type: Improvement
            Reporter: Kirill Tkalenko
            Assignee: Kirill Tkalenko


At the moment we do not have a single mechanism for working with system 
properties, both local and distributed.

Since we have a configuration and tools for working with it (for example, cli), 
it is proposed to use it to work with system properties. The user will be able 
to change some property value if he needs to, otherwise the default value will 
be used, which will be set in the code.

For the user it will look something like this (via cli):
{noformat}
[defaultNode]> node config show ignite.system.properties
igniteFirstProperties {
    propertyValue=100
}
igniteSecondProperties {
    propertyValue=lru
}

[defaultNode]> node config show ignite.system.properties.igniteFirstProperties
propertyValue=100

[defaultNode]> cluster config show ignite.system.properties
igniteFirstProperties {
    propertyValue=100
}
igniteSecondProperties {
    propertyValue=lru
}

[defaultNode]> cluster config show 
ignite.system.properties.igniteFirstProperties
propertyValue=100
{noformat}
The changes are the same as when working with named lists.

Technically, this will be implemented through configuration schemes, something 
like this:
{noformat}
@Config
public class SystemDistributedConfigurationSchema {
    @NamedConfigValue
    public SystemPropertyConfigurationSchema properties;
}

@Config
public class SystemPropertyConfigurationSchema {
    @InjectedName
    public String name;

    @Value
    public String propertyValue;
}

@Config
public class SystemLocalConfigurationSchema {
    ...
        
    @NamedConfigValue
    public SystemPropertyConfigurationSchema properties;
}
{noformat}


For consistency, the naming of properties will use camelCase as for 
configuration fields and the corresponding validator will be added.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to