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

Reply via email to