Apache Sling NoSQL Generic Resource Provider

Clone this repo:
  1. fa101fa SLING-12094 - Use GitHub for the Maven scm.url value by Robert Munteanu · 7 months ago master
  2. f1d659a SLING-11709 - Set up Jira autolinks to all Sling Github projects by Robert Munteanu · 1 year, 1 month ago
  3. 9edc5d5 SLING-11051 - Fixing JavaDoc badge by Dan Klco · 2 years, 4 months ago
  4. 5cf18af SLING-10676 - remove SECURITY.md which is not needed by Bertrand Delacretaz · 2 years, 9 months ago
  5. e4180a0 SLING-10676 - add or update SECURITY.md by Bertrand Delacretaz · 2 years, 10 months ago

Apache Sling

Build Status Test Status Coverage Sonarcloud Status JavaDoc Maven Central Contrib nosql License

Apache Sling NoSQL Generic Resource Provider

This module is part of the Apache Sling project.

Generic implementation of a Sling ResourceProvider that helps writing ResourceProviders using NoSQL databases as persistence.

The generic implementation helps mapping the resource data to document-oriented key-value NoSQL databases like MongoDB or Couchbase.

Features:

  • Defines a simplified “NoSqlAdapter” concept that is implemented for each NoSQL database. It boils down to simple get/put/list operations. Query support is optional.
  • Complete implementation of Resource, ResourceProvider, ResourceProviderFactory and ValueMap based on the NoSqlAdapter
  • “Transaction management” of Sling CRUD (commit/revert methods) is implemented
  • ValueMap supports String, Integer, Long, Double, Date, Calendar and InputStream/byte[] (binary data) and arrays of them. Date/Calendar and binary data is serialized to a string before storing, so the NoSQL databases have not to support them directly.
  • Sends resource notifications via OSGi EventAdmin
  • Provides a “tests” JAR that can be used for integration tests with NoSQL databases to test the own adapter implementation
  • Can be mounted as root provider without any JCR at all