Repository: gora Updated Branches: refs/heads/master a5f048277 -> d48708eca
Fix for GORA-376: Gora Cassandra doesn't accept user credentials for connection Project: http://git-wip-us.apache.org/repos/asf/gora/repo Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/d48708ec Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/d48708ec Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/d48708ec Branch: refs/heads/master Commit: d48708eca5035fb576983e99e13f89045c1006b6 Parents: a5f0482 Author: vijuk <[email protected]> Authored: Wed Sep 24 18:15:20 2014 -0700 Committer: vijuk <[email protected]> Committed: Wed Sep 24 18:15:20 2014 -0700 ---------------------------------------------------------------------- .../gora/cassandra/store/CassandraClient.java | 27 ++++++++++++++++++-- .../gora/cassandra/store/CassandraStore.java | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/gora/blob/d48708ec/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java index 9e8cd7b..cb54ed1 100644 --- a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraClient.java @@ -94,6 +94,14 @@ public class CassandraClient<K, T extends PersistentBase> { private Serializer<K> keySerializer; /** + * Method to maintain backward compatibility with earlier versions. + */ + public void initialize(Class<K> keyClass, Class<T> persistentClass) + throws Exception { + initialize(keyClass, persistentClass, null); + } + + /** * Given our key, persistentClass from * {@link org.apache.gora.cassandra.store.CassandraStore#initialize(Class, Class, Properties)} * we make best efforts to dictate our data model. @@ -105,17 +113,32 @@ public class CassandraClient<K, T extends PersistentBase> { * defining a mutator from and by which we can mutate this object. * @param keyClass the Key by which we wish o assign a record object * @param persistentClass the generated {@link org.apache.org.gora.persistency.Peristent} bean representing the data. + * @param properties key value pairs from gora.properties * @throws Exception */ - public void initialize(Class<K> keyClass, Class<T> persistentClass) throws Exception { + public void initialize(Class<K> keyClass, Class<T> persistentClass, Properties properties) throws Exception { this.keyClass = keyClass; // get cassandra mapping with persistent class this.persistentClass = persistentClass; this.cassandraMapping = CassandraMappingManager.getManager().get(persistentClass); + Map<String, String> accessMap = null; + if (properties != null) { + String username = properties + .getProperty("gora.cassandrastore.username"); + if (username != null) { + accessMap = new HashMap<String, String>(); + accessMap.put("username", username); + String password = properties + .getProperty("gora.cassandrastore.password"); + if (password != null) { + accessMap.put("password", password); + } + } + } this.cluster = HFactory.getOrCreateCluster(this.cassandraMapping.getClusterName(), - new CassandraHostConfigurator(this.cassandraMapping.getHostName())); + new CassandraHostConfigurator(this.cassandraMapping.getHostName()), accessMap); // add keyspace to cluster checkKeyspace(); http://git-wip-us.apache.org/repos/asf/gora/blob/d48708ec/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java index 496f1f0..660391e 100644 --- a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java @@ -149,7 +149,7 @@ public class CassandraStore<K, T extends PersistentBase> extends DataStoreBase<K readOpConsLvl = DataStoreFactory.findProperty(properties, this, READ_OP_CL, null); writeOpConsLvl = DataStoreFactory.findProperty(properties, this, WRITE_OP_CL, null); } - this.cassandraClient.initialize(keyClass, persistent); + this.cassandraClient.initialize(keyClass, persistent, properties); } catch (Exception e) { LOG.error(e.getMessage()); LOG.error(e.getStackTrace().toString());
