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