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

Andi Huber updated ISIS-2039:
-----------------------------
    Description: 
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)

  was:
Goals (proposed):

1) decouple configuration from the rest of the framework infrastructure

2) remove the concept of framework internal configuration services

3) plan for supporting 'Spring Configuration' or 'MicroProfile Configuration 
1.1' via plugins

4) lets have immutable java data classes (config beans) to represent 
configuration instead of key/value maps

5) when PROTOTYPING, allow for download of a configuration in serialized  form 
(text-file), which can be edited offline and reused as we do with layouts


> 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)

Reply via email to