mark module as deprecated
diff --git a/.asf.yaml b/.asf.yaml
index b8d35f3..99228fd 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -1,4 +1,10 @@
 github:
+  description: "Apache Sling NoSQL Couchbase Resource Provider (deprecated)"
+  homepage: "https://sling.apache.org/"
+  labels:
+  - "sling"
+  - "java"
+  - "deprecated"
   autolink_jira:
   - "SLING"
   - "OAK"
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 0fa18e5..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,22 +0,0 @@
-<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
-Apache Software Foundation Code of Conduct
-====
-
-Being an Apache project, Apache Sling adheres to the Apache Software Foundation's [Code of Conduct](https://www.apache.org/foundation/policies/conduct.html).
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index ac82a1a..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  ~ KIND, either express or implied.  See the License for the
-  ~ specific language governing permissions and limitations
-  ~ under the License.
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/-->
-Contributing
-====
-
-Thanks for choosing to contribute!
-
-You will find all the necessary details about how you can do this at https://sling.apache.org/contributing.html.
diff --git a/Jenkinsfile b/Jenkinsfile
deleted file mode 100644
index f582519..0000000
--- a/Jenkinsfile
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-slingOsgiBundleBuild()
diff --git a/README.md b/README.md
index 47374db..8e19f60 100644
--- a/README.md
+++ b/README.md
@@ -2,29 +2,8 @@
 
 &#32;[![Build Status](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-org-apache-sling-nosql-couchbase-resourceprovider/job/master/badge/icon)](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-org-apache-sling-nosql-couchbase-resourceprovider/job/master/)&#32;[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider&metric=coverage)](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider)&#32;[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider&metric=alert_status)](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider)&#32;[![JavaDoc](https://www.javadoc.io/badge/org.apache.sling/org.apache.sling.nosql.couchbase-resourceprovider.svg)](https://www.javadoc.io/doc/org.apache.sling/org.apache.sling.nosql.couchbase-resourceprovider)&#32;[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.apache.sling/org.apache.sling.nosql.couchbase-resourceprovider/badge.svg)](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.sling%22%20a%3A%22org.apache.sling.nosql.couchbase-resourceprovider%22)&#32;[![Contrib](https://sling.apache.org/badges/status-contrib.svg)](https://github.com/apache/sling-aggregator/blob/master/docs/status/contrib.md)&#32;[![nosql](https://sling.apache.org/badges/group-nosql.svg)](https://github.com/apache/sling-aggregator/blob/master/docs/groups/nosql.md) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
 
-# Apache Sling NoSQL Couchbase Resource Provider
+# Apache Sling NoSQL Couchbase Resource Provider (deprecated)
 
