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