Author: ivol37 at gmail.com
Date: Tue Nov 9 10:00:55 2010
New Revision: 263
Log:
[AMDATU-73] Added keyspace to service registration of ColumnFamilyAvailable
Modified:
trunk/application-bundles/gadget-management/src/main/java/org/amdatu/application/gadgetmanagement/osgi/Activator.java
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/CassandraDaemonServiceListener.java
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/ColumnFamilyProviderListener.java
trunk/platform-bundles/shindig-application/src/main/java/org/amdatu/platform/shindig/application/osgi/Activator.java
trunk/platform-bundles/useradmin-cassandra-store/src/main/java/org/amdatu/platform/useradmin/store/cassandra/osgi/Activator.java
Modified:
trunk/application-bundles/gadget-management/src/main/java/org/amdatu/application/gadgetmanagement/osgi/Activator.java
==============================================================================
---
trunk/application-bundles/gadget-management/src/main/java/org/amdatu/application/gadgetmanagement/osgi/Activator.java
(original)
+++
trunk/application-bundles/gadget-management/src/main/java/org/amdatu/application/gadgetmanagement/osgi/Activator.java
Tue Nov 9 10:00:55 2010
@@ -45,6 +45,7 @@
String keyspaceFilter =
"(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY + "="
+ CassandraPersistenceManager.DEFAULT_KEYSPACE + ")";
+ gadgetFilter = "(&" + gadgetFilter + keyspaceFilter + ")";
manager.add(
createComponent()
.setInterface(new String[]{GadgetManagement.class.getName(),
ResourceProvider.class.getName()}, null)
Modified:
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/CassandraDaemonServiceListener.java
==============================================================================
---
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/CassandraDaemonServiceListener.java
(original)
+++
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/CassandraDaemonServiceListener.java
Tue Nov 9 10:00:55 2010
@@ -22,6 +22,7 @@
import org.amdatu.platform.cassandra.application.CassandraDaemonService;
import org.amdatu.platform.cassandra.listener.ColumnFamilyAvailable;
+import
org.amdatu.platform.cassandra.persistencemanager.CassandraPersistenceManager;
import
org.amdatu.platform.cassandra.persistencemanager.CassandraPersistenceManagerFactory;
import org.apache.cassandra.thrift.CfDef;
import org.apache.cassandra.thrift.InvalidRequestException;
@@ -55,20 +56,22 @@
// for each available keyspace
List<KsDef> keyspaces =
m_daemonService.getCassandraServer().describe_keyspaces();
for (KsDef keyspace : keyspaces) {
- String name = keyspace.getName();
- m_pmFactory.createCassandraPersistenceManager(name);
+ String keyspaceName = keyspace.getName();
+ m_pmFactory.createCassandraPersistenceManager(keyspaceName);
// Now loop over all ColumnFamily's registered in this keyspace
List<CfDef> columnFamilies = keyspace.getCf_defs();
for (CfDef columnFamily : columnFamilies) {
try {
- // Register ColumnFamilyAvailable services
+ // Register ColumnFamilyAvailable services for each
ColumnFamily in this keyspace
ServiceReference[] servRefs =
-
m_bundleContext.getServiceReferences(ColumnFamilyAvailable.class.getName(), "("
- + ColumnFamilyAvailable.FILTER_NAME + "=" +
columnFamily.getName() + ")");
+
m_bundleContext.getServiceReferences(ColumnFamilyAvailable.class.getName(),
"(&("
+ + ColumnFamilyAvailable.FILTER_NAME + "=" +
columnFamily.getName() + ")("
+ + CassandraPersistenceManager.KEYSPACE_AWARE_KEY +
"=" + keyspaceName + "))");
if (servRefs == null || servRefs.length == 0) {
// Service does not yet exist, instantiate it
Dictionary<String, String> serviceProps = new
Hashtable<String, String>();
+
serviceProps.put(CassandraPersistenceManager.KEYSPACE_AWARE_KEY, keyspaceName);
serviceProps.put(ColumnFamilyAvailable.FILTER_NAME, columnFamily.getName());
Component component =
m_dependencyManager.createComponent();
component.setImplementation(ColumnFamilyAvailableImpl.class);
Modified:
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/ColumnFamilyProviderListener.java
==============================================================================
---
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/ColumnFamilyProviderListener.java
(original)
+++
trunk/platform-bundles/cassandra-listener/src/main/java/org/amdatu/platform/cassandra/listener/service/ColumnFamilyProviderListener.java
Tue Nov 9 10:00:55 2010
@@ -50,16 +50,19 @@
String[] ksNames = colDef.getKeyspaces();
if (ksNames != null) {
for (String ksName : ksNames) {
- // Create if it does not yet exist
- if (!m_daemonService.keyspaceExists(ksName)) {
- // Add keyspace and ColumnFamily since they do not
yet exist
- m_daemonService.addKeyspace(ksName);
- m_logService.log(LogService.LOG_INFO, "Keyspace '"
+ ksName + "' added");
- }
-
// Never add ColumnFamily's to Cassandra's system
keyspace, this is a reserved keyspace
if (!Table.SYSTEM_TABLE.equals(ksName)) {
- addOrUpdateColumnFamily(ksName, colDef);
+ // Create if it does not yet exist
+ if (!m_daemonService.keyspaceExists(ksName)) {
+ // Add keyspace and ColumnFamily since they do
not yet exist
+ m_daemonService.addKeyspace(ksName);
+ m_logService.log(LogService.LOG_INFO,
"Keyspace '" + ksName + "' added");
+ }
+
+ // Never add ColumnFamily's to Cassandra's system
keyspace, this is a reserved keyspace
+ if (!Table.SYSTEM_TABLE.equals(ksName)) {
+ addOrUpdateColumnFamily(ksName, colDef);
+ }
}
}
}
@@ -91,7 +94,7 @@
}
private void addOrUpdateColumnFamily(String ksName, ColumnFamilyDefinition
colDef) throws InvalidRequestException,
- TException, NotFoundException {
+ TException, NotFoundException {
String cfName = colDef.getName();
String columnType = colDef.getColumnType().value;
String comparatorType = colDef.getCompareWith().value;
Modified:
trunk/platform-bundles/shindig-application/src/main/java/org/amdatu/platform/shindig/application/osgi/Activator.java
==============================================================================
---
trunk/platform-bundles/shindig-application/src/main/java/org/amdatu/platform/shindig/application/osgi/Activator.java
(original)
+++
trunk/platform-bundles/shindig-application/src/main/java/org/amdatu/platform/shindig/application/osgi/Activator.java
Tue Nov 9 10:00:55 2010
@@ -73,7 +73,7 @@
// Create and register the Gadget store
String gadgetKeyspaceFilter = "(" +
CassandraPersistenceManager.KEYSPACE_AWARE_KEY + "=" +
CassandraPersistenceManager.DEFAULT_KEYSPACE + ")";
- String gadgetCFAvailableFilter = "(" +
ColumnFamilyAvailable.FILTER_NAME + "=" + GadgetStore.CF_GADGET + ")";
+ String gadgetCFAvailableFilter = "(&(" +
ColumnFamilyAvailable.FILTER_NAME + "=" + GadgetStore.CF_GADGET + ")" +
gadgetKeyspaceFilter + ")";
manager.add(
createComponent()
.setImplementation(GadgetStoreImpl.class)
Modified:
trunk/platform-bundles/useradmin-cassandra-store/src/main/java/org/amdatu/platform/useradmin/store/cassandra/osgi/Activator.java
==============================================================================
---
trunk/platform-bundles/useradmin-cassandra-store/src/main/java/org/amdatu/platform/useradmin/store/cassandra/osgi/Activator.java
(original)
+++
trunk/platform-bundles/useradmin-cassandra-store/src/main/java/org/amdatu/platform/useradmin/store/cassandra/osgi/Activator.java
Tue Nov 9 10:00:55 2010
@@ -61,6 +61,7 @@
String keyspaceFilter =
"(" + CassandraPersistenceManager.KEYSPACE_AWARE_KEY + "="
+ CassandraPersistenceManager.DEFAULT_KEYSPACE + ")";
+ roleFilter = "(&" + roleFilter + keyspaceFilter + ")";
// Create and register the CassandraStorageProvider service.
Hashtable<String, String> properties = new Hashtable<String, String>();