Author: [email protected]
Date: Tue Oct 4 16:28:52 2011
New Revision: 1441
Log:
[AMDATUCASSANDRA-102] Refactored dynamic service dependencies to add them to
the dm all at once (using a list)
Modified:
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/CassandraConsumerStorageProviderImpl.java
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/CassandraGadgetStorageProviderImpl.java
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/CassandraNonceStorageProviderImpl.java
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
Modified:
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/CassandraConsumerStorageProviderImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/CassandraConsumerStorageProviderImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/CassandraConsumerStorageProviderImpl.java
Tue Oct 4 16:28:52 2011
@@ -36,6 +36,7 @@
import org.amdatu.core.tenant.Tenant;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
@@ -48,17 +49,16 @@
* consumer store stores available Service Consumers used by oAuth; they
represent a particular application
* that invokes an oAuth protected REST service. For oAuth to allow or
disallow that invocation it authenticates
* the Service Consumer that invoked the request by looking up the provided
credentials in this store.
- *
+ *
* @author ivol
*/
public class CassandraConsumerStorageProviderImpl implements
OAuthServiceConsumerRegistry {
// Service dependencies, injected by the dependency manager
private volatile CassandraPersistenceManager m_pm;
private volatile LogService m_logService;
- private volatile Component m_component;
private volatile DependencyManager m_dependencyManager;
private volatile Tenant m_tenant;
-
+
// Column names
private static final String NAME = "name";
private static final String SECRET = "secret";
@@ -74,7 +74,7 @@
/**
* Constructor used by the Unit test.
- *
+ *
* @param pm
* @param logService
*/
@@ -82,23 +82,27 @@
m_pm = pm;
m_logService = logService;
}
-
+
public void init(final Component component) {
- // Add tenant specific service dependencies
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
+ // Add tenant specific service dependencies
String ksFilter = "(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY
+ "=" + m_tenant.getId() + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(CassandraPersistenceManager.class, ksFilter)
.setRequired(true)
.setInstanceBound(true));
String cfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
ConsumerColumnFamilyProvider.CF_CONSUMER + ")";
String cfAvailableFilter = "(&" + ksFilter + cfFilter + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(ColumnFamilyAvailable.class, cfAvailableFilter)
.setRequired(true)
.setInstanceBound(true));
+
+ component.add(dependencies);
}
-
+
public void start() {
m_logService.log(LogService.LOG_INFO,
"Service '" + getClass().getName() + "' started for tenant '" +
m_tenant.getId() + "'");
@@ -251,7 +255,7 @@
* This method is used internally to convert a Map<String, String> to a
single JSON String, such that it can be
* persisted in Cassandra as String value. This way all columns in this
ColumnFamily are stored as String which makes
* using the CassandraPersistenceManager a lot easier.
- *
+ *
* @return JSON expression
*/
private String mapToString(Map<String, String> map) {
Modified:
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/CassandraGadgetStorageProviderImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/CassandraGadgetStorageProviderImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/CassandraGadgetStorageProviderImpl.java
Tue Oct 4 16:28:52 2011
@@ -18,6 +18,7 @@
import static
org.amdatu.cassandra.store.gadget.service.GadgetColumnFamilyProvider.CF_GADGET;
import static
org.amdatu.cassandra.store.gadget.service.GadgetColumnFamilyProvider.CF_GADGETCATEGORY;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashMap;
@@ -34,6 +35,7 @@
import org.amdatu.opensocial.gadgetmanagement.GadgetStorageProvider;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.osgi.service.log.LogService;
/**
@@ -62,9 +64,8 @@
private volatile LogService m_logService;
private volatile DependencyManager m_dependencyManager;
private volatile Tenant m_tenant;
- private volatile Component m_component;
- // Tenant aware service depdendencies
+ // Tenant aware service dependencies
private volatile CassandraPersistenceManager m_pm;
// Locks
@@ -90,10 +91,12 @@
}
public void init(final Component component) {
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
// Add tenant specific service dependencies
// The CassandraPersistenceManager for the keyspace with the same id
as our tenant
String ksFilter = "(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY
+ "=" + m_tenant.getId() + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(CassandraPersistenceManager.class, ksFilter)
.setRequired(true)
.setInstanceBound(true));
@@ -101,7 +104,7 @@
// The ColumnFamilyAvailable for the Gadget CF
String gadgetCfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME + "="
+ GadgetColumnFamilyProvider.CF_GADGET + ")";
String gadgetCfAvailableFilter = "(&" + ksFilter + gadgetCfFilter +
")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(ColumnFamilyAvailable.class, gadgetCfAvailableFilter)
.setRequired(true)
.setInstanceBound(true));
@@ -109,10 +112,12 @@
// The ColumnFamilyAvailable for the Gadget category CF
String categoryCfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME +
"=" + GadgetColumnFamilyProvider.CF_GADGETCATEGORY + ")";
String categoryCfAvailableFilter = "(&" + ksFilter + categoryCfFilter
+ ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(ColumnFamilyAvailable.class, categoryCfAvailableFilter)
.setRequired(true)
.setInstanceBound(true));
+
+ component.add(dependencies);
}
public void start() {
Modified:
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/CassandraNonceStorageProviderImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/CassandraNonceStorageProviderImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/CassandraNonceStorageProviderImpl.java
Tue Oct 4 16:28:52 2011
@@ -15,12 +15,16 @@
*/
package org.amdatu.cassandra.store.nonce.service;
+import java.util.ArrayList;
+import java.util.List;
+
import org.amdatu.auth.oauth.server.OAuthNonceStorageProvider;
import org.amdatu.cassandra.listener.ColumnFamilyAvailable;
import org.amdatu.cassandra.persistencemanager.CassandraPersistenceManager;
import org.amdatu.core.tenant.Tenant;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.osgi.service.log.LogService;
/**
@@ -69,19 +73,23 @@
}
public void init() {
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
// Add tenant specific service dependencies
String ksFilter = "(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY
+ "=" + m_tenant.getId() + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(CassandraPersistenceManager.class, ksFilter)
.setRequired(true)
.setInstanceBound(true));
String cfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
NonceColumnFamilyProvider.CF_NONCE + ")";
String cfAvailableFilter = "(&" + ksFilter + cfFilter + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(ColumnFamilyAvailable.class, cfAvailableFilter)
.setRequired(true)
.setInstanceBound(true));
+
+ m_component.add(dependencies);
}
public void start() {
Modified:
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/CassandraTokenStorageProviderImpl.java
Tue Oct 4 16:28:52 2011
@@ -18,6 +18,7 @@
import static
org.amdatu.cassandra.store.token.service.TokenColumnFamilyProvider.CF_TOKEN;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -31,6 +32,7 @@
import org.amdatu.core.tenant.Tenant;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.ServiceDependency;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
@@ -45,7 +47,6 @@
*/
public class CassandraTokenStorageProviderImpl implements TokenStorageProvider
{
// Tenant unaware service dependencies, injected by the dependency manager
- private volatile Component m_component;
private volatile DependencyManager m_dependencyManager;
private volatile Tenant m_tenant;
private volatile LogService m_logService;
@@ -76,19 +77,23 @@
}
public void init(final Component component) {
+ List<ServiceDependency> dependencies = new
ArrayList<ServiceDependency>();
+
// Add tenant specific service dependencies
String ksFilter = "(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY
+ "=" + m_tenant.getId() + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(CassandraPersistenceManager.class, ksFilter)
.setRequired(true)
.setInstanceBound(true));
String cfFilter = "(" + ColumnFamilyAvailable.FILTER_NAME + "=" +
TokenColumnFamilyProvider.CF_TOKEN + ")";
String cfAvailableFilter = "(&" + ksFilter + cfFilter + ")";
- m_component.add(m_dependencyManager.createServiceDependency()
+ dependencies.add(m_dependencyManager.createServiceDependency()
.setService(ColumnFamilyAvailable.class, cfAvailableFilter)
.setRequired(true)
.setInstanceBound(true));
+
+ component.add(dependencies);
}
public void start() {
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits