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 @@
 [](https://ci-builds.apache.org/job/Sling/job/modules/job/sling-org-apache-sling-nosql-couchbase-resourceprovider/job/master/) [](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider) [](https://sonarcloud.io/dashboard?id=apache_sling-org-apache-sling-nosql-couchbase-resourceprovider) [](https://www.javadoc.io/doc/org.apache.sling/org.apache.sling.nosql.couchbase-resourceprovider) [](https://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.sling%22%20a%3A%22org.apache.sling.nosql.couchbase-resourceprovider%22) [](https://github.com/apache/sling-aggregator/blob/master/docs/status/contrib.md) [](https://github.com/apache/sling-aggregator/blob/master/docs/groups/nosql.md) [](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;
- }
-
-}