You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Andi Huber (JIRA)" <ji...@apache.org> on 2019/06/17 21:08:00 UTC

[jira] [Closed] (ISIS-2039) Redesign of Configuration

     [ https://issues.apache.org/jira/browse/ISIS-2039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andi Huber closed ISIS-2039.
----------------------------
    Resolution: Fixed

Configuration is now bootstrapped by Spring. We pass over all the configuration properties to Isis once Spring's context becomes available. For convenience the key/value pairs that make up the configuration are made accessible via an instance of `IsisConfiguration`. This is a Spring-managed bean, available for injection.

> Redesign of Configuration
> -------------------------
>
>                 Key: ISIS-2039
>                 URL: https://issues.apache.org/jira/browse/ISIS-2039
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Andi Huber
>            Assignee: Andi Huber
>            Priority: Major
>             Fix For: 2.0.0
>
>
> Goals:
> 1) the framework shall provide a singleton instance of IsisConfiguration, which is an interface that provides immutable/readonly access to the config key/value pairs
>  2) the framework provides IsisConfigurationBuilder once during the early-bootstrap phase for r/w access to the config key/value pairs
>  3) first time any module requests access to IsisConfiguration, a singleton instance IsisConfiguration is built using the builder and the builder itself is no longer valid, meaning the framework denies any caller access to the builder
> A benefit of this design is, that it is no longer required to pass around or hold instances of IsisConfiguration, because the framework provides a static means to get the current life-cycle's singletons for configuration.
> Side-effects ...
> 1) cleanup and simplify bootstrapping code
>  2) no more configuration mocking for JUnit tests, instead use new internal Config API
>  3) removal of @PostConstruct methods that take arguments
>  4) removal of apache commons dependencies (really only required by the WebServer tool)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)