Author: [email protected]
Date: Wed Oct 26 10:12:01 2011
New Revision: 1630

Log:
[AMDATUCASSANDRA-118] Fixed CF providers registering their selves for keyspace 
'null'

Modified:
   
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
   
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/osgi/Activator.java
   
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/ConsumerColumnFamilyProvider.java
   
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
   
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/osgi/Activator.java
   
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/GadgetColumnFamilyProvider.java
   
trunk/amdatu-cassandra/cassandra-store-gadget/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
   
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/osgi/Activator.java
   
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/NonceColumnFamilyProvider.java
   
trunk/amdatu-cassandra/cassandra-store-nonce/src/test/java/org/amdatu/cassandra/test/unit/CassandraNonceStoreTest.java
   
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/osgi/Activator.java
   
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/TokenColumnFamilyProvider.java
   
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
   
trunk/amdatu-cassandra/cassandra-store-useradmin/src/main/java/org/amdatu/cassandra/store/useradmin/service/RoleColumnFamilyProvider.java

Modified: 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-listener/src/main/java/org/amdatu/cassandra/listener/service/ColumnFamilyHandler.java
      Wed Oct 26 10:12:01 2011
@@ -58,7 +58,12 @@
                     }
                 }
                 else {
-                    // Add to all available keyspaces
+                    // Add to all available keyspaces
+                    String msg = "Keyspace for ColumnFamilyProvider '" + 
columnFamily.getName() + "' is null. Although this " +
+                                    "feature is still supported in this 
version (adding the CF to all available keyspaces) " +
+                                    "it is recommended not to use it anymore. 
The feature may be removed in future versions. " +
+                                    "For more information, see 
http://jira.amdatu.org/jira/browse/AMDATUCASSANDRA-118";;
+                    m_logService.log(LogService.LOG_WARNING, msg);
                     for (KsDef keyspaceDef : keyspaceDefinitions) {
                         if (!Table.SYSTEM_TABLE.equals(keyspaceDef.getName())) 
{
                             addOrUpdateColumnFamily(m_daemonService, 
keyspaceDef.getName(), columnFamily);

Modified: 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/osgi/Activator.java
       (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/osgi/Activator.java
       Wed Oct 26 10:12:01 2011
@@ -32,7 +32,8 @@
 
     public void init(final BundleContext context, final DependencyManager 
manager) {
         // First define a service that provides the Service consumer 
ColumnFamily we need
-        manager.add(createComponent()
+        manager.add(
+            createAdapterService(Tenant.class, null)
             .setInterface(new String[]{ColumnFamilyProvider.class.getName()}, 
null)
             .setImplementation(ConsumerColumnFamilyProvider.class));
 

Modified: 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/ConsumerColumnFamilyProvider.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/ConsumerColumnFamilyProvider.java
 (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-consumer/src/main/java/org/amdatu/cassandra/store/consumer/service/ConsumerColumnFamilyProvider.java
 Wed Oct 26 10:12:01 2011
@@ -19,21 +19,34 @@
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
 import org.amdatu.cassandra.listener.ColumnFamilyProvider;
+import org.amdatu.core.tenant.Tenant;
 
 public class ConsumerColumnFamilyProvider implements ColumnFamilyProvider {
     /**
      * ColumnFamily that stores the gadget definitions.
      */
     public static final String CF_CONSUMER = "oAuthServiceConsumer";
-    
+
+    // This service is tenant aware
+    private Tenant m_tenant;
+
+    /**
+     * Sets the tenant.
+     * 
+     * @param tenant the tenant
+     */
+    public void setTenant(Tenant tenant) {
+        m_tenant = tenant;
+    }
+
     @Override
     public ColumnFamilyDefinition[] getColumnFamilies() {
         return new ColumnFamilyDefinition[] {
             new ColumnFamilyDefinition(
                 CF_CONSUMER,
-                    null,
-                    ColumnType.STANDARD,
-                    CompareType.BYTESTYPE,
-                    null)};
+                new String[] { m_tenant.getId() }, // Associate the keyspace 
of this CF with the tenant
+                ColumnType.STANDARD,
+                CompareType.BYTESTYPE,
+                null) };
     }
 }

Modified: 
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
        (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-consumer/src/test/java/org/amdatu/cassandra/test/unit/CassandraConsumerStoreTest.java
        Wed Oct 26 10:12:01 2011
@@ -24,6 +24,7 @@
 import org.amdatu.cassandra.store.consumer.service.OAuthServiceConsumerImpl;
 import org.amdatu.cassandra.test.unit.framework.UnitTestFramework;
 import org.amdatu.cassandra.test.unit.framework.hector.HectorUnitTestFramework;
+import org.amdatu.core.tenant.TenantEntity;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -48,8 +49,10 @@
         m_mockedFramework = new HectorUnitTestFramework(false, TEST_KEYSPACE);
 
         // Append column families from our definition to the test keyspace
-        m_embeddedFramework.addColumnFamilies(new 
ConsumerColumnFamilyProvider());
-        m_mockedFramework.addColumnFamilies(new 
ConsumerColumnFamilyProvider());
+        ConsumerColumnFamilyProvider provider = new 
ConsumerColumnFamilyProvider();
+        provider.setTenant(new TenantEntity(TEST_KEYSPACE, TEST_KEYSPACE));
+        m_embeddedFramework.addColumnFamilies(provider);
+        m_mockedFramework.addColumnFamilies(provider);
     }
 
     @Test

Modified: 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/osgi/Activator.java
   (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/osgi/Activator.java
   Wed Oct 26 10:12:01 2011
@@ -13,8 +13,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.amdatu.cassandra.store.gadget.osgi;
-
+package org.amdatu.cassandra.store.gadget.osgi;
+
 import org.amdatu.cassandra.listener.ColumnFamilyProvider;
 import 
org.amdatu.cassandra.store.gadget.service.CassandraGadgetStorageProviderImpl;
 import org.amdatu.cassandra.store.gadget.service.GadgetColumnFamilyProvider;
@@ -24,28 +24,29 @@
 import org.apache.felix.dm.DependencyManager;
 import org.osgi.framework.BundleContext;
 import org.osgi.service.log.LogService;
-
-/**
- * This is the bundle activator for the Cassandra gadget store bundle.
- */
-public class Activator extends DependencyActivatorBase {
-
-    public void init(final BundleContext context, final DependencyManager 
manager) {
-        // First define a service that provides the Gadget ColumnFamily we need
-        manager.add(createComponent()
-            .setInterface(new String[]{ColumnFamilyProvider.class.getName()}, 
null)
-            .setImplementation(GadgetColumnFamilyProvider.class));
-
-        // Create and register the Cassandra Gadget storage provider
-        manager.add(
-            createAdapterService(Tenant.class, null)
-            .setImplementation(CassandraGadgetStorageProviderImpl.class)
-            .setInterface(GadgetStorageProvider.class.getName(), null)
-            
.add(createServiceDependency().setService(LogService.class).setRequired(true))
-           );
-    }
-
-    @Override
-    public void destroy(final BundleContext context, final DependencyManager 
manager) throws Exception {
-    }
-}
+
+/**
+ * This is the bundle activator for the Cassandra gadget store bundle.
+ */
+public class Activator extends DependencyActivatorBase {
+
+    public void init(final BundleContext context, final DependencyManager 
manager) {
+        // First define a service that provides the Gadget ColumnFamily we need
+        manager.add(
+            createAdapterService(Tenant.class, null)
+                .setInterface(new String[] { 
ColumnFamilyProvider.class.getName() }, null)
+                .setImplementation(GadgetColumnFamilyProvider.class));
+
+        // Create and register the Cassandra Gadget storage provider
+        manager.add(
+            createAdapterService(Tenant.class, null)
+                .setImplementation(CassandraGadgetStorageProviderImpl.class)
+                .setInterface(GadgetStorageProvider.class.getName(), null)
+                
.add(createServiceDependency().setService(LogService.class).setRequired(true))
+            );
+    }
+
+    @Override
+    public void destroy(final BundleContext context, final DependencyManager 
manager) throws Exception {
+    }
+}

Modified: 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/GadgetColumnFamilyProvider.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/GadgetColumnFamilyProvider.java
       (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-gadget/src/main/java/org/amdatu/cassandra/store/gadget/service/GadgetColumnFamilyProvider.java
       Wed Oct 26 10:12:01 2011
@@ -13,42 +13,55 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.amdatu.cassandra.store.gadget.service;
-
+package org.amdatu.cassandra.store.gadget.service;
+
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition;
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
 import org.amdatu.cassandra.listener.ColumnFamilyProvider;
-
-/**
- * This service provides the ColumnFamilies 'Gadget' and 'GadgetCategory' for 
the Default keyspace.
- *
- * @author ivol
- */
-public class GadgetColumnFamilyProvider implements ColumnFamilyProvider {
-    /**
-     * ColumnFamily that stores the gadget definitions.
-     */
-    public static final String CF_GADGET = "Gadget";
-
-    /**
-     * ColumnFamily that stores the gadget categories.
-     */
-    public static final String CF_GADGETCATEGORY = "GadgetCategory";
-
-    public ColumnFamilyDefinition[] getColumnFamilies() {
-        return new ColumnFamilyDefinition[] {
-                new ColumnFamilyDefinition(
-                        CF_GADGET,
-                        null,
-                        ColumnType.SUPER,
-                        CompareType.BYTESTYPE,
-                        CompareType.BYTESTYPE),
-                new ColumnFamilyDefinition(
-                        CF_GADGETCATEGORY,
-                        null,
-                        ColumnType.SUPER,
-                        CompareType.BYTESTYPE,
-                        CompareType.BYTESTYPE)};
-    }
-}
+import org.amdatu.core.tenant.Tenant;
+
+/**
+ * This service provides the ColumnFamilies 'Gadget' and 'GadgetCategory' for 
the Default keyspace.
+ * 
+ * @author ivol
+ */
+public class GadgetColumnFamilyProvider implements ColumnFamilyProvider {
+    /**
+     * ColumnFamily that stores the gadget definitions.
+     */
+    public static final String CF_GADGET = "Gadget";
+
+    /**
+     * ColumnFamily that stores the gadget categories.
+     */
+    public static final String CF_GADGETCATEGORY = "GadgetCategory";
+
+    // This service is tenant aware
+    private Tenant m_tenant;
+
+    /**
+     * Sets the tenant.
+     * 
+     * @param tenant the tenant
+     */
+    public void setTenant(Tenant tenant) {
+        m_tenant = tenant;
+    }
+
+    public ColumnFamilyDefinition[] getColumnFamilies() {
+        return new ColumnFamilyDefinition[] {
+            new ColumnFamilyDefinition(
+                CF_GADGET,
+                new String[] { m_tenant.getId() }, // Associate the keyspace 
of this CF with the tenant
+                ColumnType.SUPER,
+                CompareType.BYTESTYPE,
+                CompareType.BYTESTYPE),
+            new ColumnFamilyDefinition(
+                CF_GADGETCATEGORY,
+                new String[] { m_tenant.getId() }, // Associate the keyspace 
of this CF with the tenant
+                ColumnType.SUPER,
+                CompareType.BYTESTYPE,
+                CompareType.BYTESTYPE) };
+    }
+}

Modified: 
trunk/amdatu-cassandra/cassandra-store-gadget/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-gadget/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
    (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-gadget/src/test/java/org/amdatu/cassandra/test/unit/CassandraGadgetStoreTest.java
    Wed Oct 26 10:12:01 2011
@@ -16,7 +16,6 @@
 package org.amdatu.cassandra.test.unit;
 
 import static 
org.amdatu.cassandra.store.gadget.service.GadgetColumnFamilyProvider.CF_GADGET;
-
 import junit.framework.Assert;
 
 import 
org.amdatu.cassandra.persistencemanager.hector.HectorCassandraPersistenceManager;
@@ -24,7 +23,7 @@
 import org.amdatu.cassandra.store.gadget.service.GadgetColumnFamilyProvider;
 import org.amdatu.cassandra.test.unit.framework.UnitTestFramework;
 import org.amdatu.cassandra.test.unit.framework.hector.HectorUnitTestFramework;
-import org.amdatu.cassandra.test.unit.framework.mock.LogServiceMock;
+import org.amdatu.core.tenant.TenantEntity;
 import org.amdatu.opensocial.gadgetmanagement.GadgetCategory;
 import org.amdatu.opensocial.gadgetmanagement.GadgetDefinition;
 import org.junit.BeforeClass;
@@ -44,8 +43,10 @@
         m_mockedFramework = new HectorUnitTestFramework(false, TEST_KEYSPACE);
 
         // Append column families from our definition to the test keyspace
-        m_embeddedFramework.addColumnFamilies(new 
GadgetColumnFamilyProvider());
-        m_mockedFramework.addColumnFamilies(new GadgetColumnFamilyProvider());
+        GadgetColumnFamilyProvider provider = new GadgetColumnFamilyProvider();
+        provider.setTenant(new TenantEntity(TEST_KEYSPACE, TEST_KEYSPACE));
+        m_embeddedFramework.addColumnFamilies(provider);
+        m_mockedFramework.addColumnFamilies(provider);
     }
     
     @Test

Modified: 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/osgi/Activator.java
     (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/osgi/Activator.java
     Wed Oct 26 10:12:01 2011
@@ -32,16 +32,17 @@
 
     public void init(final BundleContext context, final DependencyManager 
manager) {
         // First define a service that provides the Service consumer 
ColumnFamily we need
-        manager.add(createComponent()
-            .setInterface(new String[]{ColumnFamilyProvider.class.getName()}, 
null)
-            .setImplementation(NonceColumnFamilyProvider.class));
+        manager.add(
+            createAdapterService(Tenant.class, null)
+                .setInterface(new String[] { 
ColumnFamilyProvider.class.getName() }, null)
+                .setImplementation(NonceColumnFamilyProvider.class));
 
         // Create and register the Cassandra nonce storage provider
         manager.add(
             createAdapterService(Tenant.class, null)
-            .setImplementation(CassandraNonceStorageProviderImpl.class)
-            .setInterface(OAuthNonceStorageProvider.class.getName(), null)
-            
.add(createServiceDependency().setService(LogService.class).setRequired(true)));
+                .setImplementation(CassandraNonceStorageProviderImpl.class)
+                .setInterface(OAuthNonceStorageProvider.class.getName(), null)
+                
.add(createServiceDependency().setService(LogService.class).setRequired(true)));
     }
 
     @Override

Modified: 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/NonceColumnFamilyProvider.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/NonceColumnFamilyProvider.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-nonce/src/main/java/org/amdatu/cassandra/store/nonce/service/NonceColumnFamilyProvider.java
  Wed Oct 26 10:12:01 2011
@@ -19,6 +19,7 @@
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
 import org.amdatu.cassandra.listener.ColumnFamilyProvider;
+import org.amdatu.core.tenant.Tenant;
 
 public class NonceColumnFamilyProvider implements ColumnFamilyProvider {
     /**
@@ -26,15 +27,27 @@
      */
     public static final String CF_NONCE = "OAuthNonce";
 
+    // This service is tenant aware
+    private Tenant m_tenant;
+
+    /**
+     * Sets the tenant.
+     * 
+     * @param tenant the tenant
+     */
+    public void setTenant(Tenant tenant) {
+        m_tenant = tenant;
+    }
+
     @Override
     public ColumnFamilyDefinition[] getColumnFamilies() {
         return new ColumnFamilyDefinition[] {
             new ColumnFamilyDefinition(
                 CF_NONCE,
-                    null,
-                    ColumnType.STANDARD,
-                    CompareType.BYTESTYPE,
-                    null)};
+                new String[] { m_tenant.getId() }, // Associate the keyspace 
of this CF with the tenant
+                ColumnType.STANDARD,
+                CompareType.BYTESTYPE,
+                null) };
     }
 
 }

Modified: 
trunk/amdatu-cassandra/cassandra-store-nonce/src/test/java/org/amdatu/cassandra/test/unit/CassandraNonceStoreTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-nonce/src/test/java/org/amdatu/cassandra/test/unit/CassandraNonceStoreTest.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-nonce/src/test/java/org/amdatu/cassandra/test/unit/CassandraNonceStoreTest.java
      Wed Oct 26 10:12:01 2011
@@ -21,6 +21,7 @@
 import 
org.amdatu.cassandra.store.nonce.service.CassandraNonceStorageProviderImpl;
 import org.amdatu.cassandra.store.nonce.service.NonceColumnFamilyProvider;
 import org.amdatu.cassandra.test.unit.framework.hector.HectorUnitTestFramework;
+import org.amdatu.core.tenant.TenantEntity;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -38,8 +39,10 @@
         m_mockedFramework = new HectorUnitTestFramework(false, TEST_KEYSPACE);
 
         // Append column families from our definition to the test keyspace
-        m_embeddedFramework.addColumnFamilies(new NonceColumnFamilyProvider());
-        m_mockedFramework.addColumnFamilies(new NonceColumnFamilyProvider());
+        NonceColumnFamilyProvider provider = new NonceColumnFamilyProvider();
+        provider.setTenant(new TenantEntity(TEST_KEYSPACE, TEST_KEYSPACE));
+        m_embeddedFramework.addColumnFamilies(provider);
+        m_mockedFramework.addColumnFamilies(provider);
     }
     
     @Test

Modified: 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/osgi/Activator.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/osgi/Activator.java
     (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/osgi/Activator.java
     Wed Oct 26 10:12:01 2011
@@ -32,16 +32,17 @@
 
     public void init(final BundleContext context, final DependencyManager 
manager) {
         // First define a service that provides the Service consumer 
ColumnFamily we need
-        manager.add(createComponent()
-            .setInterface(new String[]{ColumnFamilyProvider.class.getName()}, 
null)
-            .setImplementation(TokenColumnFamilyProvider.class));
+        manager.add(
+            createAdapterService(Tenant.class, null)
+                .setInterface(new String[] { 
ColumnFamilyProvider.class.getName() }, null)
+                .setImplementation(TokenColumnFamilyProvider.class));
 
         // Create and register the Cassandra token storage provider
         manager.add(
             createAdapterService(Tenant.class, null)
-            .setImplementation(CassandraTokenStorageProviderImpl.class)
-            .setInterface(TokenStorageProvider.class.getName(), null)
-            
.add(createServiceDependency().setService(LogService.class).setRequired(true)));
+                .setImplementation(CassandraTokenStorageProviderImpl.class)
+                .setInterface(TokenStorageProvider.class.getName(), null)
+                
.add(createServiceDependency().setService(LogService.class).setRequired(true)));
     }
 
     @Override

Modified: 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/TokenColumnFamilyProvider.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/TokenColumnFamilyProvider.java
  (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-token/src/main/java/org/amdatu/cassandra/store/token/service/TokenColumnFamilyProvider.java
  Wed Oct 26 10:12:01 2011
@@ -19,21 +19,34 @@
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
 import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
 import org.amdatu.cassandra.listener.ColumnFamilyProvider;
+import org.amdatu.core.tenant.Tenant;
 
 public class TokenColumnFamilyProvider implements ColumnFamilyProvider {
     /**
      * ColumnFamily that stores the tokens.
      */
     public static final String CF_TOKEN = "AmdatuToken";
-    
+
+    // This service is tenant aware
+    private Tenant m_tenant;
+
+    /**
+     * Sets the tenant.
+     * 
+     * @param tenant the tenant
+     */
+    public void setTenant(Tenant tenant) {
+        m_tenant = tenant;
+    }
+
     @Override
     public ColumnFamilyDefinition[] getColumnFamilies() {
         return new ColumnFamilyDefinition[] {
             new ColumnFamilyDefinition(
                 CF_TOKEN,
-                    null,
-                    ColumnType.STANDARD,
-                    CompareType.BYTESTYPE,
-                    null)};
+                new String[] { m_tenant.getId() }, // Associate the keyspace 
of this CF with the tenant
+                ColumnType.STANDARD,
+                CompareType.BYTESTYPE,
+                null) };
     }
 }

Modified: 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
      (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-token/src/test/java/org/amdatu/cassandra/test/unit/CassandraTokenStoreTest.java
      Wed Oct 26 10:12:01 2011
@@ -22,13 +22,14 @@
 import org.amdatu.cassandra.store.token.service.TokenColumnFamilyProvider;
 import org.amdatu.cassandra.test.unit.framework.UnitTestFramework;
 import org.amdatu.cassandra.test.unit.framework.hector.HectorUnitTestFramework;
+import org.amdatu.core.tenant.TenantEntity;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
 public class CassandraTokenStoreTest {
-  private static final String TEST_KEYSPACE = "UnitTestKeyspace";
-    
+    private static final String TEST_KEYSPACE = "UnitTestKeyspace";
+
     private static HectorUnitTestFramework m_embeddedFramework;
     private static HectorUnitTestFramework m_mockedFramework;
 
@@ -40,20 +41,23 @@
         m_mockedFramework = new HectorUnitTestFramework(false, TEST_KEYSPACE);
 
         // Append column families from our definition to the test keyspace
-        m_embeddedFramework.addColumnFamilies(new TokenColumnFamilyProvider());
-        m_mockedFramework.addColumnFamilies(new TokenColumnFamilyProvider());
+        TokenColumnFamilyProvider provider = new TokenColumnFamilyProvider();
+        provider.setTenant(new TenantEntity(TEST_KEYSPACE, TEST_KEYSPACE));
+        m_embeddedFramework.addColumnFamilies(provider);
+        m_mockedFramework.addColumnFamilies(provider);
     }
-    
+
     @Test
     public void testAll() throws Exception {
         // Run the unit test with an embedded and a mocked persistence manager
         test(m_embeddedFramework.getPersistenceManager());
         test(m_mockedFramework.getPersistenceManager());
     }
-    
+
     private void test(HectorCassandraPersistenceManager pm) throws Exception {
         // And the store under test itself
-        CassandraTokenStorageProviderImpl tokenStore = new 
CassandraTokenStorageProviderImpl(pm, UnitTestFramework.createLogService());
+        CassandraTokenStorageProviderImpl tokenStore =
+            new CassandraTokenStorageProviderImpl(pm, 
UnitTestFramework.createLogService());
 
         // OK, I agree, this will not be the most complex unit test...
         String key = "i_am_the_token";

Modified: 
trunk/amdatu-cassandra/cassandra-store-useradmin/src/main/java/org/amdatu/cassandra/store/useradmin/service/RoleColumnFamilyProvider.java
==============================================================================
--- 
trunk/amdatu-cassandra/cassandra-store-useradmin/src/main/java/org/amdatu/cassandra/store/useradmin/service/RoleColumnFamilyProvider.java
   (original)
+++ 
trunk/amdatu-cassandra/cassandra-store-useradmin/src/main/java/org/amdatu/cassandra/store/useradmin/service/RoleColumnFamilyProvider.java
   Wed Oct 26 10:12:01 2011
@@ -15,11 +15,11 @@
  */
 package org.amdatu.cassandra.store.useradmin.service;
 
-import org.amdatu.cassandra.listener.ColumnFamilyDefinition;
-import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
-import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
-import org.amdatu.cassandra.listener.ColumnFamilyProvider;
-import org.amdatu.core.tenant.Tenant;
+import org.amdatu.cassandra.listener.ColumnFamilyDefinition;
+import org.amdatu.cassandra.listener.ColumnFamilyDefinition.ColumnType;
+import org.amdatu.cassandra.listener.ColumnFamilyDefinition.CompareType;
+import org.amdatu.cassandra.listener.ColumnFamilyProvider;
+import org.amdatu.core.tenant.Tenant;
 
 /**
  * This service only provides the Role Column Family. Note that the 
CassandraStorageProvider has
@@ -34,14 +34,15 @@
  *
  * @author ivol
  */
-public class RoleColumnFamilyProvider implements ColumnFamilyProvider {
+public class RoleColumnFamilyProvider implements ColumnFamilyProvider {
+    // This service is tenant aware
     private Tenant m_tenant;
 
     @Override
     public ColumnFamilyDefinition[] getColumnFamilies() {
         return new ColumnFamilyDefinition[] {new ColumnFamilyDefinition(
                 CassandraStorageProvider.CF_ROLE,
-                new String[] {m_tenant.getId()},
+                new String[] {m_tenant.getId()}, // Associate the keyspace of 
this CF with the tenant
                 ColumnType.SUPER,
                 CompareType.BYTESTYPE,
                 CompareType.BYTESTYPE)};
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits

Reply via email to