Author: [email protected]
Date: Mon Sep 19 12:08:24 2011
New Revision: 1395
Log:
[AMDATUCASSANDRA-86] Added HectorCassandraPersistenceManager interface with
getHectorKeyspace() method to allow direct Hector queries using HFactory class
Added:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
Modified:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
Added:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
==============================================================================
--- (empty file)
+++
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/HectorCassandraPersistenceManager.java
Mon Sep 19 12:08:24 2011
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2010, 2011 The Amdatu Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.amdatu.cassandra.persistencemanager;
+
+import me.prettyprint.hector.api.Keyspace;
+
+/**
+ * Hector specific Persistence Manager interface. This interface adds some
methods which are needed
+ * to use the Hector API directly.
+ * @author ivol
+ *
+ */
+public interface HectorCassandraPersistenceManager extends
CassandraPersistenceManager {
+ /**
+ * Retrieves the Hector keyspace. The Hector keyspace is required in all
query methods of the
+ * Hector API, available in HFactory.
+ * @return the Hector keyspace
+ */
+ Keyspace getHectorKeyspace();
+}
Modified:
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
==============================================================================
---
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
(original)
+++
trunk/amdatu-cassandra/cassandra-persistencemanager/src/main/java/org/amdatu/cassandra/persistencemanager/service/HectorCassandraPersistenceManagerImpl.java
Mon Sep 19 12:08:24 2011
@@ -47,6 +47,8 @@
import me.prettyprint.hector.api.query.RangeSlicesQuery;
import me.prettyprint.hector.api.query.RangeSuperSlicesQuery;
+import
org.amdatu.cassandra.persistencemanager.HectorCassandraPersistenceManager;
+
/**
@@ -61,7 +63,7 @@
*
* @author ivol
*/
-public class HectorCassandraPersistenceManagerImpl extends
CassandraPersistenceManagerBaseImpl {
+public class HectorCassandraPersistenceManagerImpl extends
CassandraPersistenceManagerBaseImpl implements
HectorCassandraPersistenceManager {
public void start() {
super.start();
@@ -71,7 +73,7 @@
// (a problem where also other developers ran into;
http://permalink.gmane.org/gmane.comp.db.hector.user/566)
// Workaround is to invoke getKeyspace() to ensure Hector classes are
loaded and then invoke setLevel
// to WARNING for this logger.
- getKeyspace();
+ getHectorKeyspace();
Logger.getLogger("me.prettyprint.cassandra.hector.TimingLogger").setLevel(Level.WARNING);
}
@@ -95,7 +97,7 @@
}
}
- private Keyspace getKeyspace() {
+ public Keyspace getHectorKeyspace() {
ClassLoader oldClassLoader =
Thread.currentThread().getContextClassLoader();
try {
// Perform a classloader switch to prevent log4j trying to load
classes from the system classloader
@@ -118,7 +120,7 @@
StringSerializer stringSerializer = StringSerializer.get();
StringSerializer nameSerializer = StringSerializer.get();
QueryResult<Integer> result =
- HFactory.createCountQuery(getKeyspace(), stringSerializer,
nameSerializer)
+ HFactory.createCountQuery(getHectorKeyspace(), stringSerializer,
nameSerializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setRange(null, null, 1)
@@ -135,7 +137,7 @@
+ columnFamilyName + "' is of type 'Super'");
}
QueryResult<HSuperColumn<String, String, String>> result =
- HFactory.createSuperColumnQuery(getKeyspace(), serializer,
serializer, serializer, serializer)
+ HFactory.createSuperColumnQuery(getHectorKeyspace(),
serializer, serializer, serializer, serializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setSuperName(superColumnName)
@@ -151,7 +153,7 @@
}
else {
QueryResult<HColumn<String, String>> result =
- HFactory.createColumnQuery(getKeyspace(), serializer,
serializer, serializer)
+ HFactory.createColumnQuery(getHectorKeyspace(), serializer,
serializer, serializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setName(columnName)
@@ -228,7 +230,7 @@
public void deleteRow(final String columnFamilyName, final String rowKey) {
StringSerializer serializer = StringSerializer.get();
- Mutator<String> mutator = HFactory.createMutator(getKeyspace(),
serializer);
+ Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(),
serializer);
mutator.delete(rowKey, columnFamilyName, null, serializer);
}
@@ -239,7 +241,7 @@
public void deleteColumn(final String columnFamilyName, final String
rowKey,
final String superColumnName, final String columnName) {
StringSerializer serializer = StringSerializer.get();
- Mutator<String> mutator = HFactory.createMutator(getKeyspace(),
serializer);
+ Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(),
serializer);
if (isSuper(columnFamilyName, superColumnName, columnName)) {
mutator.subDelete(rowKey, columnFamilyName, superColumnName,
columnName, serializer, serializer);
}
@@ -259,7 +261,7 @@
}
public String toString() {
- return "HectorCassandraPersistenceManager for keyspace '" +
getKeyspace() + "'";
+ return "HectorCassandraPersistenceManager for keyspace '" +
getHectorKeyspace() + "'";
}
/**
@@ -270,7 +272,7 @@
StringSerializer serializer = StringSerializer.get();
Serializer<T> valueSerializer = getSerializer(clazz);
QueryResult<SuperSlice<String, String, T>> result =
- HFactory.createSuperSliceQuery(getKeyspace(), serializer,
serializer, serializer, valueSerializer)
+ HFactory.createSuperSliceQuery(getHectorKeyspace(), serializer,
serializer, serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setRange(null, null, false, COLUMN_LIMIT)
@@ -291,7 +293,7 @@
StringSerializer serializer = StringSerializer.get();
Serializer<T> valueSerializer = getSerializer(clazz);
QueryResult<ColumnSlice<String, T>> result =
- HFactory.createSliceQuery(getKeyspace(), serializer, serializer,
valueSerializer)
+ HFactory.createSliceQuery(getHectorKeyspace(), serializer,
serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setRange(null, null, false, COLUMN_LIMIT)
@@ -343,7 +345,7 @@
Serializer<T> valueSerializer = getSerializer(clazz);
if (isSuper(columnFamilyName, superColumnName, columnName)) {
QueryResult<HSuperColumn<String, String, T>> result =
- HFactory.createSuperColumnQuery(getKeyspace(), serializer,
serializer, serializer, valueSerializer)
+ HFactory.createSuperColumnQuery(getHectorKeyspace(),
serializer, serializer, serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setSuperName(superColumnName)
@@ -360,7 +362,7 @@
}
else {
QueryResult<HColumn<String, T>> result =
- HFactory.createColumnQuery(getKeyspace(), serializer,
serializer, valueSerializer)
+ HFactory.createColumnQuery(getHectorKeyspace(), serializer,
serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKey(rowKey)
.setName(columnName)
@@ -378,7 +380,7 @@
final String superColumnName, final String columnName, final T value) {
StringSerializer stringSerializer = StringSerializer.get();
Serializer<T> valueSerializer = getSerializer(value);
- Mutator<String> mutator = HFactory.createMutator(getKeyspace(),
stringSerializer);
+ Mutator<String> mutator = HFactory.createMutator(getHectorKeyspace(),
stringSerializer);
if (isSuper(columnFamilyName, superColumnName, columnName)) {
List<HColumn<String, T>> column =
toList(HFactory.createColumn(columnName, value,
stringSerializer, valueSerializer));
@@ -417,7 +419,7 @@
StringSerializer serializer = StringSerializer.get();
Serializer<T> valueSerializer = getSerializer(clazz);
RangeSuperSlicesQuery<String, String, String, T> rangeSlicesQuery =
- HFactory.createRangeSuperSlicesQuery(getKeyspace(), serializer,
serializer, serializer, valueSerializer)
+ HFactory.createRangeSuperSlicesQuery(getHectorKeyspace(),
serializer, serializer, serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKeys(null, null)
.setRange(superColumn, superColumn, false, colLimit)
@@ -445,7 +447,7 @@
StringSerializer serializer = StringSerializer.get();
Serializer<T> valueSerializer = getSerializer(clazz);
RangeSlicesQuery<String, String, T> rangeSlicesQuery =
- HFactory.createRangeSlicesQuery(getKeyspace(), serializer,
serializer, valueSerializer)
+ HFactory.createRangeSlicesQuery(getHectorKeyspace(), serializer,
serializer, valueSerializer)
.setColumnFamily(columnFamilyName)
.setKeys(null, null)
.setRange(column, column, false, colLimit)
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits