Conflate Configuration and Parameters interfaces.

Description

The Parameters interface was created to be a simple, general configuration interface; while the Configuration interface was meant to add more complex configuration items. In practice the additional item was mainly just a fallback configuration. The distinction was somewhat artificial, as methods in Parameters still threw MissingParameterException, a subclass ConfigurationException.

The API can be simplified by combining the two interfaces, leaving one Configuration interface. Configuration fallback should be moved to a wrapper class, so that any configuration can be provided a fallback just by wrapping a class around it. This will provide several benefits:

  • The API will be simpler with one fewer interfaces.

  • Each Configuration implementation will be simpler, as it won't have to worry about managing a fallback.

  • Setting up configuration chains will be easier, as fallbacks can be indicated after a configuration has been created.

Environment

None

Assignee

Garret Wilson

Reporter

Garret Wilson

Labels

None

Fix versions

Priority

Major
Configure