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 Cases

Use CaseOSGiConfMgrCSCwcm.io Conf
Conf V2
Sling CAConfwcm.io CAConf

A) Configuration Hierarchy

    






A1) Global Configuration

(tick)(tick)(error)(tick)
StatuscolourGreentitlePrio 1

(tick)


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

(tick)


A3) Configuration levels based on content hierarchy(error)(tick)(tick)
status
(tick)
colourGreentitlePrio 1

(tick)


A4) Nesting of configuration levels with parameter inheritance (object/resource-level)

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

(tick)

StatuscolourGreentitlePrio 1A5


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)
statusA6
(error)
colourGreentitlePrio 1A7

(tick)


A7) Declarative linking of content with config hierarchy via configuration(error)(error)(error)(tick)
StatuscolourGreentitlePrio 1

(error)


A8) Declarative linking of content with config hierarchy via pluggable strategies(error)(error)(error)(tick)
StatuscolourGreentitlePrio 1

(tick)


B) Describing configurations

    






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

(tick)


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

(tick)


B3) Multi-valued parameter type (Array)(tick)(error)(tick)
status
(tick)
colourGreentitlePrio 1

(tick)


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

(error)


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

(tick)


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)
StatuscolourGreentitlePrio 1

(tick)


B8) Define parameters via typed annotation classes(tick)(error)(error)
status
(error)
colourGreentitlePrio 1

(tick)


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)
StatuscolourYellowtitlePrio 2


(tick)



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

(error)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(tick)


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

(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)
status
(tick)
colourGreentitlePrio 1

(tick)


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

(tick)


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

(tick)


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

(error)

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

(tick)


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)
StatuscolourGreentitlePrio 1

(tick)


E2) Provide GUI editor to edit configurations(tick)(error)(tick)
status
(tick)
colourtitlePrio 1

(error)

Green

(tick)

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

(tick)


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)
StatuscolourGreentitlePrio 1

(tick)


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

(tick)


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)
status
(tick)
colourGreentitlePrio 1


(tick)

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


(tick)

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)
status
(tick)
colourGreentitlePrio 1

(tick)


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)
StatuscolourGreentitlePrio 1

(tick)


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