From acd2842ed4ef654e1e8eee4af5cb677c5ada9ce0 Mon Sep 17 00:00:00 2001 From: Ran Tavory Date: Tue, 21 Sep 2010 21:42:07 +0200 Subject: [PATCH] Extract interface from KeyspaceOperator (and rename it) and move the interface to the api package --- CHANGELOG | 2 + .../me/prettyprint/cassandra/dao/Command.java | 14 +++--- .../cassandra/dao/SimpleCassandraDao.java | 20 ++++---- .../cassandra/dao/SpringCommand.java | 6 +-- .../cassandra/examples/ExampleClient.java | 4 +- .../cassandra/examples/ExampleDao.java | 12 ++--- .../cassandra/examples/ExampleDaoV2.java | 26 +++++----- .../cassandra/examples/ExampleSpringDao.java | 8 ++-- .../cassandra/model/AbstractColumnQuery.java | 3 +- .../cassandra/model/AbstractQuery.java | 7 +-- .../cassandra/model/AbstractSliceQuery.java | 3 +- .../model/AbstractSubColumnQuery.java | 5 +- .../model/AbstractSuperColumnQuery.java | 3 +- ...ceOperator.java => ExecutingKeyspace.java} | 19 ++++++-- .../model/KeyspaceOperationCallback.java | 6 +-- .../prettyprint/cassandra/model/Mutator.java | 21 +++++---- .../cassandra/model/avro/AvroColumnQuery.java | 12 ++--- .../model/avro/AvroSubColumnQuery.java | 6 +-- .../model/avro/AvroSuperColumnQuery.java | 6 +-- .../thrift/AbstractThriftCountQuery.java | 17 +++---- .../model/thrift/ThriftColumnQuery.java | 12 ++--- .../model/thrift/ThriftCountQuery.java | 4 +- .../thrift/ThriftMultigetSliceQuery.java | 10 ++-- .../thrift/ThriftMultigetSubSliceQuery.java | 10 ++-- .../thrift/ThriftMultigetSuperSliceQuery.java | 10 ++-- .../model/thrift/ThriftRangeSlicesQuery.java | 10 ++-- .../thrift/ThriftRangeSubSlicesQuery.java | 10 ++-- .../thrift/ThriftRangeSuperSlicesQuery.java | 10 ++-- .../model/thrift/ThriftSliceQuery.java | 10 ++-- .../model/thrift/ThriftSubColumnQuery.java | 6 +-- .../model/thrift/ThriftSubCountQuery.java | 10 ++-- .../model/thrift/ThriftSubSliceQuery.java | 10 ++-- .../model/thrift/ThriftSuperColumnQuery.java | 12 ++--- .../model/thrift/ThriftSuperCountQuery.java | 4 +- .../model/thrift/ThriftSuperSliceQuery.java | 10 ++-- .../cassandra/service/BatchMutation.java | 2 +- .../cassandra/service/CassandraClient.java | 8 ++-- .../service/CassandraClientFactory.java | 2 +- .../service/CassandraClientImpl.java | 22 ++++----- .../service/CassandraClientPool.java | 2 +- .../service/CassandraClientPoolImpl.java | 2 +- .../cassandra/service/Cluster.java | 2 +- .../cassandra/service/FailoverOperator.java | 4 +- .../{Keyspace.java => KeyspaceService.java} | 2 +- ...ctory.java => KeyspaceServiceFactory.java} | 8 ++-- ...paceImpl.java => KeyspaceServiceImpl.java} | 6 +-- .../me/prettyprint/hector/api/Keyspace.java | 18 +++++++ .../hector/api/factory/HFactory.java | 47 ++++++++++--------- .../prettyprint/hector/api/query/Query.java | 2 +- .../cassandra/examples/ExampleDaoV2Test.java | 6 +-- .../model/AbstractSliceQueryTest.java | 5 +- .../cassandra/model/ApiV2SystemTest.java | 7 +-- .../cassandra/model/MutatorTest.java | 15 +++--- .../service/CassandraClientPoolTest.java | 2 +- .../service/CassandraClientTest.java | 6 +-- .../service/FailoverOperatorTest.java | 18 +++---- .../cassandra/service/KeyspaceTest.java | 2 +- 57 files changed, 283 insertions(+), 243 deletions(-) rename src/main/java/me/prettyprint/cassandra/model/{KeyspaceOperator.java => ExecutingKeyspace.java} (79%) rename src/main/java/me/prettyprint/cassandra/service/{Keyspace.java => KeyspaceService.java} (99%) rename src/main/java/me/prettyprint/cassandra/service/{KeyspaceFactory.java => KeyspaceServiceFactory.java} (70%) rename src/main/java/me/prettyprint/cassandra/service/{KeyspaceImpl.java => KeyspaceServiceImpl.java} (99%) create mode 100644 src/main/java/me/prettyprint/hector/api/Keyspace.java diff --git a/CHANGELOG b/CHANGELOG index b7cb44342..41ce99b67 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,6 +9,8 @@ Changes by version: ======== Add CountQuery, SuperCountQuery and SubCountQuery Move all the API stuff to me.prettyprint.hector.api.*. Extract interfaces and prepare the ground for more avro good. + - Move all the queries and extract their interfaces + - Rename KeyspaceOperator and extract a Keyspace interface from it Rename a few exceptions to begin with HSomething so they are hard to unintentionally mix with their thrift doubles. diff --git a/src/main/java/me/prettyprint/cassandra/dao/Command.java b/src/main/java/me/prettyprint/cassandra/dao/Command.java index e453b3a75..0a7d688eb 100644 --- a/src/main/java/me/prettyprint/cassandra/dao/Command.java +++ b/src/main/java/me/prettyprint/cassandra/dao/Command.java @@ -3,7 +3,7 @@ import me.prettyprint.cassandra.service.CassandraClient; import me.prettyprint.cassandra.service.CassandraClientPool; import me.prettyprint.cassandra.service.CassandraClientPoolFactory; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.service.CassandraClient.FailoverPolicy; import me.prettyprint.hector.api.exceptions.HectorException; @@ -11,7 +11,7 @@ /** * Provides an abstraction for running an operation, or a command on a cassandra keyspace. - * Clients of Hector implement the {@link #execute(Keyspace)} and then call + * Clients of Hector implement the {@link #execute(KeyspaceService)} and then call * {@link #execute(String, int, String)} on an instance of this implementation. * * The class provides the comfort of managing connections by borowing and then releasing them. @@ -34,10 +34,10 @@ public abstract class Command { * @param ks * @return */ - public abstract OUTPUT execute(final Keyspace ks) throws HectorException; + public abstract OUTPUT execute(final KeyspaceService ks) throws HectorException; /** - * Call this method to run the code within the {@link #execute(Keyspace)} method. + * Call this method to run the code within the {@link #execute(KeyspaceService)} method. * * @param host * @param port @@ -79,7 +79,7 @@ public final OUTPUT execute(String[] hosts, String keyspace, ConsistencyLevel co public final OUTPUT execute(CassandraClientPool pool, String[] hosts, String keyspace, ConsistencyLevel consistency) throws HectorException { CassandraClient c = pool.borrowClient(hosts); - Keyspace ks = c.getKeyspace(keyspace, consistency); + KeyspaceService ks = c.getKeyspace(keyspace, consistency); try { return execute(ks); } finally { @@ -97,7 +97,7 @@ public OUTPUT execute(String[] hosts, String keyspace, ConsistencyLevel consiste protected OUTPUT execute(CassandraClient c, String keyspace, ConsistencyLevel consistency, FailoverPolicy failoverPolicy) throws HectorException { - Keyspace ks = c.getKeyspace(keyspace, consistency, failoverPolicy); + KeyspaceService ks = c.getKeyspace(keyspace, consistency, failoverPolicy); try { return execute(ks); } finally { @@ -111,7 +111,7 @@ protected OUTPUT execute(CassandraClient c, String keyspace, ConsistencyLevel co */ protected final OUTPUT execute(CassandraClient c, String keyspace, ConsistencyLevel consistency) throws HectorException { - Keyspace ks = c.getKeyspace(keyspace, consistency); + KeyspaceService ks = c.getKeyspace(keyspace, consistency); try { return execute(ks); } finally { diff --git a/src/main/java/me/prettyprint/cassandra/dao/SimpleCassandraDao.java b/src/main/java/me/prettyprint/cassandra/dao/SimpleCassandraDao.java index 88b7e514f..e4c51f461 100644 --- a/src/main/java/me/prettyprint/cassandra/dao/SimpleCassandraDao.java +++ b/src/main/java/me/prettyprint/cassandra/dao/SimpleCassandraDao.java @@ -8,10 +8,10 @@ import java.util.HashMap; import java.util.Map; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Mutator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.serializers.StringSerializer; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.beans.Rows; import me.prettyprint.hector.api.exceptions.HectorException; @@ -21,7 +21,7 @@ public class SimpleCassandraDao { private String columnFamilyName; - private KeyspaceOperator keyspaceOperator; + private Keyspace keyspace; private final StringSerializer serializer = StringSerializer.get(); /** @@ -31,7 +31,7 @@ public class SimpleCassandraDao { * @param value the String value to insert */ public void insert(String key, String columnName, String value) { - createMutator(keyspaceOperator).insert( + createMutator(keyspace).insert( key, columnFamilyName, createColumn(columnName, value, serializer, serializer)); } @@ -41,7 +41,7 @@ public void insert(String key, String columnName, String value) { * @return The string value; null if no value exists for the given key. */ public String get(String key, String columnName) throws HectorException { - ColumnQuery q = createStringColumnQuery(keyspaceOperator); + ColumnQuery q = createStringColumnQuery(keyspace); Result> r = q.setKey(key). setName(columnName). setColumnFamily(columnFamilyName). @@ -56,7 +56,7 @@ public String get(String key, String columnName) throws HectorException { * @return */ public Map getMulti(String columnName, String... keys) { - MultigetSliceQuery q = createMultigetSliceQuery(keyspaceOperator, serializer, serializer); + MultigetSliceQuery q = createMultigetSliceQuery(keyspace, serializer, serializer); q.setColumnFamily(columnFamilyName); q.setKeys(keys); q.setColumnNames(columnName); @@ -77,10 +77,10 @@ public Map getMulti(String columnName, String... keys) { * Insert multiple values for a given columnName */ public void insertMulti(String columnName, Map keyValues) { - Mutator m = createMutator(keyspaceOperator); + Mutator m = createMutator(keyspace); for (Map.Entry keyValue: keyValues.entrySet()) { m.addInsertion(keyValue.getKey(), columnFamilyName, - createColumn(columnName, keyValue.getValue(), keyspaceOperator.createTimestamp(), serializer, serializer)); + createColumn(columnName, keyValue.getValue(), keyspace.createTimestamp(), serializer, serializer)); } m.execute(); } @@ -90,7 +90,7 @@ public void insertMulti(String columnName, Map keyValues) { * Delete multiple values */ public void delete(String columnName, String... keys) { - Mutator m = createMutator(keyspaceOperator); + Mutator m = createMutator(keyspace); for (String key: keys) { m.addDeletion(key, columnFamilyName, columnName, serializer); } @@ -102,8 +102,8 @@ public void setColumnFamilyName(String columnFamilyName) { } - public void setKeyspaceOperator(KeyspaceOperator keyspaceOperator) { - this.keyspaceOperator = keyspaceOperator; + public void setKeyspace(Keyspace keyspace) { + this.keyspace = keyspace; } diff --git a/src/main/java/me/prettyprint/cassandra/dao/SpringCommand.java b/src/main/java/me/prettyprint/cassandra/dao/SpringCommand.java index fcb5b7ee7..8d7c5e5da 100644 --- a/src/main/java/me/prettyprint/cassandra/dao/SpringCommand.java +++ b/src/main/java/me/prettyprint/cassandra/dao/SpringCommand.java @@ -2,7 +2,7 @@ import me.prettyprint.cassandra.service.CassandraClient; import me.prettyprint.cassandra.service.CassandraClientPool; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.hector.api.exceptions.HectorException; import org.apache.cassandra.thrift.ConsistencyLevel; @@ -24,11 +24,11 @@ public SpringCommand(CassandraClientPool cassandraClientPool) { * @param ks * @return */ - public abstract OUTPUT execute(final Keyspace ks) throws HectorException; + public abstract OUTPUT execute(final KeyspaceService ks) throws HectorException; public final OUTPUT execute(String keyspace, ConsistencyLevel consistency) throws HectorException { CassandraClient c = cassandraClientPool.borrowClient(); - Keyspace ks = c.getKeyspace(keyspace, consistency); + KeyspaceService ks = c.getKeyspace(keyspace, consistency); try { return execute(ks); } finally { diff --git a/src/main/java/me/prettyprint/cassandra/examples/ExampleClient.java b/src/main/java/me/prettyprint/cassandra/examples/ExampleClient.java index 5ce861fac..f407d0552 100644 --- a/src/main/java/me/prettyprint/cassandra/examples/ExampleClient.java +++ b/src/main/java/me/prettyprint/cassandra/examples/ExampleClient.java @@ -5,7 +5,7 @@ import me.prettyprint.cassandra.service.CassandraClient; import me.prettyprint.cassandra.service.CassandraClientPool; import me.prettyprint.cassandra.service.CassandraClientPoolFactory; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.hector.api.exceptions.HectorException; import org.apache.cassandra.thrift.Column; @@ -27,7 +27,7 @@ public static void main(String[] args) throws HectorException { // A load balanced version would look like this: // CassandraClient client = pool.borrowClient(new String[] {"cas1:9160", "cas2:9160", "cas3:9160"}); - Keyspace keyspace = null; + KeyspaceService keyspace = null; try { keyspace = client.getKeyspace("Keyspace1"); ColumnPath columnPath = new ColumnPath("Standard1"); diff --git a/src/main/java/me/prettyprint/cassandra/examples/ExampleDao.java b/src/main/java/me/prettyprint/cassandra/examples/ExampleDao.java index 9f608734b..ac1130b3d 100644 --- a/src/main/java/me/prettyprint/cassandra/examples/ExampleDao.java +++ b/src/main/java/me/prettyprint/cassandra/examples/ExampleDao.java @@ -3,7 +3,7 @@ import static me.prettyprint.cassandra.utils.StringUtils.bytes; import static me.prettyprint.cassandra.utils.StringUtils.string; import me.prettyprint.cassandra.dao.Command; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.hector.api.exceptions.HNotFoundException; import me.prettyprint.hector.api.exceptions.HectorException; @@ -19,10 +19,10 @@ *

* what's interesting to notice here is that ease of operation that the command pattern provides. * The pattern assumes only one keyspace is required to perform the operation (get/insert/remove) - * and injects it to the {@link Command#execute(Keyspace)} abstract method which is implemented + * and injects it to the {@link Command#execute(KeyspaceService)} abstract method which is implemented * by all the dao methods. * The {@link Command#execute(String, int, String)} which is then invoked, takes care of creating - * the {@link Keyspace} instance and releasing it after the operation completes. + * the {@link KeyspaceService} instance and releasing it after the operation completes. * * @author Ran Tavory (rantav@gmail.com) * @deprecated use ExampleDaoV2 @@ -53,7 +53,7 @@ public static void main(String[] args) throws HectorException { public void insert(final String key, final String value) throws HectorException { execute(new Command() { @Override - public Void execute(final Keyspace ks) throws HectorException { + public Void execute(final KeyspaceService ks) throws HectorException { ks.insert(key, createColumnPath(COLUMN_NAME), bytes(value)); return null; } @@ -68,7 +68,7 @@ public Void execute(final Keyspace ks) throws HectorException { public String get(final String key) throws HectorException { return execute(new Command() { @Override - public String execute(final Keyspace ks) throws HectorException { + public String execute(final KeyspaceService ks) throws HectorException { try { return string(ks.getColumn(key, createColumnPath(COLUMN_NAME)).getValue()); } catch (HNotFoundException e) { @@ -84,7 +84,7 @@ public String execute(final Keyspace ks) throws HectorException { public void delete(final String key) throws HectorException { execute(new Command() { @Override - public Void execute(final Keyspace ks) throws HectorException { + public Void execute(final KeyspaceService ks) throws HectorException { ks.remove(key, createColumnPath(COLUMN_NAME)); return null; } diff --git a/src/main/java/me/prettyprint/cassandra/examples/ExampleDaoV2.java b/src/main/java/me/prettyprint/cassandra/examples/ExampleDaoV2.java index 0c60321ea..b0e85f209 100644 --- a/src/main/java/me/prettyprint/cassandra/examples/ExampleDaoV2.java +++ b/src/main/java/me/prettyprint/cassandra/examples/ExampleDaoV2.java @@ -2,7 +2,7 @@ import static me.prettyprint.hector.api.factory.HFactory.createColumn; import static me.prettyprint.hector.api.factory.HFactory.createColumnQuery; -import static me.prettyprint.hector.api.factory.HFactory.createKeyspaceOperator; +import static me.prettyprint.hector.api.factory.HFactory.createKeyspace; import static me.prettyprint.hector.api.factory.HFactory.createMultigetSliceQuery; import static me.prettyprint.hector.api.factory.HFactory.createMutator; import static me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster; @@ -10,11 +10,11 @@ import java.util.HashMap; import java.util.Map; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Mutator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.serializers.StringSerializer; import me.prettyprint.cassandra.service.Cluster; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.beans.Rows; import me.prettyprint.hector.api.exceptions.HectorException; @@ -30,18 +30,18 @@ public class ExampleDaoV2 { private final static String COLUMN_NAME = "v"; private final StringSerializer serializer = StringSerializer.get(); - private final KeyspaceOperator keyspaceOperator; + private final Keyspace keyspace; public static void main(String[] args) throws HectorException { Cluster c = getOrCreateCluster("MyCluster", HOST_PORT); - ExampleDaoV2 ed = new ExampleDaoV2(createKeyspaceOperator(KEYSPACE, c)); + ExampleDaoV2 ed = new ExampleDaoV2(createKeyspace(KEYSPACE, c)); ed.insert("key1", "value1"); System.out.println(ed.get("key1")); } - public ExampleDaoV2(KeyspaceOperator ko) { - keyspaceOperator = ko; + public ExampleDaoV2(Keyspace keyspace) { + this.keyspace = keyspace; } /** @@ -51,12 +51,12 @@ public ExampleDaoV2(KeyspaceOperator ko) { * @param value the String value to insert */ public void insert(final String key, final String value) { - createMutator(keyspaceOperator).insert( - key, CF_NAME, createColumn(COLUMN_NAME, value, serializer, serializer)); + Mutator m = createMutator(keyspace); + m.insert(key, CF_NAME, createColumn(COLUMN_NAME, value, serializer, serializer)); } private long createTimestamp() { - return keyspaceOperator.createTimestamp(); + return keyspace.createTimestamp(); } /** @@ -65,7 +65,7 @@ private long createTimestamp() { * @return The string value; null if no value exists for the given key. */ public String get(final String key) throws HectorException { - ColumnQuery q = createColumnQuery(keyspaceOperator, serializer, serializer); + ColumnQuery q = createColumnQuery(keyspace, serializer, serializer); Result> r = q.setKey(key). setName(COLUMN_NAME). setColumnFamily(CF_NAME). @@ -80,7 +80,7 @@ public String get(final String key) throws HectorException { * @return */ public Map getMulti(String... keys) { - MultigetSliceQuery q = createMultigetSliceQuery(keyspaceOperator, serializer, serializer); + MultigetSliceQuery q = createMultigetSliceQuery(keyspace, serializer, serializer); q.setColumnFamily(CF_NAME); q.setKeys(keys); q.setColumnNames(COLUMN_NAME); @@ -101,7 +101,7 @@ public Map getMulti(String... keys) { * Insert multiple values */ public void insertMulti(Map keyValues) { - Mutator m = createMutator(keyspaceOperator); + Mutator m = createMutator(keyspace); for (Map.Entry keyValue: keyValues.entrySet()) { m.addInsertion(keyValue.getKey(), CF_NAME, createColumn(COLUMN_NAME, keyValue.getValue(), createTimestamp(), serializer, serializer)); @@ -113,7 +113,7 @@ public void insertMulti(Map keyValues) { * Delete multiple values */ public void delete(String... keys) { - Mutator m = createMutator(keyspaceOperator); + Mutator m = createMutator(keyspace); for (String key: keys) { m.addDeletion(key, CF_NAME, COLUMN_NAME, serializer); } diff --git a/src/main/java/me/prettyprint/cassandra/examples/ExampleSpringDao.java b/src/main/java/me/prettyprint/cassandra/examples/ExampleSpringDao.java index e1eda1b77..695668eed 100644 --- a/src/main/java/me/prettyprint/cassandra/examples/ExampleSpringDao.java +++ b/src/main/java/me/prettyprint/cassandra/examples/ExampleSpringDao.java @@ -5,7 +5,7 @@ import me.prettyprint.cassandra.dao.SpringCommand; import me.prettyprint.cassandra.service.CassandraClient; import me.prettyprint.cassandra.service.CassandraClientPool; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.hector.api.exceptions.HNotFoundException; import me.prettyprint.hector.api.exceptions.HectorException; @@ -41,7 +41,7 @@ public ExampleSpringDao(CassandraClientPool cassandraClientPool) { public void insert(final String key, final String value) throws HectorException { execute(new SpringCommand(cassandraClientPool){ @Override - public Void execute(final Keyspace ks) throws HectorException { + public Void execute(final KeyspaceService ks) throws HectorException { ks.insert(key, createColumnPath(columnName), bytes(value)); return null; } @@ -55,7 +55,7 @@ public Void execute(final Keyspace ks) throws HectorException { public String get(final String key) throws HectorException { return execute(new SpringCommand(cassandraClientPool){ @Override - public String execute(final Keyspace ks) throws HectorException { + public String execute(final KeyspaceService ks) throws HectorException { try { return string(ks.getColumn(key, createColumnPath(columnName)).getValue()); } catch (HNotFoundException e) { @@ -71,7 +71,7 @@ public String execute(final Keyspace ks) throws HectorException { public void delete(final String key) throws HectorException { execute(new SpringCommand(cassandraClientPool){ @Override - public Void execute(final Keyspace ks) throws HectorException { + public Void execute(final KeyspaceService ks) throws HectorException { ks.remove(key, createColumnPath(columnName)); return null; } diff --git a/src/main/java/me/prettyprint/cassandra/model/AbstractColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/AbstractColumnQuery.java index 5726b2b15..57f07e261 100644 --- a/src/main/java/me/prettyprint/cassandra/model/AbstractColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/AbstractColumnQuery.java @@ -1,5 +1,6 @@ package me.prettyprint.cassandra.model; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.query.ColumnQuery; @@ -17,7 +18,7 @@ public abstract class AbstractColumnQuery extends AbstractQuery nameSerializer, + protected AbstractColumnQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); } diff --git a/src/main/java/me/prettyprint/cassandra/model/AbstractQuery.java b/src/main/java/me/prettyprint/cassandra/model/AbstractQuery.java index cc87cce2e..06e77e9b8 100644 --- a/src/main/java/me/prettyprint/cassandra/model/AbstractQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/AbstractQuery.java @@ -1,20 +1,21 @@ package me.prettyprint.cassandra.model; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.Query; public abstract class AbstractQuery implements Query{ - protected final KeyspaceOperator keyspaceOperator; + protected final ExecutingKeyspace keyspace; protected String columnFamilyName; protected final Serializer columnNameSerializer; protected final Serializer valueSerializer; - /*package*/ AbstractQuery(KeyspaceOperator ko, Serializer nameSerializer, + /*package*/ AbstractQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { Assert.noneNull(ko, nameSerializer, valueSerializer); - keyspaceOperator = ko; + keyspace = (ExecutingKeyspace) ko; this.columnNameSerializer = nameSerializer; this.valueSerializer = valueSerializer; } diff --git a/src/main/java/me/prettyprint/cassandra/model/AbstractSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/AbstractSliceQuery.java index 9cfd9a0f7..308a9823f 100644 --- a/src/main/java/me/prettyprint/cassandra/model/AbstractSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/AbstractSliceQuery.java @@ -7,6 +7,7 @@ import java.util.List; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.Query; import org.apache.cassandra.thrift.SlicePredicate; @@ -31,7 +32,7 @@ public abstract class AbstractSliceQuery extends AbstractQuery { /** Use column names or start/finish? */ protected boolean useColumnNames; - public AbstractSliceQuery(KeyspaceOperator ko, Serializer nameSerializer, Serializer valueSerializer) { + public AbstractSliceQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); } diff --git a/src/main/java/me/prettyprint/cassandra/model/AbstractSubColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/AbstractSubColumnQuery.java index 0d3a61db7..d47a98246 100644 --- a/src/main/java/me/prettyprint/cassandra/model/AbstractSubColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/AbstractSubColumnQuery.java @@ -3,6 +3,7 @@ import java.util.List; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.ColumnSlice; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.factory.HFactory; @@ -13,11 +14,11 @@ public class AbstractSubColumnQuery implements SubColumnQuery subSliceQuery; - public AbstractSubColumnQuery(KeyspaceOperator keyspaceOperator, + public AbstractSubColumnQuery(Keyspace keyspace, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { - subSliceQuery = HFactory.createSubSliceQuery(keyspaceOperator, sNameSerializer, nameSerializer, + subSliceQuery = HFactory.createSubSliceQuery(keyspace, sNameSerializer, nameSerializer, valueSerializer); } diff --git a/src/main/java/me/prettyprint/cassandra/model/AbstractSuperColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/AbstractSuperColumnQuery.java index 9e8dc8e2b..172fbbdfb 100644 --- a/src/main/java/me/prettyprint/cassandra/model/AbstractSuperColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/AbstractSuperColumnQuery.java @@ -1,6 +1,7 @@ package me.prettyprint.cassandra.model; import static me.prettyprint.cassandra.utils.Assert.noneNull; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HSuperColumn; import me.prettyprint.hector.api.query.SuperColumnQuery; @@ -20,7 +21,7 @@ public abstract class AbstractSuperColumnQuery extends protected String key; protected SN superName; - protected AbstractSuperColumnQuery(KeyspaceOperator ko, Serializer sNameSerializer, + protected AbstractSuperColumnQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); diff --git a/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperator.java b/src/main/java/me/prettyprint/cassandra/model/ExecutingKeyspace.java similarity index 79% rename from src/main/java/me/prettyprint/cassandra/model/KeyspaceOperator.java rename to src/main/java/me/prettyprint/cassandra/model/ExecutingKeyspace.java index 04be5b48e..8c9603900 100644 --- a/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperator.java +++ b/src/main/java/me/prettyprint/cassandra/model/ExecutingKeyspace.java @@ -2,20 +2,26 @@ import me.prettyprint.cassandra.service.CassandraClient; import me.prettyprint.cassandra.service.Cluster; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; import me.prettyprint.hector.api.ConsistencyLevelPolicy; import me.prettyprint.hector.api.ConsistencyLevelPolicy.OperationType; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.exceptions.HectorException; -public /*final*/ class KeyspaceOperator { +/** + * + * @author Ran Tavory + * + */ +public class ExecutingKeyspace implements Keyspace { private ConsistencyLevelPolicy consistencyLevelPolicy; private final Cluster cluster; private final String keyspace; - public KeyspaceOperator(String keyspace, Cluster cluster, + public ExecutingKeyspace(String keyspace, Cluster cluster, ConsistencyLevelPolicy consistencyLevelPolicy) { Assert.noneNull(keyspace, cluster, consistencyLevelPolicy); this.keyspace = keyspace; @@ -23,26 +29,29 @@ public KeyspaceOperator(String keyspace, Cluster cluster, this.consistencyLevelPolicy = consistencyLevelPolicy; } + @Override public void setConsistencyLevelPolicy(ConsistencyLevelPolicy cp) { this.consistencyLevelPolicy = cp; } + @Override public Cluster getCluster() { return cluster; } @Override public String toString() { - return "KeyspaceOperator(" + keyspace +"," + cluster + ")"; + return "ExecutingKeyspace(" + keyspace +"," + cluster + ")"; } + @Override public long createTimestamp() { return cluster.createTimestamp(); } public ExecutionResult doExecute(KeyspaceOperationCallback koc) throws HectorException { CassandraClient c = null; - Keyspace ks = null; + KeyspaceService ks = null; try { c = cluster.borrowClient(); ks = c.getKeyspace(keyspace, consistencyLevelPolicy.get(OperationType.READ)); diff --git a/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperationCallback.java b/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperationCallback.java index dbf45a1cd..5c2bd7759 100644 --- a/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperationCallback.java +++ b/src/main/java/me/prettyprint/cassandra/model/KeyspaceOperationCallback.java @@ -1,6 +1,6 @@ package me.prettyprint.cassandra.model; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.hector.api.exceptions.HectorException; /** @@ -12,9 +12,9 @@ */ public abstract class KeyspaceOperationCallback { - public abstract T doInKeyspace(final Keyspace ks) throws HectorException; + public abstract T doInKeyspace(final KeyspaceService ks) throws HectorException; - public ExecutionResult doInKeyspaceAndMeasure(final Keyspace ks) { + public ExecutionResult doInKeyspaceAndMeasure(final KeyspaceService ks) { long start = System.nanoTime(); T value = null; value = doInKeyspace(ks); diff --git a/src/main/java/me/prettyprint/cassandra/model/Mutator.java b/src/main/java/me/prettyprint/cassandra/model/Mutator.java index 1a8a50c60..010779a13 100644 --- a/src/main/java/me/prettyprint/cassandra/model/Mutator.java +++ b/src/main/java/me/prettyprint/cassandra/model/Mutator.java @@ -4,7 +4,8 @@ import me.prettyprint.cassandra.model.thrift.ThriftFactory; import me.prettyprint.cassandra.service.BatchMutation; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.beans.HSuperColumn; import me.prettyprint.hector.api.exceptions.HectorException; @@ -27,12 +28,12 @@ */ public final class Mutator { - private final KeyspaceOperator ko; + private final ExecutingKeyspace keyspace; private BatchMutation pendingMutations; - public Mutator(KeyspaceOperator ko) { - this.ko = ko; + public Mutator(Keyspace keyspace) { + this.keyspace = (ExecutingKeyspace) keyspace; } // Simple and immediate insertion of a column @@ -61,9 +62,9 @@ public MutationResult delete(final String key, final String cf, final N colu */ public MutationResult subDelete(final String key, final String cf, final SN supercolumnName, final N columnName, final Serializer sNameSerializer, final Serializer nameSerializer) { - return new MutationResult(ko.doExecute(new KeyspaceOperationCallback() { + return new MutationResult(keyspace.doExecute(new KeyspaceOperationCallback() { @Override - public Void doInKeyspace(Keyspace ks) throws HectorException { + public Void doInKeyspace(KeyspaceService ks) throws HectorException { ks.remove(key, ThriftFactory.createSuperColumnPath(cf, supercolumnName, columnName, sNameSerializer, nameSerializer)); return null; @@ -93,7 +94,7 @@ public Mutator addInsertion(String key, String cf, HSuperColumn public Mutator addDeletion(String key, String cf, N columnName, Serializer nameSerializer) { SlicePredicate sp = new SlicePredicate(); sp.addToColumn_names(nameSerializer.toBytes(columnName)); - Deletion d = columnName != null ? new Deletion(ko.createTimestamp()).setPredicate(sp) : new Deletion(ko.createTimestamp()); + Deletion d = columnName != null ? new Deletion(keyspace.createTimestamp()).setPredicate(sp) : new Deletion(keyspace.createTimestamp()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; } @@ -109,9 +110,9 @@ public MutationResult execute() { } final BatchMutation mutations = pendingMutations.makeCopy(); pendingMutations = null; - return new MutationResult(ko.doExecute(new KeyspaceOperationCallback() { + return new MutationResult(keyspace.doExecute(new KeyspaceOperationCallback() { @Override - public Void doInKeyspace(Keyspace ks) throws HectorException { + public Void doInKeyspace(KeyspaceService ks) throws HectorException { ks.batchMutate(mutations); return null; } @@ -128,7 +129,7 @@ public Mutator discardPendingMutations() { @Override public String toString() { - return "Mutator(" + ko.toString() + ")"; + return "Mutator(" + keyspace.toString() + ")"; } private BatchMutation getPendingMutations() { diff --git a/src/main/java/me/prettyprint/cassandra/model/avro/AvroColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/avro/AvroColumnQuery.java index 3aeb77866..3e7669963 100644 --- a/src/main/java/me/prettyprint/cassandra/model/avro/AvroColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/avro/AvroColumnQuery.java @@ -2,10 +2,10 @@ import me.prettyprint.cassandra.model.AbstractColumnQuery; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.ColumnQuery; @@ -21,17 +21,17 @@ public final class AvroColumnQuery extends AbstractColumnQuery implements ColumnQuery { - public AvroColumnQuery(KeyspaceOperator keyspaceOperator, Serializer nameSerializer, + public AvroColumnQuery(Keyspace keyspace, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, nameSerializer, valueSerializer); + super(keyspace, nameSerializer, valueSerializer); } @Override public Result> execute() { - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public HColumn doInKeyspace(Keyspace ks) throws HectorException { + public HColumn doInKeyspace(KeyspaceService ks) throws HectorException { //TODO: not implemented yet. return null; } diff --git a/src/main/java/me/prettyprint/cassandra/model/avro/AvroSubColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/avro/AvroSubColumnQuery.java index 92ce864c3..f8dbddfa4 100644 --- a/src/main/java/me/prettyprint/cassandra/model/avro/AvroSubColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/avro/AvroSubColumnQuery.java @@ -1,8 +1,8 @@ package me.prettyprint.cassandra.model.avro; import me.prettyprint.cassandra.model.AbstractSubColumnQuery; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Serializer; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.SubColumnQuery; /** @@ -15,11 +15,11 @@ */ public final class AvroSubColumnQuery extends AbstractSubColumnQuery implements SubColumnQuery { - public AvroSubColumnQuery(KeyspaceOperator keyspaceOperator, + public AvroSubColumnQuery(Keyspace keyspace, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, sNameSerializer, nameSerializer, valueSerializer); + super(keyspace, sNameSerializer, nameSerializer, valueSerializer); } } diff --git a/src/main/java/me/prettyprint/cassandra/model/avro/AvroSuperColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/avro/AvroSuperColumnQuery.java index caab38125..a28e60d84 100644 --- a/src/main/java/me/prettyprint/cassandra/model/avro/AvroSuperColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/avro/AvroSuperColumnQuery.java @@ -2,9 +2,9 @@ import static me.prettyprint.cassandra.utils.Assert.notNull; import me.prettyprint.cassandra.model.AbstractSuperColumnQuery; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HSuperColumn; import me.prettyprint.hector.api.query.SuperColumnQuery; @@ -22,9 +22,9 @@ public final class AvroSuperColumnQuery extends AbstractSuperColumnQuery implements SuperColumnQuery { - public AvroSuperColumnQuery(KeyspaceOperator keyspaceOperator, + public AvroSuperColumnQuery(Keyspace keyspace, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, sNameSerializer, nameSerializer, valueSerializer); + super(keyspace, sNameSerializer, nameSerializer, valueSerializer); } @Override diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/AbstractThriftCountQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/AbstractThriftCountQuery.java index 6fd2b9156..be8275deb 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/AbstractThriftCountQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/AbstractThriftCountQuery.java @@ -1,10 +1,11 @@ package me.prettyprint.cassandra.model.thrift; +import me.prettyprint.cassandra.model.ExecutingKeyspace; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.Query; @@ -17,13 +18,13 @@ */ /*package*/ abstract class AbstractThriftCountQuery implements Query{ - protected final KeyspaceOperator keyspaceOperator; + protected final ExecutingKeyspace keyspace; protected String columnFamily; protected String key; - public AbstractThriftCountQuery(KeyspaceOperator ko) { - Assert.notNull(ko, "keyspaceOperator can't be null"); - this.keyspaceOperator = ko; + public AbstractThriftCountQuery(Keyspace keyspace) { + Assert.notNull(keyspace, "k can't be null"); + this.keyspace = (ExecutingKeyspace) keyspace; } public AbstractThriftCountQuery setKey(String key) { @@ -39,10 +40,10 @@ public AbstractThriftCountQuery setColumnFamily(String cf) { protected Result countColumns() { Assert.notNull(key, "key is null"); Assert.notNull(columnFamily, "columnFamily is null"); - return new Result(keyspaceOperator.doExecute( + return new Result(keyspace.doExecute( new KeyspaceOperationCallback() { @Override - public Integer doInKeyspace(Keyspace ks) throws HectorException { + public Integer doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamily); Integer count = ks.getCount(key, columnParent); return count; diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftColumnQuery.java index 1daaed4fc..98a1492f1 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftColumnQuery.java @@ -3,10 +3,10 @@ import me.prettyprint.cassandra.model.AbstractColumnQuery; import me.prettyprint.cassandra.model.HColumnImpl; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.exceptions.HNotFoundException; import me.prettyprint.hector.api.exceptions.HectorException; @@ -23,17 +23,17 @@ public final class ThriftColumnQuery extends AbstractColumnQuery implements ColumnQuery { - public ThriftColumnQuery(KeyspaceOperator keyspaceOperator, Serializer nameSerializer, + public ThriftColumnQuery(Keyspace keyspace, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, nameSerializer, valueSerializer); + super(keyspace, nameSerializer, valueSerializer); } @Override public Result> execute() { - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public HColumn doInKeyspace(Keyspace ks) throws HectorException { + public HColumn doInKeyspace(KeyspaceService ks) throws HectorException { try { org.apache.cassandra.thrift.Column thriftColumn = ks.getColumn(key, ThriftFactory.createColumnPath(columnFamilyName, name, columnNameSerializer)); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftCountQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftCountQuery.java index 6d1338dc0..62f21f607 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftCountQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftCountQuery.java @@ -1,7 +1,7 @@ package me.prettyprint.cassandra.model.thrift; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.CountQuery; @@ -12,7 +12,7 @@ */ public final class ThriftCountQuery extends AbstractThriftCountQuery implements CountQuery { - public ThriftCountQuery(KeyspaceOperator ko) { + public ThriftCountQuery(Keyspace ko) { super(ko); } diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSliceQuery.java index 7e92e49e1..7803fb277 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSliceQuery.java @@ -8,12 +8,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.RowsImpl; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.Rows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.MultigetSliceQuery; @@ -29,7 +29,7 @@ public final class ThriftMultigetSliceQuery extends AbstractSliceQuery keys; - public ThriftMultigetSliceQuery(KeyspaceOperator ko, Serializer nameSerializer, + public ThriftMultigetSliceQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); } @@ -45,10 +45,10 @@ public Result> execute() { Assert.notNull(columnFamilyName, "columnFamilyName can't be null"); Assert.notNull(keys, "keys can't be null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public Rows doInKeyspace(Keyspace ks) throws HectorException { + public Rows doInKeyspace(KeyspaceService ks) throws HectorException { List keysList = new ArrayList(); keysList.addAll(keys); ColumnParent columnParent = new ColumnParent(columnFamilyName); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSubSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSubSliceQuery.java index ea62abcc2..fc5cab71b 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSubSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSubSliceQuery.java @@ -8,12 +8,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.RowsImpl; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.Rows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.MultigetSubSliceQuery; @@ -31,7 +31,7 @@ public final class ThriftMultigetSubSliceQuery extends private final Serializer sNameSerializer; private SN superColumn; - public ThriftMultigetSubSliceQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftMultigetSubSliceQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); Assert.notNull(nameSerializer, "sNameSerializer can't be null"); @@ -62,9 +62,9 @@ public Result> execute() { Assert.noneNull(superColumn, "superColumn cannot be null"); return new Result>( - keyspaceOperator.doExecute(new KeyspaceOperationCallback>() { + keyspace.doExecute(new KeyspaceOperationCallback>() { @Override - public Rows doInKeyspace(Keyspace ks) throws HectorException { + public Rows doInKeyspace(KeyspaceService ks) throws HectorException { List keysList = new ArrayList(); keysList.addAll(keys); ColumnParent columnParent = new ColumnParent(columnFamilyName); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSuperSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSuperSliceQuery.java index c4f540f58..ad014faf6 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSuperSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftMultigetSuperSliceQuery.java @@ -8,12 +8,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; import me.prettyprint.cassandra.model.SuperRowsImpl; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.SuperRows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.MultigetSuperSliceQuery; @@ -32,7 +32,7 @@ public final class ThriftMultigetSuperSliceQuery extends private Collection keys; private final Serializer nameSerializer; - public ThriftMultigetSuperSliceQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftMultigetSuperSliceQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, sNameSerializer, valueSerializer); Assert.notNull(nameSerializer, "nameSerializer can't be null"); @@ -48,9 +48,9 @@ public MultigetSuperSliceQuery setKeys(String... keys) { @Override public Result> execute() { return new Result>( - keyspaceOperator.doExecute(new KeyspaceOperationCallback>() { + keyspace.doExecute(new KeyspaceOperationCallback>() { @Override - public SuperRows doInKeyspace(Keyspace ks) throws HectorException { + public SuperRows doInKeyspace(KeyspaceService ks) throws HectorException { List keysList = new ArrayList(); keysList.addAll(keys); ColumnParent columnParent = new ColumnParent(columnFamilyName); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSlicesQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSlicesQuery.java index 405151ab3..cc36375f3 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSlicesQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSlicesQuery.java @@ -6,12 +6,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.HKeyRange; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.OrderedRowsImpl; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.OrderedRows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.RangeSlicesQuery; @@ -32,7 +32,7 @@ public final class ThriftRangeSlicesQuery extends AbstractSliceQuery nameSerializer, Serializer valueSerializer) { + public ThriftRangeSlicesQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); keyRange = new HKeyRange(); } @@ -53,10 +53,10 @@ public RangeSlicesQuery setRowCount(int rowCount) { public Result> execute() { Assert.notNull(columnFamilyName, "columnFamilyName can't be null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public OrderedRows doInKeyspace(Keyspace ks) throws HectorException { + public OrderedRows doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); LinkedHashMap> thriftRet = ks.getRangeSlices(columnParent, getPredicate(), keyRange.toThrift()); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSubSlicesQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSubSlicesQuery.java index ed57221a7..4c3dcd6ef 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSubSlicesQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSubSlicesQuery.java @@ -6,12 +6,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.HKeyRange; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.OrderedRowsImpl; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.OrderedRows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.RangeSubSlicesQuery; @@ -32,7 +32,7 @@ public final class ThriftRangeSubSlicesQuery extends AbstractSliceQuery< private SN superColumn; - public ThriftRangeSubSlicesQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftRangeSubSlicesQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); Assert.notNull(sNameSerializer, "sNameSerializer cannot be null"); @@ -64,10 +64,10 @@ public Result> execute() { Assert.notNull(columnFamilyName, "columnFamilyName can't be null"); Assert.notNull(superColumn, "superColumn cannot be null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public OrderedRows doInKeyspace(Keyspace ks) throws HectorException { + public OrderedRows doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); columnParent.setSuper_column(sNameSerializer.toBytes(superColumn)); LinkedHashMap> thriftRet = diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSuperSlicesQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSuperSlicesQuery.java index 99a62288e..01bb19f77 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSuperSlicesQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftRangeSuperSlicesQuery.java @@ -6,12 +6,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.HKeyRange; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.OrderedSuperRowsImpl; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.OrderedSuperRows; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.RangeSuperSlicesQuery; @@ -34,7 +34,7 @@ public final class ThriftRangeSuperSlicesQuery extends private final Serializer nameSerializer; private final HKeyRange keyRange; - public ThriftRangeSuperSlicesQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftRangeSuperSlicesQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, sNameSerializer, valueSerializer); Assert.notNull(nameSerializer, "nameSerializer cannot be null"); @@ -58,10 +58,10 @@ public RangeSuperSlicesQuery setRowCount(int rowCount) { public Result> execute() { Assert.notNull(columnFamilyName, "columnFamilyName can't be null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public OrderedSuperRows doInKeyspace(Keyspace ks) throws HectorException { + public OrderedSuperRows doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); LinkedHashMap> thriftRet = ks.getSuperRangeSlices(columnParent, getPredicate(), keyRange.toThrift()); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSliceQuery.java index d68d65e64..ccae018a0 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSliceQuery.java @@ -5,10 +5,10 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.ColumnSliceImpl; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.ColumnSlice; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.SliceQuery; @@ -29,7 +29,7 @@ public final class ThriftSliceQuery extends AbstractSliceQuery nameSerializer, + /*package*/public ThriftSliceQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); } @@ -43,9 +43,9 @@ public SliceQuery setKey(String key) { @Override public Result> execute() { return new Result>( - keyspaceOperator.doExecute(new KeyspaceOperationCallback>() { + keyspace.doExecute(new KeyspaceOperationCallback>() { @Override - public ColumnSlice doInKeyspace(Keyspace ks) throws HectorException { + public ColumnSlice doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); List thriftRet = ks.getSlice(key, columnParent, getPredicate()); return new ColumnSliceImpl(thriftRet, columnNameSerializer, valueSerializer); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubColumnQuery.java index cbb290de3..010b8c7ac 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubColumnQuery.java @@ -1,8 +1,8 @@ package me.prettyprint.cassandra.model.thrift; import me.prettyprint.cassandra.model.AbstractSubColumnQuery; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Serializer; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.SubColumnQuery; /** @@ -15,11 +15,11 @@ */ public final class ThriftSubColumnQuery extends AbstractSubColumnQuery implements SubColumnQuery { - /*package*/ public ThriftSubColumnQuery(KeyspaceOperator keyspaceOperator, + /*package*/ public ThriftSubColumnQuery(Keyspace keyspace, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, sNameSerializer, nameSerializer, valueSerializer); + super(keyspace, sNameSerializer, nameSerializer, valueSerializer); } } diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubCountQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubCountQuery.java index 11eb70ed2..bf134a022 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubCountQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubCountQuery.java @@ -1,11 +1,11 @@ package me.prettyprint.cassandra.model.thrift; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.SubCountQuery; @@ -25,7 +25,7 @@ public final class ThriftSubCountQuery extends AbstractThriftCountQuery impl private SN superColumnName; - public ThriftSubCountQuery(KeyspaceOperator ko, Serializer superNameSerializer) { + public ThriftSubCountQuery(Keyspace ko, Serializer superNameSerializer) { super(ko); Assert.notNull(superNameSerializer, "superNameSerializer is null"); this.superNameSerializer = superNameSerializer; @@ -42,10 +42,10 @@ public Result execute() { Assert.notNull(key, "key is null"); Assert.notNull(columnFamily, "columnFamily is null"); Assert.notNull(superColumnName, "superColumnName is null"); - return new Result(keyspaceOperator.doExecute( + return new Result(keyspace.doExecute( new KeyspaceOperationCallback() { @Override - public Integer doInKeyspace(Keyspace ks) throws HectorException { + public Integer doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamily); columnParent.setSuper_column(superNameSerializer.toBytes(superColumnName)); Integer count = ks.getCount(key, columnParent); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubSliceQuery.java index 92e2d9cb7..66df4bc43 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSubSliceQuery.java @@ -5,11 +5,11 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.ColumnSliceImpl; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.ColumnSlice; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.SubSliceQuery; @@ -33,7 +33,7 @@ public final class ThriftSubSliceQuery extends private SN superColumn; private final Serializer sNameSerializer; - public ThriftSubSliceQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftSubSliceQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); Assert.notNull(sNameSerializer, "Supername serializer cannot be null"); @@ -59,10 +59,10 @@ public SubSliceQuery setSuperColumn(SN superColumn) { public Result> execute() { Assert.notNull(key, "Key cannot be null"); Assert.notNull(superColumn, "Supercolumn cannot be null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public ColumnSlice doInKeyspace(Keyspace ks) throws HectorException { + public ColumnSlice doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); columnParent.setSuper_column(sNameSerializer.toBytes(superColumn)); List thriftRet = ks.getSlice(key, columnParent, getPredicate()); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperColumnQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperColumnQuery.java index 1783a11f1..2a82a1e41 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperColumnQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperColumnQuery.java @@ -4,10 +4,10 @@ import me.prettyprint.cassandra.model.AbstractSuperColumnQuery; import me.prettyprint.cassandra.model.HSuperColumnImpl; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HSuperColumn; import me.prettyprint.hector.api.exceptions.HNotFoundException; import me.prettyprint.hector.api.exceptions.HectorException; @@ -28,19 +28,19 @@ public final class ThriftSuperColumnQuery extends AbstractSuperColumnQuery implements SuperColumnQuery { - /*package*/ public ThriftSuperColumnQuery(KeyspaceOperator keyspaceOperator, + /*package*/ public ThriftSuperColumnQuery(Keyspace keyspace, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { - super(keyspaceOperator, sNameSerializer, nameSerializer, valueSerializer); + super(keyspace, sNameSerializer, nameSerializer, valueSerializer); } @Override public Result> execute() { notNull(columnFamilyName, "columnFamilyName is null"); notNull(superName, "superName is null"); - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public HSuperColumn doInKeyspace(Keyspace ks) throws HectorException { + public HSuperColumn doInKeyspace(KeyspaceService ks) throws HectorException { try { ColumnPath cpath = ThriftFactory.createSuperColumnPath(columnFamilyName, superName, (N) null, sNameSerializer, columnNameSerializer); diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperCountQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperCountQuery.java index ee528585b..478a13e1b 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperCountQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperCountQuery.java @@ -1,7 +1,7 @@ package me.prettyprint.cassandra.model.thrift; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.query.SuperCountQuery; @@ -12,7 +12,7 @@ */ public final class ThriftSuperCountQuery extends AbstractThriftCountQuery implements SuperCountQuery { - public ThriftSuperCountQuery(KeyspaceOperator ko) { + public ThriftSuperCountQuery(Keyspace ko) { super(ko); } diff --git a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperSliceQuery.java b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperSliceQuery.java index 8c131b869..ef11316e9 100644 --- a/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperSliceQuery.java +++ b/src/main/java/me/prettyprint/cassandra/model/thrift/ThriftSuperSliceQuery.java @@ -4,12 +4,12 @@ import me.prettyprint.cassandra.model.AbstractSliceQuery; import me.prettyprint.cassandra.model.KeyspaceOperationCallback; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Result; import me.prettyprint.cassandra.model.Serializer; import me.prettyprint.cassandra.model.SuperSliceImpl; -import me.prettyprint.cassandra.service.Keyspace; +import me.prettyprint.cassandra.service.KeyspaceService; import me.prettyprint.cassandra.utils.Assert; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.SuperSlice; import me.prettyprint.hector.api.exceptions.HectorException; import me.prettyprint.hector.api.query.SuperSliceQuery; @@ -34,7 +34,7 @@ public final class ThriftSuperSliceQuery extends private String key; private final Serializer sNameSerializer; - public ThriftSuperSliceQuery(KeyspaceOperator ko, Serializer sNameSerializer, + public ThriftSuperSliceQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { super(ko, nameSerializer, valueSerializer); Assert.notNull(sNameSerializer, "sNameSerializer cannot be null"); @@ -49,10 +49,10 @@ public SuperSliceQuery setKey(String key) { @Override public Result> execute() { - return new Result>(keyspaceOperator.doExecute( + return new Result>(keyspace.doExecute( new KeyspaceOperationCallback>() { @Override - public SuperSlice doInKeyspace(Keyspace ks) throws HectorException { + public SuperSlice doInKeyspace(KeyspaceService ks) throws HectorException { ColumnParent columnParent = new ColumnParent(columnFamilyName); List thriftRet = ks.getSuperSlice(key, columnParent, getPredicate()); return new SuperSliceImpl(thriftRet, sNameSerializer, columnNameSerializer, valueSerializer); diff --git a/src/main/java/me/prettyprint/cassandra/service/BatchMutation.java b/src/main/java/me/prettyprint/cassandra/service/BatchMutation.java index e6b7f988f..41165a141 100644 --- a/src/main/java/me/prettyprint/cassandra/service/BatchMutation.java +++ b/src/main/java/me/prettyprint/cassandra/service/BatchMutation.java @@ -13,7 +13,7 @@ import org.apache.cassandra.thrift.SuperColumn; /** - * A BatchMutation object is used to construct the {@link Keyspace#batchMutate(BatchMutation)} call. + * A BatchMutation object is used to construct the {@link KeyspaceService#batchMutate(BatchMutation)} call. * * A BatchMutation encapsulates a set of updates (or insertions) and deletions all submitted at the * same time to cassandra. The BatchMutation object is useful for user friendly construction of diff --git a/src/main/java/me/prettyprint/cassandra/service/CassandraClient.java b/src/main/java/me/prettyprint/cassandra/service/CassandraClient.java index 7f8b7f2c9..2df732413 100644 --- a/src/main/java/me/prettyprint/cassandra/service/CassandraClient.java +++ b/src/main/java/me/prettyprint/cassandra/service/CassandraClient.java @@ -74,17 +74,17 @@ public enum FailoverPolicy { *

* Uses the default failover policy {@link #DEFAULT_FAILOVER_POLICY} */ - Keyspace getKeyspace(String keyspaceName) throws HectorException; + KeyspaceService getKeyspace(String keyspaceName) throws HectorException; /** * Gets s keyspace with the specified consistency level */ - Keyspace getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel) throws HectorException; + KeyspaceService getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel) throws HectorException; /** * Gets s keyspace with the specified consistency level and failover policy */ - Keyspace getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel, + KeyspaceService getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel, FailoverPolicy failoverPolicy) throws HectorException; @@ -116,7 +116,7 @@ Keyspace getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel, boolean hasErrors(); - void removeKeyspace(Keyspace k); + void removeKeyspace(KeyspaceService k); TimestampResolution getTimestampResolution(); diff --git a/src/main/java/me/prettyprint/cassandra/service/CassandraClientFactory.java b/src/main/java/me/prettyprint/cassandra/service/CassandraClientFactory.java index 4391c97df..0f7f8b949 100644 --- a/src/main/java/me/prettyprint/cassandra/service/CassandraClientFactory.java +++ b/src/main/java/me/prettyprint/cassandra/service/CassandraClientFactory.java @@ -68,7 +68,7 @@ public CassandraClient create() throws HectorException { CassandraClient c; try { c = new CassandraClientImpl(createThriftClient(cassandraHost), - new KeyspaceFactory(clientMonitor), cassandraHost, pool, + new KeyspaceServiceFactory(clientMonitor), cassandraHost, pool, pool.getCluster(), timestampResolution); } catch (Exception e) { throw new HectorException(e); diff --git a/src/main/java/me/prettyprint/cassandra/service/CassandraClientImpl.java b/src/main/java/me/prettyprint/cassandra/service/CassandraClientImpl.java index 7efe37892..aa7c6bbf0 100644 --- a/src/main/java/me/prettyprint/cassandra/service/CassandraClientImpl.java +++ b/src/main/java/me/prettyprint/cassandra/service/CassandraClientImpl.java @@ -43,14 +43,14 @@ /** List of known keyspaces */ private List keyspaces; - private final ConcurrentHashMap keyspaceMap = - new ConcurrentHashMap(); + private final ConcurrentHashMap keyspaceMap = + new ConcurrentHashMap(); private String clusterName; private String serverVersion; - private final KeyspaceFactory keyspaceFactory; + private final KeyspaceServiceFactory keyspaceFactory; private final CassandraClientPool cassandraClientPool; @@ -69,7 +69,7 @@ private final CassandraHost cassandraHost; public CassandraClientImpl(Cassandra.Client cassandraThriftClient, - KeyspaceFactory keyspaceFactory, + KeyspaceServiceFactory keyspaceFactory, CassandraHost cassandraHost, CassandraClientPool clientPools, Cluster cassandraCluster, @@ -93,34 +93,34 @@ public String getClusterName() throws HectorException { } @Override - public Keyspace getKeyspace(String keySpaceName) throws HectorException { + public KeyspaceService getKeyspace(String keySpaceName) throws HectorException { return getKeyspace(keySpaceName, DEFAULT_CONSISTENCY_LEVEL, DEFAULT_FAILOVER_POLICY); } @Override - public Keyspace getKeyspace(String keySpaceName, ConsistencyLevel consistency) throws IllegalArgumentException, + public KeyspaceService getKeyspace(String keySpaceName, ConsistencyLevel consistency) throws IllegalArgumentException, HNotFoundException, HectorTransportException { return getKeyspace(keySpaceName, consistency, DEFAULT_FAILOVER_POLICY); } @Override - public Keyspace getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel, + public KeyspaceService getKeyspace(String keyspaceName, ConsistencyLevel consistencyLevel, FailoverPolicy failoverPolicy) throws IllegalArgumentException, HNotFoundException, HectorTransportException { String keyspaceMapKey = buildKeyspaceMapName(keyspaceName, consistencyLevel, failoverPolicy); - KeyspaceImpl keyspace = keyspaceMap.get(keyspaceMapKey); + KeyspaceServiceImpl keyspace = keyspaceMap.get(keyspaceMapKey); if (keyspace == null) { if (getKeyspaces().contains(keyspaceName)) { try { Map> keyspaceDesc = cassandra.describe_keyspace(keyspaceName); - keyspace = (KeyspaceImpl) keyspaceFactory.create(this, keyspaceName, keyspaceDesc, + keyspace = (KeyspaceServiceImpl) keyspaceFactory.create(this, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy, cassandraClientPool); } catch (TException e) { throw new HectorTransportException(e); } catch (org.apache.cassandra.thrift.NotFoundException e) { throw new HNotFoundException(e); } - KeyspaceImpl tmp = keyspaceMap.putIfAbsent(keyspaceMapKey , keyspace); + KeyspaceServiceImpl tmp = keyspaceMap.putIfAbsent(keyspaceMapKey , keyspace); if (tmp != null) { // There was another put that got here before we did. keyspace = tmp; @@ -215,7 +215,7 @@ public void markAsError() { } @Override - public void removeKeyspace(Keyspace k) { + public void removeKeyspace(KeyspaceService k) { String key = buildKeyspaceMapName(k.getName(), k.getConsistencyLevel(), k.getFailoverPolicy()); keyspaceMap.remove(key); } diff --git a/src/main/java/me/prettyprint/cassandra/service/CassandraClientPool.java b/src/main/java/me/prettyprint/cassandra/service/CassandraClientPool.java index de5dfbc07..995e00497 100644 --- a/src/main/java/me/prettyprint/cassandra/service/CassandraClientPool.java +++ b/src/main/java/me/prettyprint/cassandra/service/CassandraClientPool.java @@ -128,7 +128,7 @@ public interface CassandraClientPool { * Returns the client associated with this keyspace to the connection pool. * This is just short for releaseClient(k.getClient()); */ - void releaseKeyspace(Keyspace k) throws HectorException; + void releaseKeyspace(KeyspaceService k) throws HectorException; /** * Tells all the clients in the pool to update their list of known hosts. diff --git a/src/main/java/me/prettyprint/cassandra/service/CassandraClientPoolImpl.java b/src/main/java/me/prettyprint/cassandra/service/CassandraClientPoolImpl.java index 9c6f68bee..ec431fc65 100644 --- a/src/main/java/me/prettyprint/cassandra/service/CassandraClientPoolImpl.java +++ b/src/main/java/me/prettyprint/cassandra/service/CassandraClientPoolImpl.java @@ -206,7 +206,7 @@ private CassandraClientPoolByHost getPool(CassandraClient c) { } @Override - public void releaseKeyspace(Keyspace k) throws HectorException { + public void releaseKeyspace(KeyspaceService k) throws HectorException { releaseClient(k.getClient()); } diff --git a/src/main/java/me/prettyprint/cassandra/service/Cluster.java b/src/main/java/me/prettyprint/cassandra/service/Cluster.java index 32c322c6c..d9f37b0ee 100644 --- a/src/main/java/me/prettyprint/cassandra/service/Cluster.java +++ b/src/main/java/me/prettyprint/cassandra/service/Cluster.java @@ -24,7 +24,7 @@ * //get a cluster: * Cluster cluster = getOrCreateCluster("MyCluster", "127.0.0.1:9170"); * //get a keyspace from this cluster: - * KeyspaceOperator ko = createKeyspaceOperator("Keyspace1", cluster); + * Keyspace ko = createKeyspace("Keyspace1", cluster); * //Create a mutator: * Mutator m = createMutator(ko); * // Make a mutation: diff --git a/src/main/java/me/prettyprint/cassandra/service/FailoverOperator.java b/src/main/java/me/prettyprint/cassandra/service/FailoverOperator.java index c8631c0cf..25b297823 100644 --- a/src/main/java/me/prettyprint/cassandra/service/FailoverOperator.java +++ b/src/main/java/me/prettyprint/cassandra/service/FailoverOperator.java @@ -60,7 +60,7 @@ * A reference to the keyspace operating in this context, if it's a keyspace. * This can be null if no keyspace in context. */ - private final Keyspace keyspace; + private final KeyspaceService keyspace; /** * @@ -70,7 +70,7 @@ * be null */ public FailoverOperator(FailoverPolicy policy, CassandraClientMonitor monitor, - CassandraClient client, CassandraClientPool clientPools, Keyspace keyspace) { + CassandraClient client, CassandraClientPool clientPools, KeyspaceService keyspace) { Assert.noneNull(policy, monitor, client, clientPools /* keyspace may be null*/); this.failoverPolicy = policy; this.knownHosts = new ArrayList(clientPools.getKnownHosts()); diff --git a/src/main/java/me/prettyprint/cassandra/service/Keyspace.java b/src/main/java/me/prettyprint/cassandra/service/KeyspaceService.java similarity index 99% rename from src/main/java/me/prettyprint/cassandra/service/Keyspace.java rename to src/main/java/me/prettyprint/cassandra/service/KeyspaceService.java index b1836e412..3cb9d29f8 100644 --- a/src/main/java/me/prettyprint/cassandra/service/Keyspace.java +++ b/src/main/java/me/prettyprint/cassandra/service/KeyspaceService.java @@ -24,7 +24,7 @@ * * @author rantav */ -public interface Keyspace { +public interface KeyspaceService { public static String CF_TYPE = "Type" ; public static String CF_TYPE_STANDARD = "Standard" ; diff --git a/src/main/java/me/prettyprint/cassandra/service/KeyspaceFactory.java b/src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceFactory.java similarity index 70% rename from src/main/java/me/prettyprint/cassandra/service/KeyspaceFactory.java rename to src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceFactory.java index 96bcc4bc8..88d876c2f 100644 --- a/src/main/java/me/prettyprint/cassandra/service/KeyspaceFactory.java +++ b/src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceFactory.java @@ -12,19 +12,19 @@ * @author Ran Tavory (rantav@gmail.com) * */ -/*package*/ class KeyspaceFactory { +/*package*/ class KeyspaceServiceFactory { private final CassandraClientMonitor clientMonitor; - public KeyspaceFactory(CassandraClientMonitor clientMonitor) { + public KeyspaceServiceFactory(CassandraClientMonitor clientMonitor) { this.clientMonitor = clientMonitor; } - public Keyspace create(CassandraClient client, String keyspaceName, + public KeyspaceService create(CassandraClient client, String keyspaceName, Map> keyspaceDesc, ConsistencyLevel consistencyLevel, FailoverPolicy failoverPolicy, CassandraClientPool clientPools) throws HectorTransportException { - return new KeyspaceImpl(client, keyspaceName, keyspaceDesc, consistencyLevel, + return new KeyspaceServiceImpl(client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy, clientPools, clientMonitor); } } diff --git a/src/main/java/me/prettyprint/cassandra/service/KeyspaceImpl.java b/src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceImpl.java similarity index 99% rename from src/main/java/me/prettyprint/cassandra/service/KeyspaceImpl.java rename to src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceImpl.java index cb4236ac2..32e9d38fd 100644 --- a/src/main/java/me/prettyprint/cassandra/service/KeyspaceImpl.java +++ b/src/main/java/me/prettyprint/cassandra/service/KeyspaceServiceImpl.java @@ -34,10 +34,10 @@ * @author Ran Tavory (rantav@gmail.com) * */ -/* package */class KeyspaceImpl implements Keyspace { +/* package */class KeyspaceServiceImpl implements KeyspaceService { @SuppressWarnings("unused") - private static final Logger log = LoggerFactory.getLogger(KeyspaceImpl.class); + private static final Logger log = LoggerFactory.getLogger(KeyspaceServiceImpl.class); private CassandraClient client; @@ -55,7 +55,7 @@ private final ExceptionsTranslator xtrans; - public KeyspaceImpl(CassandraClient client, String keyspaceName, + public KeyspaceServiceImpl(CassandraClient client, String keyspaceName, Map> keyspaceDesc, ConsistencyLevel consistencyLevel, FailoverPolicy failoverPolicy, CassandraClientPool clientPools, CassandraClientMonitor monitor) throws HectorTransportException { diff --git a/src/main/java/me/prettyprint/hector/api/Keyspace.java b/src/main/java/me/prettyprint/hector/api/Keyspace.java new file mode 100644 index 000000000..2c1a95dc8 --- /dev/null +++ b/src/main/java/me/prettyprint/hector/api/Keyspace.java @@ -0,0 +1,18 @@ +package me.prettyprint.hector.api; + +import me.prettyprint.cassandra.service.Cluster; + +/** + * + * @author Ran Tavory + * + */ +public interface Keyspace { + + void setConsistencyLevelPolicy(ConsistencyLevelPolicy cp); + + Cluster getCluster(); + + long createTimestamp(); + +} \ No newline at end of file diff --git a/src/main/java/me/prettyprint/hector/api/factory/HFactory.java b/src/main/java/me/prettyprint/hector/api/factory/HFactory.java index cf6276e39..a2fb83b93 100644 --- a/src/main/java/me/prettyprint/hector/api/factory/HFactory.java +++ b/src/main/java/me/prettyprint/hector/api/factory/HFactory.java @@ -4,9 +4,9 @@ import java.util.List; import java.util.Map; +import me.prettyprint.cassandra.model.ExecutingKeyspace; import me.prettyprint.cassandra.model.HColumnImpl; import me.prettyprint.cassandra.model.HSuperColumnImpl; -import me.prettyprint.cassandra.model.KeyspaceOperator; import me.prettyprint.cassandra.model.Mutator; import me.prettyprint.cassandra.model.QuorumAllConsistencyLevelPolicy; import me.prettyprint.cassandra.model.Serializer; @@ -30,6 +30,7 @@ import me.prettyprint.cassandra.service.CassandraHostConfigurator; import me.prettyprint.cassandra.service.Cluster; import me.prettyprint.hector.api.ConsistencyLevelPolicy; +import me.prettyprint.hector.api.Keyspace; import me.prettyprint.hector.api.beans.HColumn; import me.prettyprint.hector.api.beans.HSuperColumn; import me.prettyprint.hector.api.query.ColumnQuery; @@ -98,106 +99,106 @@ public static Cluster createCluster(String clusterName, CassandraHostConfigurato } /** - * Creates a KeyspaceOperator with the default consistency level policy. + * Creates a Keyspace with the default consistency level policy. * @param keyspace * @param cluster * @return */ - public static KeyspaceOperator createKeyspaceOperator(String keyspace, Cluster cluster) { - return createKeyspaceOperator(keyspace, cluster, createDefaultConsistencyLevelPolicy()); + public static Keyspace createKeyspace(String keyspace, Cluster cluster) { + return createKeyspace(keyspace, cluster, createDefaultConsistencyLevelPolicy()); } - public static KeyspaceOperator createKeyspaceOperator(String keyspace, Cluster cluster, + public static Keyspace createKeyspace(String keyspace, Cluster cluster, ConsistencyLevelPolicy consistencyLevelPolicy) { - return new KeyspaceOperator(keyspace, cluster, consistencyLevelPolicy); + return new ExecutingKeyspace(keyspace, cluster, consistencyLevelPolicy); } public static ConsistencyLevelPolicy createDefaultConsistencyLevelPolicy() { return DEFAULT_CONSISTENCY_LEVEL_POLICY; } - public static Mutator createMutator(KeyspaceOperator ko) { + public static Mutator createMutator(Keyspace ko) { return new Mutator(ko); } - public static ThriftCountQuery createCountQuery(KeyspaceOperator ko) { + public static ThriftCountQuery createCountQuery(Keyspace ko) { return new ThriftCountQuery(ko); } - public static ThriftSuperCountQuery createSuperCountQuery(KeyspaceOperator ko) { + public static ThriftSuperCountQuery createSuperCountQuery(Keyspace ko) { return new ThriftSuperCountQuery(ko); } - public static SubCountQuery createSubCountQuery(KeyspaceOperator ko, + public static SubCountQuery createSubCountQuery(Keyspace ko, Serializer superNameSerializer) { return new ThriftSubCountQuery(ko, superNameSerializer); } - public static ColumnQuery createColumnQuery(KeyspaceOperator ko, + public static ColumnQuery createColumnQuery(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftColumnQuery(ko, nameSerializer, valueSerializer); } - public static ColumnQuery createStringColumnQuery(KeyspaceOperator ko) { + public static ColumnQuery createStringColumnQuery(Keyspace ko) { StringSerializer se = StringSerializer.get(); return createColumnQuery(ko, se, se); } - public static SuperColumnQuery createSuperColumnQuery(KeyspaceOperator ko, + public static SuperColumnQuery createSuperColumnQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftSuperColumnQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } - public static SubColumnQuery createSubColumnQuery(KeyspaceOperator ko, + public static SubColumnQuery createSubColumnQuery(Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftSubColumnQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static MultigetSliceQuery createMultigetSliceQuery( - KeyspaceOperator ko, Serializer nameSerializer, Serializer valueSerializer) { + Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftMultigetSliceQuery(ko, nameSerializer, valueSerializer); } public static MultigetSuperSliceQuery createMultigetSuperSliceQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftMultigetSuperSliceQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static MultigetSubSliceQuery createMultigetSubSliceQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftMultigetSubSliceQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static RangeSlicesQuery createRangeSlicesQuery( - KeyspaceOperator ko, Serializer nameSerializer, Serializer valueSerializer) { + Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftRangeSlicesQuery(ko, nameSerializer, valueSerializer); } public static RangeSuperSlicesQuery createRangeSuperSlicesQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftRangeSuperSlicesQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static RangeSubSlicesQuery createRangeSubSlicesQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftRangeSubSlicesQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static SliceQuery createSliceQuery( - KeyspaceOperator ko, Serializer nameSerializer, Serializer valueSerializer) { + Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftSliceQuery(ko, nameSerializer, valueSerializer); } public static SubSliceQuery createSubSliceQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftSubSliceQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } public static SuperSliceQuery createSuperSliceQuery( - KeyspaceOperator ko, Serializer sNameSerializer, Serializer nameSerializer, + Keyspace ko, Serializer sNameSerializer, Serializer nameSerializer, Serializer valueSerializer) { return new ThriftSuperSliceQuery(ko, sNameSerializer, nameSerializer, valueSerializer); } diff --git a/src/main/java/me/prettyprint/hector/api/query/Query.java b/src/main/java/me/prettyprint/hector/api/query/Query.java index 67da1936e..94fb2ac09 100644 --- a/src/main/java/me/prettyprint/hector/api/query/Query.java +++ b/src/main/java/me/prettyprint/hector/api/query/Query.java @@ -10,7 +10,7 @@ * The common usage pattern is to create a query, set the required query attributes and invoke * {@link Query#execute()} such as in the following example: *

-    ColumnQuery q = createColumnQuery(keyspaceOperator, serializer, serializer);
+    ColumnQuery q = createColumnQuery(keyspace, serializer, serializer);
     Result> r = q.setKey(key).
         setName(COLUMN_NAME).
         setColumnFamily(CF_NAME).
diff --git a/src/test/java/me/prettyprint/cassandra/examples/ExampleDaoV2Test.java b/src/test/java/me/prettyprint/cassandra/examples/ExampleDaoV2Test.java
index 6d40e616b..33aae2a74 100644
--- a/src/test/java/me/prettyprint/cassandra/examples/ExampleDaoV2Test.java
+++ b/src/test/java/me/prettyprint/cassandra/examples/ExampleDaoV2Test.java
@@ -1,6 +1,6 @@
 package me.prettyprint.cassandra.examples;
 
-import static me.prettyprint.hector.api.factory.HFactory.createKeyspaceOperator;
+import static me.prettyprint.hector.api.factory.HFactory.createKeyspace;
 import static me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
@@ -45,7 +45,7 @@ public static void teardown() throws IOException {
   @Test
   public void testInsertGetDelete() throws HectorException {
     Cluster c = getOrCreateCluster("MyCluster", "localhost:9170");
-    ExampleDaoV2 dao = new ExampleDaoV2(createKeyspaceOperator("Keyspace1", c));
+    ExampleDaoV2 dao = new ExampleDaoV2(createKeyspace("Keyspace1", c));
     assertNull(dao.get("key"));
     dao.insert("key", "value");
     assertEquals("value", dao.get("key"));
@@ -56,7 +56,7 @@ public void testInsertGetDelete() throws HectorException {
   @Test
   public void testMultiInsertGetDelete() throws HectorException {
     Cluster c = getOrCreateCluster("MyCluster", "localhost:9170");
-    ExampleDaoV2 dao = new ExampleDaoV2(createKeyspaceOperator("Keyspace1", c));
+    ExampleDaoV2 dao = new ExampleDaoV2(createKeyspace("Keyspace1", c));
 
     // Get non-existing values
     Map ret = dao.getMulti("key1", "key2");
diff --git a/src/test/java/me/prettyprint/cassandra/model/AbstractSliceQueryTest.java b/src/test/java/me/prettyprint/cassandra/model/AbstractSliceQueryTest.java
index 27c4a9288..7b3050c48 100644
--- a/src/test/java/me/prettyprint/cassandra/model/AbstractSliceQueryTest.java
+++ b/src/test/java/me/prettyprint/cassandra/model/AbstractSliceQueryTest.java
@@ -7,6 +7,7 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import me.prettyprint.cassandra.serializers.StringSerializer;
+import me.prettyprint.hector.api.Keyspace;
 import me.prettyprint.hector.api.beans.Rows;
 
 import org.apache.cassandra.thrift.SlicePredicate;
@@ -18,7 +19,7 @@ public class AbstractSliceQueryTest {
 
 
   private static final StringSerializer se = StringSerializer.get();
-  private static final KeyspaceOperator ko = Mockito.mock(KeyspaceOperator.class);
+  private static final Keyspace ko = Mockito.mock(ExecutingKeyspace.class);
 
   @Test
   public void testGetSetPredicate_columnNames() {
@@ -48,7 +49,7 @@ public void testGetSetPredicate_range() {
 
   private static class ConcreteSliceQueury extends AbstractSliceQuery {
 
-    ConcreteSliceQueury(KeyspaceOperator ko, Serializer nameSerializer, Serializer valueSerializer) {
+    ConcreteSliceQueury(Keyspace ko, Serializer nameSerializer, Serializer valueSerializer) {
       super(ko, nameSerializer, valueSerializer);
     }
 
diff --git a/src/test/java/me/prettyprint/cassandra/model/ApiV2SystemTest.java b/src/test/java/me/prettyprint/cassandra/model/ApiV2SystemTest.java
index 0b0f64955..2b7825a7c 100644
--- a/src/test/java/me/prettyprint/cassandra/model/ApiV2SystemTest.java
+++ b/src/test/java/me/prettyprint/cassandra/model/ApiV2SystemTest.java
@@ -3,7 +3,7 @@
 import static me.prettyprint.hector.api.factory.HFactory.createColumn;
 import static me.prettyprint.hector.api.factory.HFactory.createColumnQuery;
 import static me.prettyprint.hector.api.factory.HFactory.createCountQuery;
-import static me.prettyprint.hector.api.factory.HFactory.createKeyspaceOperator;
+import static me.prettyprint.hector.api.factory.HFactory.createKeyspace;
 import static me.prettyprint.hector.api.factory.HFactory.createMultigetSliceQuery;
 import static me.prettyprint.hector.api.factory.HFactory.createMultigetSubSliceQuery;
 import static me.prettyprint.hector.api.factory.HFactory.createMultigetSuperSliceQuery;
@@ -34,6 +34,7 @@
 import me.prettyprint.cassandra.model.thrift.ThriftSuperCountQuery;
 import me.prettyprint.cassandra.serializers.StringSerializer;
 import me.prettyprint.cassandra.service.Cluster;
+import me.prettyprint.hector.api.Keyspace;
 import me.prettyprint.hector.api.beans.ColumnSlice;
 import me.prettyprint.hector.api.beans.HColumn;
 import me.prettyprint.hector.api.beans.HSuperColumn;
@@ -70,12 +71,12 @@ public class ApiV2SystemTest extends BaseEmbededServerSetupTest {
   private final static String KEYSPACE = "Keyspace1";
   private static final StringSerializer se = new StringSerializer();
   private Cluster cluster;
-  private KeyspaceOperator ko;
+  private Keyspace ko;
 
   @Before
   public void setupCase() {
     cluster = getOrCreateCluster("MyCluster", "127.0.0.1:9170");
-    ko = createKeyspaceOperator(KEYSPACE, cluster);
+    ko = createKeyspace(KEYSPACE, cluster);
   }
 
   @After
diff --git a/src/test/java/me/prettyprint/cassandra/model/MutatorTest.java b/src/test/java/me/prettyprint/cassandra/model/MutatorTest.java
index 9741733f5..d5e83b50f 100644
--- a/src/test/java/me/prettyprint/cassandra/model/MutatorTest.java
+++ b/src/test/java/me/prettyprint/cassandra/model/MutatorTest.java
@@ -1,7 +1,7 @@
 package me.prettyprint.cassandra.model;
 
 import static me.prettyprint.hector.api.factory.HFactory.createColumn;
-import static me.prettyprint.hector.api.factory.HFactory.createKeyspaceOperator;
+import static me.prettyprint.hector.api.factory.HFactory.createKeyspace;
 import static me.prettyprint.hector.api.factory.HFactory.createMutator;
 import static me.prettyprint.hector.api.factory.HFactory.createSuperColumn;
 import static me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster;
@@ -17,6 +17,7 @@
 import me.prettyprint.cassandra.service.CassandraClient;
 import me.prettyprint.cassandra.service.Cluster;
 import me.prettyprint.cassandra.utils.StringUtils;
+import me.prettyprint.hector.api.Keyspace;
 import me.prettyprint.hector.api.beans.HColumn;
 import me.prettyprint.hector.api.beans.HSuperColumn;
 
@@ -29,23 +30,23 @@ public class MutatorTest extends BaseEmbededServerSetupTest {
   private static final StringSerializer se = new StringSerializer();
 
   private Cluster cluster;
-  private KeyspaceOperator keyspaceOperator;
+  private Keyspace keyspace;
 
   @Before
   public void setupCase() {
     cluster = getOrCreateCluster("Test Cluster", "127.0.0.1:9170");
-    keyspaceOperator = createKeyspaceOperator("Keyspace1", cluster);
+    keyspace = createKeyspace("Keyspace1", cluster);
   }
 
   @After
   public void teardownCase() {
-    keyspaceOperator = null;
+    keyspace = null;
     cluster = null;
   }
 
   @Test
   public void testInsert() {
-    Mutator m = createMutator(keyspaceOperator);
+    Mutator m = createMutator(keyspace);
     MutationResult mr = m.insert("k", "Standard1", createColumn("name", "value", se, se));
     assertTrue("Execution time on single insert should be > 0",mr.getExecutionTimeMicro() > 0);
     assertTrue("Should have operated on a host", mr.getHostUsed() != null);
@@ -54,7 +55,7 @@ public void testInsert() {
 
   @Test
   public void testInsertSuper() {
-    Mutator m = createMutator(keyspaceOperator);
+    Mutator m = createMutator(keyspace);
     List> columnList = new ArrayList>();
     columnList.add(createColumn("name","value",se,se));
     HSuperColumn superColumn =
@@ -68,7 +69,7 @@ public void testInsertSuper() {
   public void testBatchMutationManagement() {
     String cf = "Standard1";
 
-    Mutator m = createMutator(keyspaceOperator);
+    Mutator m = createMutator(keyspace);
     for (int i = 0; i < 5; i++) {
       m.addInsertion("k" + i, cf, createColumn("name", "value" + i, se, se));
     }
diff --git a/src/test/java/me/prettyprint/cassandra/service/CassandraClientPoolTest.java b/src/test/java/me/prettyprint/cassandra/service/CassandraClientPoolTest.java
index d88db4a49..b9f503a87 100644
--- a/src/test/java/me/prettyprint/cassandra/service/CassandraClientPoolTest.java
+++ b/src/test/java/me/prettyprint/cassandra/service/CassandraClientPoolTest.java
@@ -92,7 +92,7 @@ public void testUpdateKnownHostsList()
     CassandraClient client = store.borrowClient("localhost", 9170);
     CassandraHost cassandraHost = client.getCassandraHost();
     assertNotNull(client);
-    Keyspace ks = client.getKeyspace("Keyspace1");
+    KeyspaceService ks = client.getKeyspace("Keyspace1");
     assertNotNull(ks);
     System.out.print(store.getKnownHosts());
     assertTrue("127.0.0.1 is in not in knownHosts", store.getKnownHosts().contains(cassandraHost));    
diff --git a/src/test/java/me/prettyprint/cassandra/service/CassandraClientTest.java b/src/test/java/me/prettyprint/cassandra/service/CassandraClientTest.java
index 8f4ba2dc4..c9729bdbc 100644
--- a/src/test/java/me/prettyprint/cassandra/service/CassandraClientTest.java
+++ b/src/test/java/me/prettyprint/cassandra/service/CassandraClientTest.java
@@ -36,7 +36,7 @@ public void setupCase() throws IllegalStateException, PoolExhaustedException, Ex
 
   @Test
   public void testGetKeySpaceString() throws HectorException {
-    Keyspace k = client.getKeyspace("Keyspace1");
+    KeyspaceService k = client.getKeyspace("Keyspace1");
     assertNotNull(k);
     assertEquals(CassandraClient.DEFAULT_CONSISTENCY_LEVEL, k.getConsistencyLevel());
 
@@ -51,7 +51,7 @@ public void testGetKeySpaceString() throws HectorException {
 
   @Test
   public void testGetKeySpaceConsistencyLevel() throws HectorException {
-    Keyspace k = client.getKeyspace("Keyspace1", ConsistencyLevel.ALL,
+    KeyspaceService k = client.getKeyspace("Keyspace1", ConsistencyLevel.ALL,
         CassandraClient.DEFAULT_FAILOVER_POLICY);
     assertNotNull(k);
     assertEquals(ConsistencyLevel.ALL, k.getConsistencyLevel());
@@ -64,7 +64,7 @@ public void testGetKeySpaceConsistencyLevel() throws HectorException {
 
   @Test
   public void testGetKeySpaceFailoverPolicy() throws HectorException {
-    Keyspace k = client.getKeyspace("Keyspace1", CassandraClient.DEFAULT_CONSISTENCY_LEVEL,
+    KeyspaceService k = client.getKeyspace("Keyspace1", CassandraClient.DEFAULT_CONSISTENCY_LEVEL,
         FailoverPolicy.FAIL_FAST);
     assertNotNull(k);
     assertEquals(FailoverPolicy.FAIL_FAST, k.getFailoverPolicy());
diff --git a/src/test/java/me/prettyprint/cassandra/service/FailoverOperatorTest.java b/src/test/java/me/prettyprint/cassandra/service/FailoverOperatorTest.java
index 571bb9221..c6d07d069 100644
--- a/src/test/java/me/prettyprint/cassandra/service/FailoverOperatorTest.java
+++ b/src/test/java/me/prettyprint/cassandra/service/FailoverOperatorTest.java
@@ -64,7 +64,7 @@ public void setup() {
     clientHosts.put(h2cassandra, hosts.get(1));
     clientHosts.put(h3cassandra, hosts.get(2));
 
-    keyspace1Desc.put(Keyspace.CF_TYPE, Keyspace.CF_TYPE_STANDARD);
+    keyspace1Desc.put(KeyspaceService.CF_TYPE, KeyspaceService.CF_TYPE_STANDARD);
     keyspaceDesc.put("Standard1", keyspace1Desc);
 
     cp.setColumn(bytes("testFailover"));
@@ -93,7 +93,7 @@ public void testFailover() throws HectorException,
 
     // Create one positive pass without failures
     FailoverPolicy failoverPolicy = FailoverPolicy.FAIL_FAST;
-    Keyspace ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
+    KeyspaceService ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
         failoverPolicy, clientPools, monitor);
 
     ks.insert("key", cp, bytes("value"));
@@ -113,7 +113,7 @@ public void testFailover() throws HectorException,
     // Now try the ON_FAIL_TRY_ONE_NEXT_AVAILABLE policy
     // h1 fails, h3 succeeds
     failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ONE_NEXT_AVAILABLE;
-    ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
+    ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
         clientPools, monitor);
 
     ks.insert("key", cp, bytes("value"));
@@ -124,7 +124,7 @@ public void testFailover() throws HectorException,
     verify(clientPools).borrowClient(clientHosts.get(cc));
 
     // make both h1 and h2 fail
-    ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
+    ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
         clientPools, monitor);
     doThrow(new org.apache.cassandra.thrift.TimedOutException()).when(cc).insert(anyString(), anyString(),
         (ColumnPath) anyObject(), (byte[]) anyObject(), anyLong(), Matchers.any());
@@ -139,7 +139,7 @@ public void testFailover() throws HectorException,
     // Now try the full cycle
     // h1 fails, h2 fails, h3 succeeds
     failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE;
-    ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
+    ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
         clientPools, monitor);
 
     ks.insert("key", cp, bytes("value"));
@@ -148,7 +148,7 @@ public void testFailover() throws HectorException,
         (byte[]) anyObject(), anyLong(), Matchers.any());
 
     // now fail them all. h1 fails, h2 fails, h3 fails
-    ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
+    ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel, failoverPolicy,
         clientPools, monitor);
     doThrow(new org.apache.cassandra.thrift.TimedOutException()).when(h2cassandra).insert(anyString(), anyString(),
         (ColumnPath) anyObject(), (byte[]) anyObject(), anyLong(), Matchers.any());
@@ -173,7 +173,7 @@ public void testFailover() throws HectorException,
   public void testFailoverBug8() throws IllegalStateException, PoolExhaustedException, Exception {
 
     FailoverPolicy failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE;
-    Keyspace ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
+    KeyspaceService ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
         failoverPolicy, clientPools, monitor);
 
     // fail the call, use a transport exception.
@@ -201,7 +201,7 @@ public void testFailoverBug8() throws IllegalStateException, PoolExhaustedExcept
   @Test
   public void testFailoverBug14() throws IllegalStateException, PoolExhaustedException, Exception {
     FailoverPolicy failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE;
-    Keyspace ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
+    KeyspaceService ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
         failoverPolicy, clientPools, monitor);
 
     // fail the call, use a transport exception
@@ -232,7 +232,7 @@ public void testFailoverBug14() throws IllegalStateException, PoolExhaustedExcep
   @Test
   public void testFailoverBug53() throws IllegalStateException, PoolExhaustedException, Exception {
     FailoverPolicy failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE;
-    Keyspace ks = new KeyspaceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
+    KeyspaceService ks = new KeyspaceServiceImpl(h1client, keyspaceName, keyspaceDesc, consistencyLevel,
         failoverPolicy, clientPools, monitor);
 
     // fail the call, use a transport exception
diff --git a/src/test/java/me/prettyprint/cassandra/service/KeyspaceTest.java b/src/test/java/me/prettyprint/cassandra/service/KeyspaceTest.java
index a577a330f..366ae6c26 100644
--- a/src/test/java/me/prettyprint/cassandra/service/KeyspaceTest.java
+++ b/src/test/java/me/prettyprint/cassandra/service/KeyspaceTest.java
@@ -52,7 +52,7 @@
 public class KeyspaceTest extends BaseEmbededServerSetupTest {
 
   private CassandraClient client;
-  private Keyspace keyspace;
+  private KeyspaceService keyspace;
 
   @Before
   public void setupCase() throws IllegalStateException, PoolExhaustedException, Exception {