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.

...

Conf V2(tick)

(tick)

(tick)

A5

(tick)

(tick)

(tick)

Prio 1(tick)

(error)

Prio 1(tick)

(tick)

(tick)

Prio 2

(tick)


Prio 1(error)

(tick)

(tick)

(tick)

(tick)

(tick)

(tick)

Prio 1(tick)

(tick)

Prio 1(tick)

Prio 1(tick)

Prio 1(tick)

(tick)

(tick)

(tick)

Prio 1(tick)

(error)

(tick)

Prio 1(error)

(tick)

(tick)

Prio 1(tick)

(tick)

(tick)

Prio 1(tick)

Use CaseOSGiConfMgrCSCwcm.io ConfSling CAConfwcm.io CAConf

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 (object/resource-level)

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

(tick)

Status
colourGreen
titlePrio 1

A5) Nesting of configuration levels with parameter inheritance (property-level)(error)(error)(error)(tick)

(tick)


A6) Explicit linking of content with config hierarchy via property in content nodes(error)(tick)(error)(error)
Status
colourGreen
titlePrio 1
A6

(tick)


A7) Declarative linking of content with config hierarchy via configuration(error)(error)(error)(tick)
Status
colourGreen
titlePrio 1
A7

(error)


A8) 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
title
B4) Map parameter type (Key/Value pairs)(error)(error)(error)(tick)

Status
colourYellow
titlePrio 2

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

Status
colourGreen
title
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
colourYellow
title
C2) Access configurations via adaptTo()(error)(tick)(error)(tick)

Status
colourGreen
title
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)(tick)
C10) Access parameters via typed annotation classes(tick)(error)(error)(error)

Status
colourGreen
title
C11) Direct access to configuration parameters in HTL/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
title
C13) Easy access to configuration parameters in OSGi services(tick)(tick)(tick)(tick)

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

(tick)


D) Storing configurations

     







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

Status
colourGreen
title
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(error)

colourGreen
titlePrio 1
(tick)
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
title
E2) Provide GUI editor to edit configurations(tick)(error)(tick)(tick)

Status
colourGreen
titlePrio 1

(tick)

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
title
E5) Configuration change listener - notification when configuration changes(error)(tick)(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
title
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)(error)
H2) Support different configuration hierarchy/persistence strategies for different applications deployed in the same instance(error)(error)(error)(tick)(question)(error)
H3) Placeholders within configuration values to reference other parameters(error)(error)(error)(error)(question)(error)
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
title
H7) Detect "AEM Site root" via configuration (most times the most-inner configuration scope)(error)(error)(error)(tick)
(question)