-This module is part of the [Apache Sling](https://sling.apache.org) project.
+This module is **obsolete**.
 
-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".
-
-Couchbase Server 4.0 with N1QL support is required for this implementation.
-
-
-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
-
-
-Run integration tests
----------------------
-
-To run the integration tests you have to set up a real couchbase server and run the tests with this command line (inserting the correct parameters for couchbase host and bucket):
-
-```
-mvn -Pcouchbase-integration-test -DcouchbaseHosts=localhost:8091 -DbucketName=test integration-test
-```
+For reference or potential bugfix releases use branch [maintenance](https://github.com/apache/sling-org-apache-sling-nosql-couchbase-resourceprovider/tree/maintenance).
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index f401c13..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.sling</groupId>
-        <artifactId>sling</artifactId>
-        <version>26</version>
-        <relativePath />
-    </parent>
-
-    <artifactId>org.apache.sling.nosql.couchbase-resourceprovider</artifactId>
-    <version>1.1.1-SNAPSHOT</version>
-    <packaging>bundle</packaging>
-  
-    <name>Apache Sling NoSQL Couchbase Resource Provider</name>
-    <description>Resource Provider with Couchbase Persistence for Apache Sling.</description>
-  
-    <scm>
-        <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-nosql-couchbase-resourceprovider.git</connection>
-        <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-nosql-couchbase-resourceprovider.git</developerConnection>
-        <url>https://github.com/apache/sling-org-apache-sling-nosql-couchbase-resourceprovider.git</url>
-    </scm>
-
-    <properties>
-        <sling.java.version>7</sling.java.version>
-    </properties>
-  
-    <dependencies>
-  
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.nosql.couchbase-client</artifactId>
-            <version>1.0.2</version>
-            <scope>provided</scope>
-        </dependency>
-    
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.nosql.generic</artifactId>
-            <version>1.1.0</version>
-            <scope>provided</scope>
-        </dependency>
-    
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.osgi</artifactId>
-            <version>2.2.2</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.commons</groupId>
-            <artifactId>commons-lang3</artifactId>
-            <version>3.3.2</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.sling-mock</artifactId>
-            <version>1.5.0</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.testing.logging-mock</artifactId>
-            <version>1.0.0</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.nosql.generic</artifactId>
-            <classifier>tests</classifier>
-            <version>1.1.0</version>
-            <scope>test</scope>
-        </dependency>
-      
-        <dependency>
-            <groupId>javax.jcr</groupId>
-            <artifactId>jcr</artifactId>
-            <version>2.0</version>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-  
-    <build>
-        <plugins>
-    
-          <plugin>
-              <groupId>org.apache.felix</groupId>
-              <artifactId>maven-bundle-plugin</artifactId>
-              <extensions>true</extensions>
-          </plugin>
-    
-          <plugin>
-              <groupId>org.apache.felix</groupId>
-              <artifactId>maven-scr-plugin</artifactId>
-          </plugin>
-    
-          <plugin>
-              <groupId>org.apache.maven.plugins</groupId>
-              <artifactId>maven-surefire-plugin</artifactId>
-              <configuration>
-                  <testFailureIgnore>false</testFailureIgnore>
-                  <includes>
-                      <include>**/*Test.java</include>
-                  </includes>
-                  <excludes>
-                      <exclude>**/*IT.java</exclude>
-                  </excludes>
-              </configuration>
-          </plugin>
-    
-        </plugins>
-        <pluginManagement>
-            <plugins>
-                <plugin>
-                    <!-- Extend RAT configuration from parent pom -->
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <configuration>
-                        <excludes combine.children="append">
-                            <exclude>README.md</exclude>
-                        </excludes>
-                    </configuration>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-    
-    <profiles>
-    
-      <!-- 
-          Profile for Integration tests with a real couchbase server running.
-          You have to set JVM parameters for couchbase host and bucket name, e.g.
-          mvn -Pcouchbase-integration-test -DcouchbaseHosts=localhost:8091 -DbucketName=test integration-test
-      -->
-      <profile>
-        <id>couchbase-integration-test</id>
-        <build>
-          <plugins>
-
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-failsafe-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>integration-test</goal>
-                            <goal>verify</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <includes>
-                        <include>**/*IT.java</include>
-                    </includes>
-                    <excludes>
-                        <exclude>**/*Test.java</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-    
-          </plugins>
-        </build>
-      </profile>
-
-    </profiles>
-  
-</project>
diff --git a/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlAdapter.java b/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlAdapter.java
deleted file mode 100644
index 2b0dd6c..0000000
--- a/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlAdapter.java
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.nosql.couchbase.resourceprovider.impl;
-
-import static com.couchbase.client.java.query.Select.select;
-import static com.couchbase.client.java.query.dsl.Expression.s;
-import static com.couchbase.client.java.query.dsl.Expression.x;
-
-import java.util.Iterator;
-import java.util.regex.Pattern;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.sling.api.resource.LoginException;
-import org.apache.sling.api.resource.ResourceUtil;
-import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
-import org.apache.sling.nosql.couchbase.client.CouchbaseKey;
-import org.apache.sling.nosql.generic.adapter.AbstractNoSqlAdapter;
-import org.apache.sling.nosql.generic.adapter.MultiValueMode;
-import org.apache.sling.nosql.generic.adapter.NoSqlData;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.couchbase.client.java.Bucket;
-import com.couchbase.client.java.document.JsonDocument;
-import com.couchbase.client.java.document.json.JsonObject;
-import com.couchbase.client.java.error.DocumentAlreadyExistsException;
-import com.couchbase.client.java.query.N1qlParams;
-import com.couchbase.client.java.query.N1qlQuery;
-import com.couchbase.client.java.query.N1qlQueryResult;
-import com.couchbase.client.java.query.N1qlQueryRow;
-import com.couchbase.client.java.query.consistency.ScanConsistency;
-
-/**
- * {@link org.apache.sling.nosql.generic.adapter.NoSqlAdapter} implementation for Couchbase.
- */
-public final class CouchbaseNoSqlAdapter extends AbstractNoSqlAdapter {
-
-    private static final String PN_PATH = "path";
-    private static final String PN_PARENT_PATH = "parentPath";
-    private static final String PN_DATA = "data";
-
-    private final CouchbaseClient couchbaseClient;
-    private final String cacheKeyPrefix;
-    
-    private static final N1qlParams N1QL_PARAMS = N1qlParams.build().consistency(ScanConsistency.REQUEST_PLUS);
-
-    private static final Logger log = LoggerFactory.getLogger(CouchbaseNoSqlAdapter.class);
-
-    public CouchbaseNoSqlAdapter(CouchbaseClient couchbaseClient, String cacheKeyPrefix) {
-        this.couchbaseClient = couchbaseClient;
-        this.cacheKeyPrefix = cacheKeyPrefix;
-    }
-
-    @Override
-    public boolean validPath(String path) {
-        return (couchbaseClient != null && couchbaseClient.isEnabled());
-    }
-
-    @Override
-    public NoSqlData get(String path) {
-        Bucket bucket = couchbaseClient.getBucket();
-        String cacheKey = CouchbaseKey.build(path, cacheKeyPrefix);
-        JsonDocument doc = bucket.get(cacheKey);
-        if (doc == null) {
-            return null;
-        }
-        else {
-            JsonObject data = doc.content().getObject(PN_DATA);
-            if (data == null) {
-                return null;
-            }
-            else {
-                return new NoSqlData(path, data.toMap(), MultiValueMode.LISTS);
-            }
-        }
-    }
-
-    @Override
-    public Iterator<NoSqlData> getChildren(String parentPath) {
-        Bucket bucket = couchbaseClient.getBucket();
-        // fetch all direct children of this path
-        N1qlQuery query = N1qlQuery.simple(select("*")
-                .from(couchbaseClient.getBucketName())
-                .where(x(PN_PARENT_PATH).eq(s(parentPath))),
-                N1QL_PARAMS);
-        N1qlQueryResult queryResult = bucket.query(query);
-        handleQueryError(queryResult);
-        final Iterator<N1qlQueryRow> results = queryResult.iterator();
-        return new Iterator<NoSqlData>() {
-            @Override
-            public boolean hasNext() {
-                return results.hasNext();
-            }
-
-            @Override
-            public NoSqlData next() {
-                JsonObject item = results.next().value();
-                JsonObject envelope = item.getObject(couchbaseClient.getBucketName());
-                String path = envelope.getString(PN_PATH);
-                JsonObject data = envelope.getObject(PN_DATA);
-                return new NoSqlData(path, data.toMap(), MultiValueMode.LISTS);
-            }
-
-            @Override
-            public void remove() {
-                throw new UnsupportedOperationException();
-            }
-        };
-    }
-
-    @Override
-    public boolean store(NoSqlData data) {
-        Bucket bucket = couchbaseClient.getBucket();
-        String cacheKey = CouchbaseKey.build(data.getPath(), cacheKeyPrefix);
-
-        JsonObject envelope = JsonObject.create();
-        envelope.put(PN_PATH, data.getPath());
-        envelope.put(PN_DATA, JsonObject.from(data.getProperties(MultiValueMode.LISTS)));
-
-        // for list-children query efficiency store parent path as well
-        String parentPath = ResourceUtil.getParent(data.getPath());
-        if (parentPath != null) {
-            envelope.put(PN_PARENT_PATH, parentPath);
-        }
-        
-        JsonDocument doc = JsonDocument.create(cacheKey, envelope);
-        try {
-            bucket.insert(doc);
-            return true; // created
-        }
-        catch (DocumentAlreadyExistsException ex) {
-            bucket.upsert(doc);
-            return false; // updated
-        }
-    }
-
-    @Override
-    public boolean deleteRecursive(String path) {
-        Bucket bucket = couchbaseClient.getBucket();
-        // fetch all descendants and self for deletion
-        Pattern descendantsAndSelf = Pattern.compile("^" + path + "(/.+)?$");
-        N1qlQuery query = N1qlQuery.simple(select("*")
-                .from(couchbaseClient.getBucketName())
-                .where("REGEXP_LIKE(`" + PN_PATH + "`, '" + descendantsAndSelf.pattern() + "')"),
-                N1QL_PARAMS);
-        N1qlQueryResult queryResult = bucket.query(query);
-        handleQueryError(queryResult);
-        final Iterator<N1qlQueryRow> results = queryResult.iterator();
-        boolean deletedAny = false;
-        while (results.hasNext()) {
-            JsonObject item = results.next().value();
-            JsonObject envelope = item.getObject(couchbaseClient.getBucketName());
-            String itemPath = envelope.getString(PN_PATH);
-            String itemCacheKey = CouchbaseKey.build(itemPath, cacheKeyPrefix);
-            bucket.remove(itemCacheKey);
-            deletedAny = true;
-        }
-        return deletedAny;
-    }
-    
-    private void handleQueryError(N1qlQueryResult queryResult) {
-        if (!queryResult.parseSuccess()) {
-            throw new RuntimeException("Couchbase query parsing error: " + StringUtils.join(queryResult.errors(), "\n"));
-        }
-        if (!queryResult.finalSuccess()) {
-            throw new RuntimeException("Couchbase query error: " + StringUtils.join(queryResult.errors(), "\n"));
-        }
-    }
-
-    @Override
-    public void checkConnection() throws LoginException {
-        // try to access root element to check connection
-        try {
-            Bucket bucket = couchbaseClient.getBucket();
-            String cacheKey = CouchbaseKey.build("/", cacheKeyPrefix);
-            bucket.exists(cacheKey);
-        }
-        catch (Throwable ex) {
-            throw new LoginException(ex);
-        }
-    }
-
-    @Override
-    public void createIndexDefinitions() {
-        // make sure primary index and index on parentPath is present - ignore error if it is already present
-        try {
-            Bucket bucket = couchbaseClient.getBucket();
-            bucket.query(N1qlQuery.simple("CREATE PRIMARY INDEX ON `" + couchbaseClient.getBucketName() + "`"));
-            bucket.query(N1qlQuery.simple("CREATE INDEX " + PN_PARENT_PATH + " ON `" + couchbaseClient.getBucketName() + "`(" + PN_PARENT_PATH + ")"));
-        }
-        catch (Throwable ex) {
-            log.debug("Unable to create/validate couchbase index definitions: " + ex.getMessage(), ex);
-        }
-    }
-
-}
diff --git a/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java b/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
deleted file mode 100644
index a567978..0000000
--- a/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.nosql.couchbase.resourceprovider.impl;
-
-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;
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.api.resource.ResourceProviderFactory;
-import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
-import org.apache.sling.nosql.generic.adapter.MetricsNoSqlAdapterWrapper;
-import org.apache.sling.nosql.generic.adapter.NoSqlAdapter;
-import org.apache.sling.nosql.generic.resource.AbstractNoSqlResourceProviderFactory;
-import org.osgi.service.component.ComponentContext;
-import org.osgi.service.event.EventAdmin;
-import org.slf4j.LoggerFactory;
-
-/**
- * {@link ResourceProviderFactory} implementation that uses couchbase as
- * persistence.
- */
-@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)
-@Property(name = "webconsole.configurationFactory.nameHint", 
-    value = "Root paths: {" + CouchbaseNoSqlResourceProviderFactory.PROVIDER_ROOTS_PROPERTY + "}")
-public final class CouchbaseNoSqlResourceProviderFactory extends AbstractNoSqlResourceProviderFactory {
-
-    /**
-     * Couchbase Client ID for Couchbase Resource Provider
-     */
-    public static final String COUCHBASE_CLIENT_ID = "sling-resourceprovider-couchbase";
-    
-    @Property(label = "Cache Key Prefix", description = "Prefix for caching keys.", value = CouchbaseNoSqlResourceProviderFactory.CACHE_KEY_PREFIX_DEFAULT)
-    static final String CACHE_KEY_PREFIX_PROPERTY = "cacheKeyPrefix";
-    private static final String CACHE_KEY_PREFIX_DEFAULT = "sling-resource:";
-
-    @Property(label = "Root paths", description = "Root paths for resource provider.", cardinality = Integer.MAX_VALUE)
-    static final String PROVIDER_ROOTS_PROPERTY = ResourceProvider.ROOTS;
-
-    @Reference(target = "(" + CouchbaseClient.CLIENT_ID_PROPERTY + "=" + COUCHBASE_CLIENT_ID + ")")
-    private CouchbaseClient couchbaseClient;
-
-    @Reference
-    private EventAdmin eventAdmin;
-
-    private NoSqlAdapter noSqlAdapter;
-
-    @Activate
-    private void activate(ComponentContext componentContext, Map<String, Object> config) {
-        String cacheKeyPrefix = PropertiesUtil.toString(config.get(CACHE_KEY_PREFIX_PROPERTY), CACHE_KEY_PREFIX_DEFAULT);
-        NoSqlAdapter couchbaseAdapter = new CouchbaseNoSqlAdapter(couchbaseClient, cacheKeyPrefix);
-        
-        // enable call logging and metrics for {@link CouchbaseNoSqlAdapter}
-        noSqlAdapter = new MetricsNoSqlAdapterWrapper(couchbaseAdapter, LoggerFactory.getLogger(CouchbaseNoSqlAdapter.class));
-    }
-
-    @Override
-    protected NoSqlAdapter getNoSqlAdapter() {
-        return noSqlAdapter;
-    }
-
-    @Override
-    protected EventAdmin getEventAdmin() {
-        return eventAdmin;
-    }
-
-}
diff --git a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java b/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
deleted file mode 100644
index 9fb8186..0000000
--- a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.nosql.couchbase.resourceprovider.integration;
-
-import java.util.UUID;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.PersistenceException;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
-import org.apache.sling.nosql.couchbase.client.impl.CouchbaseClientImpl;
-import org.apache.sling.nosql.couchbase.resourceprovider.impl.CouchbaseNoSqlResourceProviderFactory;
-import org.apache.sling.nosql.generic.resource.impl.AbstractNoSqlResourceProviderTest;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Test basic ResourceResolver and ValueMap with different data types.
- */
-public class CouchbaseNoSqlResourceProviderIT extends AbstractNoSqlResourceProviderTest {
-
-    private Resource testRoot;
-
-    @Override
-    protected void registerResourceProviderFactory() {
-        context.registerInjectActivateService(new CouchbaseClientImpl(), ImmutableMap.<String, Object>builder()
-                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID)
-                        .put("couchbaseHosts", System.getProperty("couchbaseHosts", "localhost:8091"))
-                        .put("bucketName", System.getProperty("bucketName", "resource-test"))
-                        .build());
-
-        context.registerInjectActivateService(new CouchbaseNoSqlResourceProviderFactory(), ImmutableMap.<String, Object>builder()
-                .put(ResourceProvider.ROOTS, "/test")
-                .build());
-    }
-
-    @Override
-    protected Resource testRoot() {
-        if (this.testRoot == null) {
-            try {
-                Resource root = context.resourceResolver().getResource("/");
-                Resource providerRoot = root.getChild("test");
-                if (providerRoot == null) {
-                    providerRoot = context.resourceResolver().create(root, "test",
-                            ImmutableMap.<String, Object>of(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED));
-                }
-                this.testRoot = context.resourceResolver().create(providerRoot, UUID.randomUUID().toString(),
-                        ImmutableMap.<String, Object>of(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED));
-            }
-            catch (PersistenceException ex) {
-                throw new RuntimeException(ex);
-            }
-        }
-        return this.testRoot;
-    }
-
-}
diff --git a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderRootIT.java b/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderRootIT.java
deleted file mode 100644
index 11e325a..0000000
--- a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderRootIT.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.nosql.couchbase.resourceprovider.integration;
-
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
-import org.apache.sling.nosql.couchbase.client.impl.CouchbaseClientImpl;
-import org.apache.sling.nosql.couchbase.resourceprovider.impl.CouchbaseNoSqlResourceProviderFactory;
-import org.apache.sling.nosql.generic.resource.impl.AbstractNoSqlResourceProviderRootTest;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Test basic ResourceResolver and ValueMap with different data types.
- */
-public class CouchbaseNoSqlResourceProviderRootIT extends AbstractNoSqlResourceProviderRootTest {
-    
-    @Override
-    protected void registerResourceProviderFactoryAsRoot() {
-        context.registerInjectActivateService(new CouchbaseClientImpl(), ImmutableMap.<String, Object>builder()
-                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID)
-                        .put("couchbaseHosts", System.getProperty("couchbaseHosts", "localhost:8091"))
-                        .put("bucketName", System.getProperty("bucketName", "resource-test"))
-                        .build());
-
-        context.registerInjectActivateService(new CouchbaseNoSqlResourceProviderFactory(), ImmutableMap.<String, Object>builder()
-                .put(ResourceProvider.ROOTS, "/")
-                .build());
-    }
-
-}
diff --git a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java b/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java
deleted file mode 100644
index 9fc1a0b..0000000
--- a/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.sling.nosql.couchbase.resourceprovider.integration;
-
-import java.util.UUID;
-
-import org.apache.jackrabbit.JcrConstants;
-import org.apache.sling.api.resource.PersistenceException;
-import org.apache.sling.api.resource.Resource;
-import org.apache.sling.api.resource.ResourceProvider;
-import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
-import org.apache.sling.nosql.couchbase.client.impl.CouchbaseClientImpl;
-import org.apache.sling.nosql.couchbase.resourceprovider.impl.CouchbaseNoSqlResourceProviderFactory;
-import org.apache.sling.nosql.generic.resource.impl.AbstractNoSqlResourceProviderTransactionalTest;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- * Test basic ResourceResolver and ValueMap with different data types.
- */
-public class CouchbaseNoSqlResourceProviderTransactionalIT extends AbstractNoSqlResourceProviderTransactionalTest {
-
-    private Resource testRoot;
-
-    @Override
-    protected void registerResourceProviderFactory() {
-        context.registerInjectActivateService(new CouchbaseClientImpl(),ImmutableMap.<String, Object>builder()
-                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID)
-                        .put("couchbaseHosts", System.getProperty("couchbaseHosts", "localhost:8091"))
-                        .put("bucketName", System.getProperty("bucketName", "resource-test"))
-                        .build());
-
-        context.registerInjectActivateService(new CouchbaseNoSqlResourceProviderFactory(), ImmutableMap.<String, Object>builder()
-                .put(ResourceProvider.ROOTS, "/test")
-                .build());
-    }
-
-    @Override
-    protected Resource testRoot() {
-        if (this.testRoot == null) {
-            try {
-                Resource root = context.resourceResolver().getResource("/");
-                Resource providerRoot = root.getChild("test");
-                if (providerRoot == null) {
-                    providerRoot = context.resourceResolver().create(root,"test",
-                            ImmutableMap.<String, Object>of(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED));
-                }
-                this.testRoot = context.resourceResolver().create(providerRoot, UUID.randomUUID().toString(),
-                        ImmutableMap.<String, Object>of(JcrConstants.JCR_PRIMARYTYPE, JcrConstants.NT_UNSTRUCTURED));
-            }
-            catch (PersistenceException ex) {
-                throw new RuntimeException(ex);
-            }
-        }
-        return this.testRoot;
-    }
-
-}