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>.

Reply via email to