Abstract core server logic to interface and make implementation dependent on edition

Description

The core server logic is currently contained in a singleton in the community edition, so it can not be changed to accommodate enterprise-only features without hacking in conditional logic. The server API should be abstracted to an interface and the implementation should be specified in a version-dependent manner. All current server direct references should be updated to reflect the new approach.

Environment

None

Assignee

DerekA

Reporter

DerekA

Labels

None

Components

Fix versions

Priority

Major
Configure