| [](https://sling.apache.org) |
| |
|  [](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-org-apache-sling-nosql-generic/job/master/) [](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-org-apache-sling-nosql-generic/job/master/test/?width=800&height=600) [](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-generic) [](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-generic) [](https://www.javadoc.io/doc/org.apache.sling/org-apache-sling-nosql-generic) [](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.sling%22%20a%3A%22org.apache.sling.nosql.generic%22) [](https://github.com/apache/sling-aggregator/blob/master/docs/status/contrib.md) [](https://github.com/apache/sling-aggregator/blob/master/docs/group/nosql.md) [](https://www.apache.org/licenses/LICENSE-2.0) |
| |
| # Apache Sling NoSQL Generic Resource Provider |
| |
| This module is part of the [Apache Sling](https://sling.apache.org) 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 |