Author: kazk
Date: Thu Jan 31 21:30:07 2013
New Revision: 1441200
URL: http://svn.apache.org/viewvc?rev=1441200&view=rev
Log:
GORA-197 gora-cassandra requires BytesType for Cassandra column family validator
Modified:
gora/trunk/CHANGES.txt
gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
Modified: gora/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/gora/trunk/CHANGES.txt?rev=1441200&r1=1441199&r2=1441200&view=diff
==============================================================================
--- gora/trunk/CHANGES.txt (original)
+++ gora/trunk/CHANGES.txt Thu Jan 31 21:30:07 2013
@@ -6,6 +6,8 @@ Gora Change Log
trunk (current development)
+* GORA-197 gora-cassandra requires BytesType for Cassandra column family
validator (kazk)
+
* GORA-196 OSX JDK7 failed to load snappy native library from
snappy-java-1.0.4.1.jar (kazk)
* GORA-182 Nutch 2.1 does not work with gora-cassandra 0.2.1 (kazk)
Modified:
gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
URL:
http://svn.apache.org/viewvc/gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java?rev=1441200&r1=1441199&r2=1441200&view=diff
==============================================================================
---
gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
(original)
+++
gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java
Thu Jan 31 21:30:07 2013
@@ -37,6 +37,7 @@ import me.prettyprint.hector.api.beans.O
import me.prettyprint.hector.api.beans.Row;
import me.prettyprint.hector.api.beans.SuperRow;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
+import me.prettyprint.hector.api.ddl.ComparatorType;
import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
@@ -116,6 +117,12 @@ public class CassandraClient<K, T extend
KeyspaceDefinition keyspaceDefinition =
this.cluster.describeKeyspace(this.cassandraMapping.getKeyspaceName());
if (keyspaceDefinition == null) {
List<ColumnFamilyDefinition> columnFamilyDefinitions =
this.cassandraMapping.getColumnFamilyDefinitions();
+
+ // GORA-197
+ for (ColumnFamilyDefinition cfDef : columnFamilyDefinitions) {
+ cfDef.setComparatorType(ComparatorType.BYTESTYPE);
+ }
+
keyspaceDefinition =
HFactory.createKeyspaceDefinition(this.cassandraMapping.getKeyspaceName(),
"org.apache.cassandra.locator.SimpleStrategy", 1, columnFamilyDefinitions);
this.cluster.addKeyspace(keyspaceDefinition, true);
// LOG.info("Keyspace '" + this.cassandraMapping.getKeyspaceName() + "'
in cluster '" + this.cassandraMapping.getClusterName() + "' was created on host
'" + this.cassandraMapping.getHostName() + "'");
@@ -136,7 +143,25 @@ public class CassandraClient<K, T extend
keyspaceDefinition = null;
}
-
+ else {
+ List<ColumnFamilyDefinition> cfDefs = keyspaceDefinition.getCfDefs();
+ if (cfDefs == null || cfDefs.size() == 0) {
+ LOG.warn(keyspaceDefinition.getName() + " does not have any column
family.");
+ }
+ else {
+ for (ColumnFamilyDefinition cfDef : cfDefs) {
+ ComparatorType comparatorType = cfDef.getComparatorType();
+ if (! comparatorType.equals(ComparatorType.BYTESTYPE)) {
+ // GORA-197
+ LOG.warn("The comparator type of " + cfDef.getName() + " column
family is " + comparatorType.getTypeName()
+ + ", not BytesType. It may cause a fatal error on column
validation later.");
+ }
+ else {
+ // LOG.info("The comparator type of " + cfDef.getName() + " column
family is " + comparatorType.getTypeName() + ".");
+ }
+ }
+ }
+ }
}
/**