This is our manifest for all modules developed in this project.

Semantic Versioning

  • All modules are released following the Semantic versioning rules.
  • This applies to both package versions and bundle versions.
  • We use the same even-odd Versioning strategy as the Apache Sling project (releases always use a even version number for the third digit).

Support multi tenancy and configuration

  • No configuration is just “global”, but can be applied on any configuration level

Minimal configuration and sensible defaults

  • All features should usable “out-of-the-box” without the need of a lot of initial configuration and setup procedures
  • Sensible defaults are applied for all configuration options
  • Optionally relevant features can be configured and extended

Good API Design

  • Good API design leveraging best practices e.g. How To Design A Good API and Why it Matters (Joshua Bloch), Effective Java 2nd Edition (Joshua Bloch), Clean Code (Robert Martin)
  • Export only APIs and SPIs in OSGi, not the implementation
  • Enforce separation of concerns


  • Every user-visible part has to use i18n for translations (author and publish environment)
  • By default we ship with English and German translations


  • Design and implement everything for good testability - unit tests, integration tests, acceptance tests

AEM Product Dependencies

  • Targeted at AEM 6 and up
  • Targeted primary at the Touch UI, only basic support for Classic UI

AEM Update-Safeness

  • No overlays!
  • Do not come into way when upgrading AEM versions or deploying service packs
  • Test early with new AEM major versions

Back to top

Version: 1. Last Published: 2024-05-22.