Author: sseifert
Date: Wed May 20 16:11:14 2015
New Revision: 1680622
URL: http://svn.apache.org/r1680622
Log:
SLING-4381 add READMEs, make factory configuration
Added:
sling/trunk/contrib/nosql/couchbase-client/README.md
sling/trunk/contrib/nosql/couchbase-resourceprovider/README.md
sling/trunk/contrib/nosql/generic/README.md
Modified:
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
Added: sling/trunk/contrib/nosql/couchbase-client/README.md
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-client/README.md?rev=1680622&view=auto
==============================================================================
--- sling/trunk/contrib/nosql/couchbase-client/README.md (added)
+++ sling/trunk/contrib/nosql/couchbase-client/README.md Wed May 20 16:11:14
2015
@@ -0,0 +1,9 @@
+Apache Sling NoSQL Couchbase Client
+===================================
+
+Provides preconfigured clients for accessing a
[Couchbase](http://www.couchbase.com/) NoSQL database.
+
+* Wraps the [Couchbase Java Client
2.x](https://github.com/couchbase/couchbase-java-client) and exports it via OSGi
+* Includes private dependencies of Couchbase Java Client
+* The couchbase access parameters can be configured via OSGi configuration.
+* Multiple couchbase clients can be configured for different couchbase hosts
and/or buckets
Added: sling/trunk/contrib/nosql/couchbase-resourceprovider/README.md
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-resourceprovider/README.md?rev=1680622&view=auto
==============================================================================
--- sling/trunk/contrib/nosql/couchbase-resourceprovider/README.md (added)
+++ sling/trunk/contrib/nosql/couchbase-resourceprovider/README.md Wed May 20
16:11:14 2015
@@ -0,0 +1,13 @@
+Apache Sling NoSQL Couchbase Resource Provider
+==============================================
+
+Sling ResourceProvider implementation that uses
[Couchbase](http://www.couchbase.com/) NoSQL database as persistence.
+
+Based on the "Apache Sling NoSQL Generic Resource Provider" and "Apache Sling
NoSQL Couchbase Client".
+
+
+Configuration on deployment
+---------------------------
+
+* To use the resource provider you have to to create a factory configuration
for "Apache Sling NoSQL Couchbase Client" with clientId =
´sling-resourceprovider-couchbase´ and propert couchbase host and bucket
configuration.
+* Additionally a factory configuration for "Apache Sling NoSQL Couchbase
Resource Provider Factory" defines the root of the resource tree that should be
stored in Couchbase
Modified:
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java?rev=1680622&r1=1680621&r2=1680622&view=diff
==============================================================================
---
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
(original)
+++
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
Wed May 20 16:11:14 2015
@@ -22,6 +22,7 @@ import java.util.Map;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.ConfigurationPolicy;
import org.apache.felix.scr.annotations.Property;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
@@ -38,7 +39,11 @@ import org.osgi.service.event.EventAdmin
* {@link ResourceProviderFactory} implementation that uses couchbase as
* persistence.
*/
-@Component(immediate = true)
+@Component(immediate = true, metatype = true,
+
name="org.apache.sling.nosql.couchbase.resourceprovider.CouchbaseNoSqlResourceProviderFactory.factory.config",
+ label = "Apache Sling NoSQL Couchbase Resource Provider Factory",
+ description = "Defines a resource provider factory with Couchbase
persistence.",
+ configurationFactory = true, policy = ConfigurationPolicy.REQUIRE)
@Service(value = ResourceProviderFactory.class)
public class CouchbaseNoSqlResourceProviderFactory extends
AbstractNoSqlResourceProviderFactory {
Added: sling/trunk/contrib/nosql/generic/README.md
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/generic/README.md?rev=1680622&view=auto
==============================================================================
--- sling/trunk/contrib/nosql/generic/README.md (added)
+++ sling/trunk/contrib/nosql/generic/README.md Wed May 20 16:11:14 2015
@@ -0,0 +1,15 @@
+Apache Sling NoSQL Generic Resource Provider
+============================================
+
+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