This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.nosql.generic-1.1.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-nosql-generic.git
commit 6f719ec60f33407bf4da3f26fd95971379b1fb91 Author: Stefan Seifert <sseif...@apache.org> AuthorDate: Tue Jan 19 17:47:07 2016 +0000 SLING-5437 add connection check for couchbase resource provider define separate NoSqlAdapter methods for creating index definitions, to ensure they are only executed after connection test succeeds set versions to 1.1.0 git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/contrib/nosql/generic@1725576 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 2 +- .../apache/sling/nosql/generic/adapter/AbstractNoSqlAdapter.java | 7 ------- .../sling/nosql/generic/adapter/MetricsNoSqlAdapterWrapper.java | 7 ++++++- .../org/apache/sling/nosql/generic/adapter/NoSqlAdapter.java | 9 ++++++++- .../generic/resource/AbstractNoSqlResourceProviderFactory.java | 1 + .../generic/resource/impl/ValueMapConvertingNoSqlAdapter.java | 5 +++++ .../sling/nosql/generic/simple/provider/SimpleNoSqlAdapter.java | 5 +++++ 7 files changed, 26 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index d9f2288..81d45fe 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ </parent> <artifactId>org.apache.sling.nosql.generic</artifactId> - <version>1.0.1-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> <packaging>bundle</packaging> <name>Apache Sling NoSQL Generic Resource Provider</name> diff --git a/src/main/java/org/apache/sling/nosql/generic/adapter/AbstractNoSqlAdapter.java b/src/main/java/org/apache/sling/nosql/generic/adapter/AbstractNoSqlAdapter.java index d8672e6..38eff2b 100644 --- a/src/main/java/org/apache/sling/nosql/generic/adapter/AbstractNoSqlAdapter.java +++ b/src/main/java/org/apache/sling/nosql/generic/adapter/AbstractNoSqlAdapter.java @@ -20,8 +20,6 @@ package org.apache.sling.nosql.generic.adapter; import java.util.Iterator; -import org.apache.sling.api.resource.LoginException; - import aQute.bnd.annotation.ConsumerType; /** @@ -42,9 +40,4 @@ public abstract class AbstractNoSqlAdapter implements NoSqlAdapter { return null; } - @Override - public void checkConnection() throws LoginException { - // not supported unless it is overwritten explicitly - } - } diff --git a/src/main/java/org/apache/sling/nosql/generic/adapter/MetricsNoSqlAdapterWrapper.java b/src/main/java/org/apache/sling/nosql/generic/adapter/MetricsNoSqlAdapterWrapper.java index 68a8381..319406f 100644 --- a/src/main/java/org/apache/sling/nosql/generic/adapter/MetricsNoSqlAdapterWrapper.java +++ b/src/main/java/org/apache/sling/nosql/generic/adapter/MetricsNoSqlAdapterWrapper.java @@ -95,6 +95,11 @@ public final class MetricsNoSqlAdapterWrapper implements NoSqlAdapter { delegate.checkConnection(); } + @Override + public void createIndexDefinitions() { + delegate.createIndexDefinitions(); + } + private class Metrics { private long startTime; @@ -113,5 +118,5 @@ public final class MetricsNoSqlAdapterWrapper implements NoSqlAdapter { } } - + } diff --git a/src/main/java/org/apache/sling/nosql/generic/adapter/NoSqlAdapter.java b/src/main/java/org/apache/sling/nosql/generic/adapter/NoSqlAdapter.java index d86cd29..fb4d3e9 100644 --- a/src/main/java/org/apache/sling/nosql/generic/adapter/NoSqlAdapter.java +++ b/src/main/java/org/apache/sling/nosql/generic/adapter/NoSqlAdapter.java @@ -78,9 +78,16 @@ public interface NoSqlAdapter { /** * Checks whether the connection to the NoSQL database is possible - * * @throws LoginException in case of any errors */ void checkConnection() throws LoginException; + /** + * Creates index definitions for accessing the NoSQL database. + * This is called every time an adapter instances is created. If the indexes are + * already present it should do nothing. + * It is only called when the {@link #checkConnection()} call succeeds. + */ + void createIndexDefinitions(); + } diff --git a/src/main/java/org/apache/sling/nosql/generic/resource/AbstractNoSqlResourceProviderFactory.java b/src/main/java/org/apache/sling/nosql/generic/resource/AbstractNoSqlResourceProviderFactory.java index c1e7811..47be2fe 100644 --- a/src/main/java/org/apache/sling/nosql/generic/resource/AbstractNoSqlResourceProviderFactory.java +++ b/src/main/java/org/apache/sling/nosql/generic/resource/AbstractNoSqlResourceProviderFactory.java @@ -39,6 +39,7 @@ public abstract class AbstractNoSqlResourceProviderFactory implements ResourcePr public final ResourceProvider getResourceProvider(Map<String, Object> authenticationInfo) throws LoginException { NoSqlAdapter adapter = getNoSqlAdapter(); adapter.checkConnection(); + adapter.createIndexDefinitions(); return new NoSqlResourceProvider(adapter, getEventAdmin()); } diff --git a/src/main/java/org/apache/sling/nosql/generic/resource/impl/ValueMapConvertingNoSqlAdapter.java b/src/main/java/org/apache/sling/nosql/generic/resource/impl/ValueMapConvertingNoSqlAdapter.java index 52ef419..37e3c45 100644 --- a/src/main/java/org/apache/sling/nosql/generic/resource/impl/ValueMapConvertingNoSqlAdapter.java +++ b/src/main/java/org/apache/sling/nosql/generic/resource/impl/ValueMapConvertingNoSqlAdapter.java @@ -169,6 +169,11 @@ class ValueMapConvertingNoSqlAdapter implements NoSqlAdapter { delegate.checkConnection(); } + @Override + public void createIndexDefinitions() { + delegate.createIndexDefinitions(); + } + private static DateFormat getISO8601Format() { return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.US); } diff --git a/src/test/java/org/apache/sling/nosql/generic/simple/provider/SimpleNoSqlAdapter.java b/src/test/java/org/apache/sling/nosql/generic/simple/provider/SimpleNoSqlAdapter.java index 6702e1a..89da8b1 100644 --- a/src/test/java/org/apache/sling/nosql/generic/simple/provider/SimpleNoSqlAdapter.java +++ b/src/test/java/org/apache/sling/nosql/generic/simple/provider/SimpleNoSqlAdapter.java @@ -117,7 +117,12 @@ public class SimpleNoSqlAdapter implements NoSqlAdapter { @Override public void checkConnection() throws LoginException { + // nothing to do + } + @Override + public void createIndexDefinitions() { + // nothing to do } } -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.