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());