You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@gora.apache.org by le...@apache.org on 2012/05/18 13:39:38 UTC
svn commit: r1340074 - in /gora/trunk: CHANGES.txt
gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
Author: lewismc
Date: Fri May 18 11:39:38 2012
New Revision: 1340074
URL: http://svn.apache.org/viewvc?rev=1340074&view=rev
Log:
commit to address GORA-95 and update to CHANGES.txt
Modified:
gora/trunk/CHANGES.txt
gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
Modified: gora/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/gora/trunk/CHANGES.txt?rev=1340074&r1=1340073&r2=1340074&view=diff
==============================================================================
--- gora/trunk/CHANGES.txt (original)
+++ gora/trunk/CHANGES.txt Fri May 18 11:39:38 2012
@@ -6,6 +6,8 @@ Gora Change Log
0.3 (trunk) Current Development:
+* GORA-95 Catch incorrect mapping configurations and implement sufficient logging in CassandraMapping. (lewismc)
+
* GORA-** Commit to fix classloading for CLI execution (lewismc)
* GORA-122 gora-accumulo/lib is not cleaned after mvn clean (lewismc)
Modified: gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
URL: http://svn.apache.org/viewvc/gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java?rev=1340074&r1=1340073&r2=1340074&view=diff
==============================================================================
--- gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java (original)
+++ gora/trunk/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java Fri May 18 11:39:38 2012
@@ -75,31 +75,75 @@ public class CassandraMapping {
/**
* Look up the column family from its name.
*/
- private Map<String, BasicColumnFamilyDefinition> columnFamilyDefinitions = new HashMap<String, BasicColumnFamilyDefinition>();
+ private Map<String, BasicColumnFamilyDefinition> columnFamilyDefinitions =
+ new HashMap<String, BasicColumnFamilyDefinition>();
+
+ /**
+ * Simply gets the Cassandra host name.
+ * @return hostName
+ */
public String getHostName() {
return this.hostName;
}
-
+
+ /**
+ * Simply gets the Cassandra cluster (the machines (nodes)
+ * in a logical Cassandra instance) name.
+ * Clusters can contain multiple keyspaces.
+ * @return clusterName
+ */
public String getClusterName() {
return this.clusterName;
}
+ /**
+ * Simply gets the Cassandra namespace for ColumnFamilies, typically one per application
+ * @return
+ */
public String getKeyspaceName() {
return this.keyspaceName;
}
-
+ /**
+ * Primary class for loading Cassandra configuration from the 'MAPPING_FILE'.
+ *
+ * @throws JDOMException
+ * @throws IOException
+ */
@SuppressWarnings("unchecked")
public void loadConfiguration() throws JDOMException, IOException {
SAXBuilder saxBuilder = new SAXBuilder();
Document document = saxBuilder.build(getClass().getClassLoader().getResourceAsStream(MAPPING_FILE));
+ if (document == null) {
+ LOG.warn("Mapping file '" + MAPPING_FILE + "' could not be found!");
+ }
Element root = document.getRootElement();
Element keyspace = root.getChild(KEYSPACE_ELEMENT);
+ if (keyspace == null) {
+ LOG.warn("Error locating Cassandra Keyspace element!");
+ } else {
+ LOG.info("Located Cassandra Keyspace: '" + KEYSPACE_ELEMENT + "'");
+ }
this.keyspaceName = keyspace.getAttributeValue(NAME_ATTRIBUTE);
+ if (this.keyspaceName == null) {
+ LOG.warn("Error locating Cassandra Keyspace name attribute!");
+ } else {
+ LOG.info("Located Cassandra Keyspace name: '" + NAME_ATTRIBUTE + "'");
+ }
this.clusterName = keyspace.getAttributeValue(CLUSTER_ATTRIBUTE);
+ if (this.clusterName == null) {
+ LOG.warn("Error locating Cassandra Keyspace cluster attribute!");
+ } else {
+ LOG.info("Located Cassandra Keyspace cluster: '" + CLUSTER_ATTRIBUTE + "'");
+ }
this.hostName = keyspace.getAttributeValue(HOST_ATTRIBUTE);
+ if (this.hostName == null) {
+ LOG.warn("Error locating Cassandra Keyspace host attribute!");
+ } else {
+ LOG.info("Located Cassandra Keyspace host: '" + HOST_ATTRIBUTE + "'");
+ }
// load column family definitions
List<Element> elements = keyspace.getChildren();
@@ -107,10 +151,16 @@ public class CassandraMapping {
BasicColumnFamilyDefinition cfDef = new BasicColumnFamilyDefinition();
String familyName = element.getAttributeValue(NAME_ATTRIBUTE);
-
+ if (familyName == null) {
+ LOG.warn("Error locating column family name attribute!");
+ } else {
+ LOG.info("Located column family name: '" + NAME_ATTRIBUTE + "'");
+ }
String superAttribute = element.getAttributeValue(SUPER_ATTRIBUTE);
if (superAttribute != null) {
+ LOG.info("Located super column family");
this.superFamilies.add(familyName);
+ LOG.info("Added super column family: '" + familyName + "'");
cfDef.setColumnType(ColumnType.SUPER);
cfDef.setSubComparatorType(ComparatorType.UTF8TYPE);
}