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)

Prio 1(tick)

Prio 1(tick)

A5

Prio 1(tick)

Prio 1(tick)

Prio 1(tick)

(tick)

(error)

Prio 1(tick)

Prio 1(tick)

Prio 1(tick)

(tick)


(error)

Prio 1(tick)

Prio 2(tick)

Prio 1(tick)

(tick)

(tick)

Prio 1(tick)

(tick)

Prio 2(tick)

Prio 1(tick)

Prio 1Prio 1(tick)

Prio 1(tick)

(tick)

(error)

Prio 1(tick)

Prio 1(tick)

Prio 1(error)

(tick)

(tick)

Prio 1(tick)

Prio 1(tick)

Prio 1(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
title
A3) Configuration levels based on content hierarchy(error)(tick)(tick)(tick)

Status
colourGreen
title

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
title

B) Describing configurations

     







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

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

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

Status
colourGreen
title
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
titlePrio 2

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
title
C4) Support of nested parameter groups/deep hierarchies(error)(tick)(error)(error)

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

Status
colourGreen
title
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
title
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
titlePrio 1

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

Status
colourYellow
title
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

(tick)


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
title
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
(tick)
D5) Pluggable storage strategies(error)(error)(error)(tick)

Status
colourGreen
title
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
title

(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)

(error)


E5) Configuration change listener - notification when configuration changes(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
title
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
title

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)