Properties Service

Registered by Adam Connelly

We need a way of providing properties to the various parts of the application to allow us to configure how certain aspects of it work.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Adam Connelly
Direction:
Needs approval
Assignee:
Adam Connelly
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

We need to provide some way of providing access to properties so that certain parts of the application can be configured. For example, it only makes sense to use one implementation of IVersionProvider, but the design currently allows multiple to be created so that different version formats could be supported.

We could add a service that allows properties to be retrieved that would allow a certain version provider to be selected. Ideally we should be able to specify the properties in at least three places:

  * Via a file in the user settings folder that will apply globally.
  * Via a properties file in the database archive that will apply when running versions in that archive.
  * Via the command line.

The archive properties file would take precedence over the user settings file, and the command line options would take precedence over both.

The reason for wanting to have a properties file in the archive is that it would allow certain properties that must be the same for all versions in the archive to be specified (for example the version provider used).

The properties would initially be in a simple key-value pair format.

There will only be one implementation of the properties service and it will be injectible into components using an MEF Import.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.