This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-nosql-mongodb-resourceprovider.git

commit 09256704ad416e785e95a72247a01ef6445ce31a
Author: Stefan Seifert <[email protected]>
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@1725576 
13f79535-47bb-0310-9956-ffa450edef68
---
 pom.xml                                            |  4 +-
 .../resourceprovider/impl/MongoDBNoSqlAdapter.java | 56 ++++++++++++----------
 .../integration/IndexCreationIT.java               | 23 ++++-----
 3 files changed, 44 insertions(+), 39 deletions(-)

diff --git a/pom.xml b/pom.xml
index ab83eae..1750693 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>org.apache.sling.nosql.mongodb-resourceprovider</artifactId>
-    <version>1.0.1-SNAPSHOT</version>
+    <version>1.1.0-SNAPSHOT</version>
     <packaging>bundle</packaging>
   
     <name>Apache Sling NoSQL MongoDB Resource Provider</name>
@@ -49,7 +49,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.nosql.generic</artifactId>
-            <version>1.0.1-SNAPSHOT</version>
+            <version>1.1.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
     
diff --git 
a/src/main/java/org/apache/sling/nosql/mongodb/resourceprovider/impl/MongoDBNoSqlAdapter.java
 
b/src/main/java/org/apache/sling/nosql/mongodb/resourceprovider/impl/MongoDBNoSqlAdapter.java
index ab66fc1..9b993e4 100644
--- 
a/src/main/java/org/apache/sling/nosql/mongodb/resourceprovider/impl/MongoDBNoSqlAdapter.java
+++ 
b/src/main/java/org/apache/sling/nosql/mongodb/resourceprovider/impl/MongoDBNoSqlAdapter.java
@@ -66,32 +66,6 @@ public final class MongoDBNoSqlAdapter extends 
AbstractNoSqlAdapter {
     public MongoDBNoSqlAdapter(MongoClient mongoClient, String database, 
String collection) {
         MongoDatabase db = mongoClient.getDatabase(database);
         this.collection = db.getCollection(collection);
-        
-        // create index on parent path field (if it does not exist yet)
-        try {
-            Document parenPathtIndex = new Document(PN_PARENT_PATH, 1);
-            this.collection.createIndex(parenPathtIndex);
-        }
-        catch (DuplicateKeyException ex) {
-            // index already exists, ignore
-        }
-        catch (Throwable ex) {
-            log.error("Unable to create index on " + PN_PARENT_PATH + ": " + 
ex.getMessage(), ex);
-        }
-        
-        // create unique index on path field (if it does not exist yet)
-        try {
-            Document pathIndex = new Document(PN_PATH, 1);
-            IndexOptions idxOptions = new IndexOptions();
-            idxOptions.unique(true);
-            this.collection.createIndex(pathIndex, idxOptions);
-        }
-        catch (DuplicateKeyException ex) {
-            // index already exists, ignore
-        }
-        catch (Throwable ex) {
-            log.error("Unable to create unique index on " + PN_PATH + ": " + 
ex.getMessage(), ex);
-        }
     }
 
     @Override
@@ -156,4 +130,34 @@ public final class MongoDBNoSqlAdapter extends 
AbstractNoSqlAdapter {
             throw new LoginException(e);
         }
     }
+
+    @Override
+    public void createIndexDefinitions() {
+        // create index on parent path field (if it does not exist yet)
+        try {
+            Document parenPathtIndex = new Document(PN_PARENT_PATH, 1);
+            this.collection.createIndex(parenPathtIndex);
+        }
+        catch (DuplicateKeyException ex) {
+            // index already exists, ignore
+        }
+        catch (Throwable ex) {
+            log.error("Unable to create index on " + PN_PARENT_PATH + ": " + 
ex.getMessage(), ex);
+        }
+        
+        // create unique index on path field (if it does not exist yet)
+        try {
+            Document pathIndex = new Document(PN_PATH, 1);
+            IndexOptions idxOptions = new IndexOptions();
+            idxOptions.unique(true);
+            this.collection.createIndex(pathIndex, idxOptions);
+        }
+        catch (DuplicateKeyException ex) {
+            // index already exists, ignore
+        }
+        catch (Throwable ex) {
+            log.error("Unable to create unique index on " + PN_PATH + ": " + 
ex.getMessage(), ex);
+        }
+    }
+
 }
diff --git 
a/src/test/java/org/apache/sling/nosql/mongodb/resourceprovider/integration/IndexCreationIT.java
 
b/src/test/java/org/apache/sling/nosql/mongodb/resourceprovider/integration/IndexCreationIT.java
index e99ec8f..28f1256 100644
--- 
a/src/test/java/org/apache/sling/nosql/mongodb/resourceprovider/integration/IndexCreationIT.java
+++ 
b/src/test/java/org/apache/sling/nosql/mongodb/resourceprovider/integration/IndexCreationIT.java
@@ -21,7 +21,8 @@ package 
org.apache.sling.nosql.mongodb.resourceprovider.integration;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
-import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.List;
 
 import 
org.apache.sling.nosql.mongodb.resourceprovider.impl.MongoDBNoSqlAdapter;
 import org.bson.Document;
@@ -29,6 +30,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 
+import com.google.common.collect.ImmutableList;
 import com.mongodb.MongoClient;
 
 /**
@@ -43,12 +45,14 @@ public class IndexCreationIT {
        private String collection;
                
        @Before
-       public void setUp() {
+       public void setUp() throws Exception {
            String connectionString = System.getProperty("connectionString", 
"localhost:27017");
         database =  System.getProperty("database", "sling") + "_indextest";
         collection = System.getProperty("collection", "resources");
                mongoClient = new MongoClient(connectionString);
                underTest = new MongoDBNoSqlAdapter(mongoClient, database, 
collection);
+               underTest.checkConnection();
+               underTest.createIndexDefinitions();
        }
 
        @After
@@ -61,17 +65,14 @@ public class IndexCreationIT {
        public void testIndexesPresent() {
                assertNotNull(underTest);
                
-               //expecting 2 indexes (_id, parentPath)
-               int expected = 2;
-               int actual = 0;
+               final List<String> expectedIndexNames= 
ImmutableList.<String>of("_id_", "parentPath_1");
                
-               final String[] expectedIndexesNames=  {"_id_", "parentPath_1"};
-               
-               for (Document d : 
mongoClient.getDatabase(database).getCollection(collection).listIndexes()){
-                       assert Arrays.asList(expectedIndexesNames).contains( 
d.get("name") );
-                       actual++;
+               List<String> actualIndexNames = new ArrayList<String>();
+               for (Document d : 
mongoClient.getDatabase(database).getCollection(collection).listIndexes()) {
+                   actualIndexNames.add(d.get("name").toString());
                }
-               assertEquals(expected, actual);
+               
+               assertEquals(expectedIndexNames, actualIndexNames);
        }
 
 }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to