Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The columns "OSGi", "ConfMgr" and "wcm.io Conf" describe if the existing implementations already cover this use case.

The last column "two columns "Sling Conf" and "wcm.io Conf V2" defines if this use cases should be covered by the new solution split up in Sling and wcm.io, and with which priority.

...

Use CaseOSGiConfMgrCSCwcm.io ConfSling Confwcm.io Conf V2

A) Configuration Hierarchy

      

A1) Global Configuration

(tick)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
A2) Default values for global configurations(tick)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
A3) Configuration levels based on content hierarchy(error)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 

A4) Nesting of configuration levels with parameter inheritance

(error)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
A5) Explicit linking of content with config hierarchy via property in content nodes(error)(tick)(error)(error)

Status
colourGreen
titlePrio 1

 
A6) Declarative linking of content with config hierarchy via configuration(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
A7) Declarative linking of content with config hierarchy via pluggable strategies(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 

B) Describing configurations

      
B1) Bundles provide metadata which configuration parameters are available(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

 
B2) Parameter definitions with Parameter Group, Name, Data Type and Default Value(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

 
B3) Multi-valued parameter type (Array)(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

 
B4) Map parameter type (Key/Value pairs)(error)(error)(error)(tick)

status(question)

colourYellow
titlePrio 2
 
B5) Parameter metadata for Edit GUIs like labels, descriptions, list options(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

 
B6) i18n Support for parameter metadata for Edit GUIs(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

 
B7) Define lists of parameter groups (like OSGi factory configs)(tick)(error)(tick)(error)

Status
colourGreen
titlePrio 1

 
B8) Define parameters via typed annotation classes(tick)(error)(error)(error)

Status
colourGreen
titlePrio 1

 
B9) Distinction between technical/infrastructure and business/application parameters(error)(error)(error)(error)

Status
colourYellow
titlePrio 2

 

C) Reading configurations (API)

      
C1) Access configurations via dedicated service interface(tick)(tick)(tick)(error)

Status
colour

Yellow

Green
titlePrio

2

1

 
C2) Access configurations via adaptTo()(error)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
C3) Parameters are divided in groups/sections accessible individually(tick)(tick)(error)(error)

Status
colourGreen
titlePrio 1

 
C4) Support of nested parameter groups/deep hierarchies(error)(tick)(error)(error)

Status
colourYellow
titlePrio 2

 
C5) Support list of parameter groups (like OSGi factory configs)(tick)(tick)(error)(error)

Status
colourGreen
titlePrio 1

 
C6) Support merging of lists of parameter groups along with inheritance(error)(tick)(error)(error)

Status
colourYellow
titlePrio 2

 
C7) Access parameters as key/value maps (Map)(tick)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
C8) Access parameters as ValueMap with easy type conversion(error)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
C9) Access parameters via Resource wrapper(error)(tick)(tick)(error)(question) 
C10) Access parameters via typed annotation classes(tick)(error)(error)(error)

Status
colourGreen
titlePrio 1

 
C11) Direct access to configuration parameters in Sightly bindings(error)(error)(error)(tick)

Status
colourYellow
titlePrio 2

 
C12) Easy access to configuration parameters in Sling Models(error)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
C13) Easy access to configuration parameters in OSGi services(tick)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
C14) Support lowlevel access to other configuration-like resource structures beyond configuration parameter lists (e.g. workflow configurations)(error)(tick)(tick)(error)

Status
colourGreen
titlePrio 1

 

D) Storing configurations

      
D1) Store configuration in repository(tick)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
D2) Store configuration in hierarchies linked to content(error)(tick)(error)(tick)

Status
colourGreen
titlePrio 1

 
D3) Store configuration in folder separate from content like /conf(error)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
D4) Store configuration together with content in /content(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
D5) Pluggable storage strategies(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
D6) Store technical/infrastructure parameter on different location than business/application parameters(error)(error)(error)(error)

Status
colourYellow
titlePrio 2

 

E) Managing Configurations

      
E1) Provide configuration management API for reading and writing configuration(tick)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
E2) Provide GUI editor to edit configurations(tick)(error)(tick)(tick)

 

Status
colourGreen
titlePrio 1

E3) Provide web console plugin for inspecting configurations(tick)(tick)(error)(error)

Status
colourYellow
titlePrio 2

 
E4) Allow to lock parameter values on a certain configuration hierarchy level to disallow overriding it on deeper levels(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
E5) Configuration change listener - notification when configuration changes(error)(error)(error)(error)

Status
colour

Green

Yellow
titlePrio

1

2

 

F) Parameter overriding

      

F1) Allow overriding content-specific parameters via OSGi configuration

(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
F2) Allow overriding content-specific parameters via JVM system environment parameters(error)(error)(error)(tick)

Status
colourGreen
titlePrio 1

 
F3) Allow overriding content-specific parameters via request header (activate only on test instances)(error)(error)(error)(tick)

Status
colourYellow
titlePrio 2

 

G) AEM-specific features

      
G1) Support storing configurations in cq:Page nodes due to support around this (versioning, replication etc.)(error)(tick)(tick)(tick)

 

Status
colourGreen
titlePrio 1

G2) Configuration editor integrated in AEM Touch UI(error)(error)(error)(tick)

 

Status
colourGreen
titlePrio 1

H) Advanced Features

      
H1) Switch configurations depending on Sling Run Modes(tick)(error)(error)(error)(question) 
H2) Support different configuration hierarchy/persistence strategies for different applications deployed in the same instance(error)(error)(error)(tick)(question) 
H3) Placeholders within configuration values to reference other parameters(error)(error)(error)(error)(question) 
H4) Multi tenancy-support(error)(tick)(tick)(tick)

Status
colourGreen
titlePrio 1

 
H5) Multi tenancy-support with full isolation(error)(error)(error)(error)

Status
colourYellow
titlePrio 2

 
H6) Security: Easy protection of configuration via ACLs(tick)(tick)(tick)(tick)(error)

Status
colourGreen
titlePrio 1

 
H7) Detect "AEM Site root" via configuration (most times the most-inner configuration scope)(error)(error)(error)(tick) (question)