Author: sseifert
Date: Wed May 20 15:13:31 2015
New Revision: 1680597

URL: http://svn.apache.org/r1680597
Log:
SLING-4381 simplify couchbase client reference

Modified:
    
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
    
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
    
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java

Modified: 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java?rev=1680597&r1=1680596&r2=1680597&view=diff
==============================================================================
--- 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
 (original)
+++ 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/main/java/org/apache/sling/nosql/couchbase/resourceprovider/impl/CouchbaseNoSqlResourceProviderFactory.java
 Wed May 20 15:13:31 2015
@@ -22,7 +22,6 @@ import java.util.Map;
 
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
@@ -32,13 +31,8 @@ import org.apache.sling.commons.osgi.Pro
 import org.apache.sling.nosql.couchbase.client.CouchbaseClient;
 import org.apache.sling.nosql.generic.adapter.NoSqlAdapter;
 import 
org.apache.sling.nosql.generic.resource.AbstractNoSqlResourceProviderFactory;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceReference;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.event.EventAdmin;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * {@link ResourceProviderFactory} implementation that uses couchbase as
@@ -48,10 +42,11 @@ import org.slf4j.LoggerFactory;
 @Service(value = ResourceProviderFactory.class)
 public class CouchbaseNoSqlResourceProviderFactory extends 
AbstractNoSqlResourceProviderFactory {
 
-    @Property(label = "Couchbase Client ID", description = "ID referencing the 
matching couchbase client configuration and bucket for caching.", value = 
CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID_DEFAULT)
-    static final String COUCHBASE_CLIENT_ID_PROPERTY = "couchbaseClientID";
-    private static final String COUCHBASE_CLIENT_ID_DEFAULT = 
"caravan-resourceprovider-couchbase";
-
+    /**
+     * Couchbase Client ID for Couchbase Resource Provier
+     */
+    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:";
@@ -59,52 +54,21 @@ public class CouchbaseNoSqlResourceProvi
     @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 String couchbaseClientId;
-    private ServiceReference couchbaseClientServiceReference;
     private NoSqlAdapter noSqlAdapter;
 
-    private static final Logger log = 
LoggerFactory.getLogger(CouchbaseNoSqlResourceProviderFactory.class);
-
     @Activate
     private void activate(ComponentContext componentContext, Map<String, 
Object> config) {
-        CouchbaseClient couchbaseClient = null;
-        try {
-            couchbaseClientId = 
PropertiesUtil.toString(config.get(COUCHBASE_CLIENT_ID_PROPERTY),
-                    COUCHBASE_CLIENT_ID_DEFAULT);
-            BundleContext bundleContext = componentContext.getBundleContext();
-            ServiceReference[] serviceReferences = 
bundleContext.getServiceReferences(
-                    CouchbaseClient.class.getName(), "(" + 
CouchbaseClient.CLIENT_ID_PROPERTY + "=" + couchbaseClientId + ")");
-            if (serviceReferences.length == 1) {
-                couchbaseClientServiceReference = serviceReferences[0];
-                couchbaseClient = 
(CouchbaseClient)bundleContext.getService(couchbaseClientServiceReference);
-            }
-            else if (serviceReferences.length > 1) {
-                log.error("Multiple couchbase clients registered for client id 
'{}', caching is disabled.",
-                        couchbaseClientId);
-            }
-            else {
-                log.error("No couchbase clients registered for client id '{}', 
caching is disabled.", couchbaseClientId);
-            }
-        }
-        catch (InvalidSyntaxException ex) {
-            log.error("Invalid service filter, couchbase caching is 
disabled.", ex);
-        }
-
         String cacheKeyPrefix = PropertiesUtil
                 .toString(config.get(CACHE_KEY_PREFIX_PROPERTY), 
CACHE_KEY_PREFIX_DEFAULT);
         noSqlAdapter = new CouchbaseNoSqlAdapter(couchbaseClient, 
cacheKeyPrefix);
     }
 
-    @Deactivate
-    private void deactivate(ComponentContext componentContext) {
-        if (couchbaseClientServiceReference != null) {
-            
componentContext.getBundleContext().ungetService(couchbaseClientServiceReference);
-        }
-    }
-
     @Override
     protected NoSqlAdapter getNoSqlAdapter() {
         return noSqlAdapter;

Modified: 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java?rev=1680597&r1=1680596&r2=1680597&view=diff
==============================================================================
--- 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
 (original)
+++ 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderIT.java
 Wed May 20 15:13:31 2015
@@ -43,7 +43,7 @@ public class CouchbaseNoSqlResourceProvi
         context.registerInjectActivateService(
                 new CouchbaseClientImpl(),
                 ImmutableMap.<String, Object> builder()
-                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, 
"caravan-resourceprovider-couchbase")
+                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, 
CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID)
                         .put("couchbaseHosts", 
System.getProperty("couchbaseHosts", "localhost:8091"))
                         .put("bucketName", System.getProperty("bucketName", 
"resource-test")).build());
 

Modified: 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java?rev=1680597&r1=1680596&r2=1680597&view=diff
==============================================================================
--- 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java
 (original)
+++ 
sling/trunk/contrib/nosql/couchbase-resourceprovider/src/test/java/org/apache/sling/nosql/couchbase/resourceprovider/integration/CouchbaseNoSqlResourceProviderTransactionalIT.java
 Wed May 20 15:13:31 2015
@@ -43,7 +43,7 @@ public class CouchbaseNoSqlResourceProvi
         context.registerInjectActivateService(
                 new CouchbaseClientImpl(),
                 ImmutableMap.<String, Object> builder()
-                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, 
"caravan-resourceprovider-couchbase")
+                        .put(CouchbaseClient.CLIENT_ID_PROPERTY, 
CouchbaseNoSqlResourceProviderFactory.COUCHBASE_CLIENT_ID)
                         .put("couchbaseHosts", 
System.getProperty("couchbaseHosts", "localhost:8091"))
                         .put("bucketName", System.getProperty("bucketName", 
"resource-test")).build());
 


Reply via email to