-
-
Notifications
You must be signed in to change notification settings - Fork 189
Open
Labels
enhancementnew features, suggestions, etc.new features, suggestions, etc.in progressIssue is actively being worked uponIssue is actively being worked upon
Milestone
Description
The goal is to replace the Configurator (e.g. org.exist.config.*) with an approach that is less intrusive, leaks less abstractions and is more robust.
Current issues with Configurator:
- Intrusion into the object itself:
- The object must call the Configurator to instantiate itself.
- The object must annotate its members correctly.
- Calling
Configurator.configure(this, config);from the Constructor of an object:- Leaks the
thisfrom the constructor. See Java Concurrency in Practice: 3.2.1 Safe Construction Practices. - May silently fail. i.e. the Object could not be configured, but these errors/exceptions are silently swallowed by the Configurator, resulting in an unconfigured object; Usually due to a coding bug elsewhere.
- Leaks the
org.exist.config.Configuratoris unfinished:- It contains many
//XXX:comments which hide theTODOs. - Error handling is not complete or safe/robust. e.g. the comment:
//XXX: must be exception.
- It contains many
- Does not scale:
- The current approach keeps all configured objects in memory. If you have many groups and users this can rather use up a lot of RAM for objects which may never/rarely be accessed.
Metadata
Metadata
Assignees
Labels
enhancementnew features, suggestions, etc.new features, suggestions, etc.in progressIssue is actively being worked uponIssue is actively being worked upon