[1/3] gora git commit: Removing old gora-cassandra module

2017-08-23 Thread lewismc
Repository: gora
Updated Branches:
  refs/heads/master 3d4e1d69a -> cbed41d00


http://git-wip-us.apache.org/repos/asf/gora/blob/cbed41d0/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/package-info.java
--
diff --git 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/package-info.java
 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/package-info.java
deleted file mode 100644
index e6d0176..000
--- 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/store/package-info.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.
- */
-/**
- * This package contains all the Cassandra store related classes.
- */
-package org.apache.gora.cassandra.store;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/gora/blob/cbed41d0/gora-cassandra/src/test/conf/cassandra.yaml
--
diff --git a/gora-cassandra/src/test/conf/cassandra.yaml 
b/gora-cassandra/src/test/conf/cassandra.yaml
deleted file mode 100644
index 772648d..000
--- a/gora-cassandra/src/test/conf/cassandra.yaml
+++ /dev/null
@@ -1,418 +0,0 @@
-# Cassandra storage config YAML
-
-# NOTE:
-# See http://wiki.apache.org/cassandra/StorageConfiguration for
-# full explanations of configuration directives
-# /NOTE
-
-# The name of the cluster. This is mainly used to prevent machines in
-# one logical cluster from joining another.
-cluster_name: "Gora Cassandra Test Cluster"
-
-# You should always specify InitialToken when setting up a production
-# cluster for the first time, and often when adding capacity later.
-# The principle is that each node should be given an equal slice of
-# the token ring; see http://wiki.apache.org/cassandra/Operations
-# for more details.
-#
-# If blank, Cassandra will request a token bisecting the range of
-# the heaviest-loaded existing node. If there is no load information
-# available, such as is the case with a new cluster, it will pick
-# a random token, which will lead to hot spots.
-initial_token:
-
-# See http://wiki.apache.org/cassandra/HintedHandoff
-hinted_handoff_enabled: true
-# this defines the maximum amount of time a dead host will have hints
-# generated. After it has been dead this long, hints will be dropped.
-max_hint_window_in_ms: 360 # one hour
-# Sleep this long after delivering each row or row fragment
-#hinted_handoff_throttle_delay_in_ms: 50 (deprecated in 2.0.2)
-
-# authentication backend, implementing IAuthenticator; used to identify users
-authenticator: org.apache.cassandra.auth.AllowAllAuthenticator
-
-# authorization backend, implementing IAuthority; used to limit access/provide 
permissions
-authorizer: org.apache.cassandra.auth.AllowAllAuthorizer
-
-# The partitioner is responsible for distributing rows (by key) across
-# nodes in the cluster. Any IPartitioner may be used, including your
-# own as long as it is on the classpath. Out of the box, Cassandra
-# provides org.apache.cassandra.dht.RandomPartitioner
-# org.apache.cassandra.dht.ByteOrderedPartitioner,
-# org.apache.cassandra.dht.OrderPreservingPartitioner (deprecated),
-# and org.apache.cassandra.dht.CollatingOrderPreservingPartitioner
-# (deprecated).
-#
-# - RandomPartitioner distributes rows across the cluster evenly by md5.
-# When in doubt, this is the best option.
-# - ByteOrderedPartitioner orders rows lexically by key bytes. BOP allows
-# scanning rows in key order, but the ordering can generate hot spots
-# for sequential insertion workloads.
-# - OrderPreservingPartitioner is an obsolete form of BOP, that stores
-# - keys in a less-efficient format and only works with keys that are
-# UTF8-encoded Strings.
-# - CollatingOPP colates according to EN,US rules rather than lexical byte
-# ordering. Use this as an example if you need custom collation.
-#
-# See http://wiki.apache.org/cassandra/Operations for more on
-# partitioners and token selection.
-# partitioner: org.apache.cassandra.dht.RandomPartitioner
-partitioner: org.apache.cassandra.dht.ByteOrderedPartitioner
-
-# directories where Cassandra should store data on disk.
-data_file_directories:
-

[3/3] gora git commit: Removing old gora-cassandra module

2017-08-23 Thread lewismc
Removing old gora-cassandra module


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/cbed41d0
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/cbed41d0
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/cbed41d0

Branch: refs/heads/master
Commit: cbed41d00ab55776b8f7647ffe00818ff736ddba
Parents: 3d4e1d6
Author: Lewis John McGibbney 
Authored: Wed Aug 23 14:05:38 2017 -0700
Committer: Lewis John McGibbney 
Committed: Wed Aug 23 14:05:38 2017 -0700

--
 gora-cassandra/conf/.gitignore  |  15 -
 gora-cassandra/pom.xml  | 192 --
 gora-cassandra/src/examples/java/.gitignore |  15 -
 .../org/apache/gora/cassandra/package-info.java |  20 -
 .../gora/cassandra/query/CassandraColumn.java   |  97 ---
 .../gora/cassandra/query/CassandraQuery.java| 107 ---
 .../gora/cassandra/query/CassandraResult.java   | 194 --
 .../cassandra/query/CassandraResultSet.java |  54 --
 .../gora/cassandra/query/CassandraRow.java  |  58 --
 .../cassandra/query/CassandraSubColumn.java | 111 ---
 .../cassandra/query/CassandraSuperColumn.java   | 197 --
 .../gora/cassandra/query/package-info.java  |  21 -
 .../serializers/AvroSerializerUtil.java |  94 ---
 .../serializers/CharSequenceSerializer.java |  64 --
 .../serializers/GoraSerializerTypeInferer.java  | 230 ---
 .../cassandra/serializers/ListSerializer.java   | 193 --
 .../cassandra/serializers/MapSerializer.java| 223 ---
 .../serializers/SpecificFixedSerializer.java| 119 
 .../gora/cassandra/serializers/TypeUtils.java   | 232 ---
 .../cassandra/serializers/package-info.java |  20 -
 .../gora/cassandra/store/CassandraClient.java   | 658 --
 .../gora/cassandra/store/CassandraMapping.java  | 329 -
 .../store/CassandraMappingManager.java  | 158 -
 .../gora/cassandra/store/CassandraStore.java| 668 ---
 .../gora/cassandra/store/HectorUtils.java   | 117 
 .../gora/cassandra/store/package-info.java  |  20 -
 gora-cassandra/src/test/conf/cassandra.yaml | 418 
 .../src/test/conf/gora-cassandra-mapping.xml|  95 ---
 gora-cassandra/src/test/conf/gora.properties|  28 -
 .../src/test/conf/log4j-server.properties   |  47 --
 gora-cassandra/src/test/java/.gitignore |  15 -
 .../gora/cassandra/GoraCassandraTestDriver.java | 158 -
 .../org/apache/gora/cassandra/package-info.java |  21 -
 .../cassandra/store/TestCassandraStore.java |  92 ---
 .../gora/cassandra/store/package-info.java  |  21 -
 35 files changed, 5101 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/cbed41d0/gora-cassandra/conf/.gitignore
--
diff --git a/gora-cassandra/conf/.gitignore b/gora-cassandra/conf/.gitignore
deleted file mode 100644
index 09697dc..000
--- a/gora-cassandra/conf/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-

http://git-wip-us.apache.org/repos/asf/gora/blob/cbed41d0/gora-cassandra/pom.xml
--
diff --git a/gora-cassandra/pom.xml b/gora-cassandra/pom.xml
deleted file mode 100644
index 0d3d13c..000
--- a/gora-cassandra/pom.xml
+++ /dev/null
@@ -1,192 +0,0 @@
-
-http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
- 
-4.0.0
-
-
-org.apache.gora
-gora
-0.8-SNAPSHOT
-../
-
-gora-cassandra
-bundle
-
-Apache Gora :: Cassandra
-http://gora.apache.org
-The Apache Gora open source framework provides an in-memory 
data model and 
-persistence for big data. Gora supports persisting to column stores, key 
value stores, 
-document stores and RDBMSs, and analyzing the data with 

[07/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStore.java
--
diff --git 
a/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStore.java
 
b/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStore.java
deleted file mode 100644
index ce9e2df..000
--- 
a/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStore.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.gora.cassandra.store;
-
-import org.apache.gora.cassandra.GoraCassandraTestDriver;
-import org.apache.gora.examples.WebPageDataCreator;
-import org.apache.gora.examples.generated.WebPage;
-import org.apache.gora.query.Query;
-import org.apache.gora.store.DataStore;
-import org.apache.gora.store.DataStoreTestBase;
-import org.apache.gora.store.DataStoreTestUtil;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.util.Properties;
-
-import static org.apache.gora.examples.WebPageDataCreator.SORTED_URLS;
-import static org.apache.gora.examples.WebPageDataCreator.URLS;
-import static org.apache.gora.store.DataStoreTestUtil.assertEmptyResults;
-import static org.apache.gora.store.DataStoreTestUtil.assertNumResults;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-/**
- *
- * Testing class for all standard gora-cassandra functionality.
- * We extend DataStoreTestBase enabling us to run the entire base test
- * suite for Gora.
- *
- * Test Avro Serialization for CassandraStore.
- */
-public class TestCassandraStore extends DataStoreTestBase {
-  private static final Logger LOG = 
LoggerFactory.getLogger(TestCassandraStore.class);
-  private static Properties properties;
-
-  static {
-GoraCassandraTestDriver testDriver = new GoraCassandraTestDriver();
-setProperties();
-testDriver.setParameters(properties);
-setTestDriver(testDriver);
-  }
-
-  private static void setProperties() {
-properties = new Properties();
-properties.setProperty(CassandraStoreParameters.CASSANDRA_SERVERS, 
"localhost");
-properties.setProperty(CassandraStoreParameters.PORT, "9042");
-
properties.setProperty(CassandraStoreParameters.CASSANDRA_SERIALIZATION_TYPE, 
"avro");
-properties.setProperty(CassandraStoreParameters.PROTOCOL_VERSION, "3");
-properties.setProperty(CassandraStoreParameters.CLUSTER_NAME, "Test 
Cluster");
-
properties.setProperty(CassandraStoreParameters.READ_CONSISTENCY_LEVEL,"ONE");
-
properties.setProperty(CassandraStoreParameters.WRITE_CONSISTENCY_LEVEL,"ONE");
-properties.setProperty("gora.cassandrastore.mapping.file", 
"avro/gora-cassandra-mapping.xml");
-  }
-
-  @Before
-  public void setUp() throws Exception {
-super.setUp();
-  }
-
-  @Ignore()
-  @Override
-  public void testGetPartitions() throws IOException {
-  }
-
-  private void preConfiguration() {
-if (webPageStore.schemaExists()) {
-  webPageStore.truncateSchema();
-} else {
-  webPageStore.createSchema();
-}
-  }
-
-  @Test
-  public void testQuery() throws Exception {
-preConfiguration();
-log.info("test method: testQuery");
-DataStoreTestUtil.testQueryWebPages(webPageStore);
-  }
-
-  @Test
-  public void testQueryStartKey() throws Exception {
-preConfiguration();
-log.info("test method: testQueryStartKey");
-DataStoreTestUtil.testQueryWebPageStartKey(webPageStore);
-  }
-
-  @Test
-  public void testQueryEndKey() throws Exception {
-preConfiguration();
-log.info("test method: testQueryEndKey");
-DataStoreTestUtil.testQueryWebPageEndKey(webPageStore);
-  }
-
-  @Test
-  public void testQueryKeyRange() throws Exception {
-preConfiguration();
-log.info("test method: testQueryKetRange");
-DataStoreTestUtil.testQueryWebPageKeyRange(webPageStore);
-  }
-
-  @Test
-  public void testDelete() throws Exception {
-   

[08/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra-cql/src/test/conf/cassandra.yaml
--
diff --git a/gora-cassandra-cql/src/test/conf/cassandra.yaml 
b/gora-cassandra-cql/src/test/conf/cassandra.yaml
deleted file mode 100644
index ca154ae..000
--- a/gora-cassandra-cql/src/test/conf/cassandra.yaml
+++ /dev/null
@@ -1,1196 +0,0 @@
-# Cassandra storage config YAML
-
-# NOTE:
-#   See http://wiki.apache.org/cassandra/StorageConfiguration for
-#   full explanations of configuration directives
-# /NOTE
-
-# The name of the cluster. This is mainly used to prevent machines in
-# one logical cluster from joining another.
-cluster_name: 'Gora Test Cluster'
-
-# This defines the number of tokens randomly assigned to this node on the ring
-# The more tokens, relative to other nodes, the larger the proportion of data
-# that this node will store. You probably want all nodes to have the same 
number
-# of tokens assuming they have equal hardware capability.
-#
-# If you leave this unspecified, Cassandra will use the default of 1 token for 
legacy compatibility,
-# and will use the initial_token as described below.
-#
-# Specifying initial_token will override this setting on the node's initial 
start,
-# on subsequent starts, this setting will apply even if initial token is set.
-#
-# If you already have a cluster with 1 token per node, and wish to migrate to
-# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations
-num_tokens: 256
-
-# Triggers automatic allocation of num_tokens tokens for this node. The 
allocation
-# algorithm attempts to choose tokens in a way that optimizes replicated load 
over
-# the nodes in the datacenter for the replication strategy used by the 
specified
-# keyspace.
-#
-# The load assigned to each node will be close to proportional to its number of
-# vnodes.
-#
-# Only supported with the Murmur3Partitioner.
-# allocate_tokens_for_keyspace: KEYSPACE
-
-# initial_token allows you to specify tokens manually.  While you can use it 
with
-# vnodes (num_tokens > 1, above) -- in which case you should provide a
-# comma-separated list -- it's primarily used when adding nodes to legacy 
clusters
-# that do not have vnodes enabled.
-# initial_token:
-
-# See http://wiki.apache.org/cassandra/HintedHandoff
-# May either be "true" or "false" to enable globally
-hinted_handoff_enabled: true
-
-# When hinted_handoff_enabled is true, a black list of data centers that will 
not
-# perform hinted handoff
-# hinted_handoff_disabled_datacenters:
-#- DC1
-#- DC2
-
-# this defines the maximum amount of time a dead host will have hints
-# generated.  After it has been dead this long, new hints for it will not be
-# created until it has been seen alive and gone down again.
-max_hint_window_in_ms: 1080 # 3 hours
-
-# Maximum throttle in KBs per second, per delivery thread.  This will be
-# reduced proportionally to the number of nodes in the cluster.  (If there
-# are two nodes in the cluster, each delivery thread will use the maximum
-# rate; if there are three, each will throttle to half of the maximum,
-# since we expect two nodes to be delivering hints simultaneously.)
-hinted_handoff_throttle_in_kb: 1024
-
-# Number of threads with which to deliver hints;
-# Consider increasing this number when you have multi-dc deployments, since
-# cross-dc handoff tends to be slower
-max_hints_delivery_threads: 2
-
-# Directory where Cassandra should store hints.
-# If not set, the default directory is $CASSANDRA_HOME/data/hints.
-hints_directory: target/test/var/lib/cassandra/hints
-
-# How often hints should be flushed from the internal buffers to disk.
-# Will *not* trigger fsync.
-hints_flush_period_in_ms: 1
-
-# Maximum size for a single hints file, in megabytes.
-max_hints_file_size_in_mb: 128
-
-# Compression to apply to the hint files. If omitted, hints files
-# will be written uncompressed. LZ4, Snappy, and Deflate compressors
-# are supported.
-#hints_compression:
-#   - class_name: LZ4Compressor
-# parameters:
-# -
-
-# Maximum throttle in KBs per second, total. This will be
-# reduced proportionally to the number of nodes in the cluster.
-batchlog_replay_throttle_in_kb: 1024
-
-# Authentication backend, implementing IAuthenticator; used to identify users
-# Out of the box, Cassandra provides 
org.apache.cassandra.auth.{AllowAllAuthenticator,
-# PasswordAuthenticator}.
-#
-# - AllowAllAuthenticator performs no checks - set it to disable 
authentication.
-# - PasswordAuthenticator relies on username/password pairs to authenticate
-#   users. It keeps usernames and hashed passwords in system_auth.roles table.
-#   Please increase system_auth keyspace replication factor if you use this 
authenticator.
-#   If using PasswordAuthenticator, CassandraRoleManager must also be used 
(see below)
-authenticator: AllowAllAuthenticator
-
-# Authorization backend, implementing 

[02/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/test/conf/cassandra.yaml
--
diff --git a/gora-cassandra/src/test/conf/cassandra.yaml 
b/gora-cassandra/src/test/conf/cassandra.yaml
new file mode 100644
index 000..ca154ae
--- /dev/null
+++ b/gora-cassandra/src/test/conf/cassandra.yaml
@@ -0,0 +1,1196 @@
+# Cassandra storage config YAML
+
+# NOTE:
+#   See http://wiki.apache.org/cassandra/StorageConfiguration for
+#   full explanations of configuration directives
+# /NOTE
+
+# The name of the cluster. This is mainly used to prevent machines in
+# one logical cluster from joining another.
+cluster_name: 'Gora Test Cluster'
+
+# This defines the number of tokens randomly assigned to this node on the ring
+# The more tokens, relative to other nodes, the larger the proportion of data
+# that this node will store. You probably want all nodes to have the same 
number
+# of tokens assuming they have equal hardware capability.
+#
+# If you leave this unspecified, Cassandra will use the default of 1 token for 
legacy compatibility,
+# and will use the initial_token as described below.
+#
+# Specifying initial_token will override this setting on the node's initial 
start,
+# on subsequent starts, this setting will apply even if initial token is set.
+#
+# If you already have a cluster with 1 token per node, and wish to migrate to
+# multiple tokens per node, see http://wiki.apache.org/cassandra/Operations
+num_tokens: 256
+
+# Triggers automatic allocation of num_tokens tokens for this node. The 
allocation
+# algorithm attempts to choose tokens in a way that optimizes replicated load 
over
+# the nodes in the datacenter for the replication strategy used by the 
specified
+# keyspace.
+#
+# The load assigned to each node will be close to proportional to its number of
+# vnodes.
+#
+# Only supported with the Murmur3Partitioner.
+# allocate_tokens_for_keyspace: KEYSPACE
+
+# initial_token allows you to specify tokens manually.  While you can use it 
with
+# vnodes (num_tokens > 1, above) -- in which case you should provide a
+# comma-separated list -- it's primarily used when adding nodes to legacy 
clusters
+# that do not have vnodes enabled.
+# initial_token:
+
+# See http://wiki.apache.org/cassandra/HintedHandoff
+# May either be "true" or "false" to enable globally
+hinted_handoff_enabled: true
+
+# When hinted_handoff_enabled is true, a black list of data centers that will 
not
+# perform hinted handoff
+# hinted_handoff_disabled_datacenters:
+#- DC1
+#- DC2
+
+# this defines the maximum amount of time a dead host will have hints
+# generated.  After it has been dead this long, new hints for it will not be
+# created until it has been seen alive and gone down again.
+max_hint_window_in_ms: 1080 # 3 hours
+
+# Maximum throttle in KBs per second, per delivery thread.  This will be
+# reduced proportionally to the number of nodes in the cluster.  (If there
+# are two nodes in the cluster, each delivery thread will use the maximum
+# rate; if there are three, each will throttle to half of the maximum,
+# since we expect two nodes to be delivering hints simultaneously.)
+hinted_handoff_throttle_in_kb: 1024
+
+# Number of threads with which to deliver hints;
+# Consider increasing this number when you have multi-dc deployments, since
+# cross-dc handoff tends to be slower
+max_hints_delivery_threads: 2
+
+# Directory where Cassandra should store hints.
+# If not set, the default directory is $CASSANDRA_HOME/data/hints.
+hints_directory: target/test/var/lib/cassandra/hints
+
+# How often hints should be flushed from the internal buffers to disk.
+# Will *not* trigger fsync.
+hints_flush_period_in_ms: 1
+
+# Maximum size for a single hints file, in megabytes.
+max_hints_file_size_in_mb: 128
+
+# Compression to apply to the hint files. If omitted, hints files
+# will be written uncompressed. LZ4, Snappy, and Deflate compressors
+# are supported.
+#hints_compression:
+#   - class_name: LZ4Compressor
+# parameters:
+# -
+
+# Maximum throttle in KBs per second, total. This will be
+# reduced proportionally to the number of nodes in the cluster.
+batchlog_replay_throttle_in_kb: 1024
+
+# Authentication backend, implementing IAuthenticator; used to identify users
+# Out of the box, Cassandra provides 
org.apache.cassandra.auth.{AllowAllAuthenticator,
+# PasswordAuthenticator}.
+#
+# - AllowAllAuthenticator performs no checks - set it to disable 
authentication.
+# - PasswordAuthenticator relies on username/password pairs to authenticate
+#   users. It keeps usernames and hashed passwords in system_auth.roles table.
+#   Please increase system_auth keyspace replication factor if you use this 
authenticator.
+#   If using PasswordAuthenticator, CassandraRoleManager must also be used 
(see below)
+authenticator: AllowAllAuthenticator
+
+# Authorization backend, implementing IAuthorizer; used to limit 

[13/13] gora git commit: Remove hector dependecy

2017-08-23 Thread lewismc
Remove hector dependecy


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/52d583af
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/52d583af
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/52d583af

Branch: refs/heads/master
Commit: 52d583affe4e4132d682e011930fe9c466fed27f
Parents: 89683c7
Author: madhawa-gunasekara 
Authored: Thu Aug 24 03:10:16 2017 +0530
Committer: madhawa-gunasekara 
Committed: Thu Aug 24 03:10:16 2017 +0530

--
 pom.xml | 13 -
 1 file changed, 13 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/52d583af/pom.xml
--
diff --git a/pom.xml b/pom.xml
index b67d263..3944882 100644
--- a/pom.xml
+++ b/pom.xml
@@ -752,7 +752,6 @@
 
 3.3.0
 3.11.0
-1.1-4
 
 6.5.1
 6.5.1
@@ -1097,18 +1096,6 @@
   
 
   
-org.hectorclient
-hector-core
-${hector.version}
-
-  
-org.apache.cassandra
-cassandra-all
-  
-
-  
-
-  
 com.ibm.icu
 icu4j
 49.1



[05/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
--
diff --git 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
new file mode 100644
index 000..cd0a5d2
--- /dev/null
+++ 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
@@ -0,0 +1,326 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.gora.cassandra.compiler;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.gora.cassandra.bean.Field;
+import org.apache.gora.cassandra.store.CassandraMapping;
+import org.apache.gora.cassandra.store.CassandraMappingBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.Charset;
+import java.util.List;
+import java.util.Locale;
+
+/**
+ * This class generate Java classes for Cassandra Native Serialization.
+ * 
+ * Generate specific Java classes for defined Gora cassandra mapping.
+ * Different from the @see org.apache.gora.compiler.GoraCompiler,
+ * which uses an .avsc or .json schema definition, this compiler
+ * expects an XML mapping file as input.
+ */
+public class GoraCassandraNativeCompiler {
+
+  private static final Logger log = 
LoggerFactory.getLogger(GoraCassandraNativeCompiler.class);
+
+  private Writer out;
+  private File dest;
+
+  GoraCassandraNativeCompiler(File dest) {
+this.dest = dest;
+  }
+
+  /**
+   * Start point of the compiler program
+   *
+   * @param args the schema file to be compiled and where this should be 
written
+   */
+  public static void main(String[] args) {
+try {
+  if (args.length < 2) {
+log.error("Usage: Compiler  ");
+System.exit(1);
+  }
+  compileSchema(new File(args[0]), new File(args[1]));
+} catch (Exception e) {
+  log.error("Something went wrong. Please check the input file.", 
e.getMessage());
+  throw new RuntimeException(e);
+}
+  }
+
+  /**
+   * Generates Java classes for a mapping.
+   */
+  private static void compileSchema(File src, File dest) throws Exception {
+log.info("Compiling {} to {}", src, dest);
+GoraCassandraNativeCompiler compiler = new 
GoraCassandraNativeCompiler(dest);
+List mappings = readMappingFile(src);
+for (CassandraMapping mapping : mappings) {
+  compiler.compile(mapping);
+}
+  }
+
+  private static List readMappingFile(File src) throws 
Exception {
+List mappings = new 
CassandraMappingBuilder().readMappingFile(src);
+return mappings;
+  }
+
+  /**
+   * Returns the string received with the first letter in uppercase
+   *
+   * @param name to be converted
+   * @return camelCase String
+   */
+  static String cap(String name) {
+return name.substring(0, 1).toUpperCase(Locale.getDefault())
++ name.substring(1, name.length());
+  }
+
+  /**
+   * Method in charge of compiling a specific table using a key schema and a 
set
+   * of attributes
+   *
+   * @param mapping Cassandra Mapping
+   */
+  private void compile(CassandraMapping mapping) {
+String fullQualifiedName = mapping.getProperty("name");
+String tableName = mapping.getCoreName();
+String packageName = fullQualifiedName.substring(0, 
fullQualifiedName.lastIndexOf("."));
+String className = fullQualifiedName.substring(packageName.length() + 1, 
fullQualifiedName.length());
+String keySpace = mapping.getKeySpace().getName();
+
+try {
+  startFile(className, packageName);
+  setHeaders(packageName);
+  line(0, "");
+  line(0, "@Table(keyspace = \"" + keySpace + "\", name = \"" + tableName 
+ "\"," +
+  "readConsistency = \"QUORUM\"," +
+  "writeConsistency = \"QUORUM\"," +
+  "caseSensitiveKeyspace = false," +
+  "caseSensitiveTable = false)");
+

[09/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
deleted file mode 100644
index a5ada56..000
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
+++ /dev/null
@@ -1,321 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You 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.apache.gora.cassandra.store;
-
-import org.apache.gora.cassandra.bean.CassandraKey;
-import org.apache.gora.cassandra.bean.ClusterKeyField;
-import org.apache.gora.cassandra.bean.Field;
-import org.apache.gora.cassandra.bean.KeySpace;
-import org.apache.gora.cassandra.bean.PartitionKeyField;
-import org.apache.gora.persistency.Persistent;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-
-/**
- * This Class reads the Cassandra Mapping file and create tha Cassandra 
Mapping object.
- * {@link org.apache.gora.cassandra.store.CassandraMapping}
- */
-public class CassandraMappingBuilder {
-
-  private static final Logger LOG = 
LoggerFactory.getLogger(CassandraMappingBuilder.class);
-
-  private CassandraStore dataStore;
-
-  public CassandraMappingBuilder() {
-  }
-
-  /**
-   * Constructor for builder to create the mapper.
-   *
-   * @param store Cassandra Store
-   */
-  CassandraMappingBuilder(final CassandraStore store) {
-this.dataStore = store;
-  }
-
-  private static int getReplicationFactor(Element element) {
-if (element == null) {
-  return 1;
-}
-String value = element.getAttributeValue("replicationFactor");
-if (value == null) {
-  return 1;
-} else {
-  return Integer.parseInt(value);
-}
-  }
-
-  /**
-   * @param fileName mapping fileName
-   * @return All the Cassandra Mappings in the mapping file
-   * @throws Exception
-   */
-  @SuppressWarnings("all")
-  public List readMappingFile(File fileName) throws 
Exception {
-List mappings = new ArrayList<>();
-SAXBuilder builder = new SAXBuilder();
-Document doc = builder.build(fileName);
-
-List keyspaces = doc.getRootElement().getChildren("keyspace");
-List classes = doc.getRootElement().getChildren("class");
-List keys = doc.getRootElement().getChildren("cassandraKey");
-for (Element classElement : classes) {
-  CassandraMapping mapping = new CassandraMapping();
-  processClass(mapping, classElement);
-  mappings.add(mapping);
-}
-
-for (CassandraMapping mapping : mappings) {
-  for (Element keySpace : keyspaces) {
-String keySpaceName = keySpace.getAttributeValue("name");
-if (keySpaceName.equals(mapping.getProperty("keyspace"))) {
-  processKeySpace(mapping, keySpace, keySpaceName);
-  break;
-}
-  }
-
-  for (Element cassandraKey : keys) {
-String cassandraKeyName = cassandraKey.getAttributeValue("name");
-if (mapping.getProperty("keyClass").equals(cassandraKeyName)) {
-  processCassandraKeys(mapping, cassandraKey, cassandraKeyName);
-}
-  }
-  mapping.finalized();
-}
-return mappings;
-  }
-
-  /**
-   * In this method we reads the mapping file and creates the Cassandra 
Mapping.
-   *
-   * @param filename mapping file name
-   * @return @{@link CassandraMapping}
-   * @throws IOException
-   */
-  @SuppressWarnings("all")
-  CassandraMapping readMapping(String filename) throws Exception {
-CassandraMapping cassandraMapping = new CassandraMapping();
-Class keyClass = dataStore.getKeyClass();
-Class persistentClass = dataStore.getPersistentClass();
-SAXBuilder builder = new SAXBuilder();
-Document doc = 

[10/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
deleted file mode 100644
index 928370c..000
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
+++ /dev/null
@@ -1,836 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You 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.apache.gora.cassandra.serializers;
-
-import com.datastax.driver.core.querybuilder.BuiltStatement;
-import com.datastax.driver.core.querybuilder.Delete;
-import com.datastax.driver.core.querybuilder.QueryBuilder;
-import com.datastax.driver.core.querybuilder.Select;
-import com.datastax.driver.core.querybuilder.Update;
-import com.datastax.driver.mapping.annotations.UDT;
-import org.apache.avro.Schema;
-import org.apache.gora.cassandra.bean.CassandraKey;
-import org.apache.gora.cassandra.bean.ClusterKeyField;
-import org.apache.gora.cassandra.bean.Field;
-import org.apache.gora.cassandra.bean.KeySpace;
-import org.apache.gora.cassandra.bean.PartitionKeyField;
-import org.apache.gora.cassandra.query.CassandraQuery;
-import org.apache.gora.cassandra.store.CassandraMapping;
-import org.apache.gora.cassandra.store.CassandraStore;
-import org.apache.gora.query.Query;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.ParameterizedType;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-/**
- * This class is used create Cassandra Queries.
- */
-class CassandraQueryFactory {
-
-  private static final Logger LOG = 
LoggerFactory.getLogger(CassandraQueryFactory.class);
-
-  /**
-   * This method returns the CQL query to create key space.
-   * refer : 
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_keyspace_r.html
-   *
-   * @param mapping Cassandra Mapping {@link CassandraMapping}
-   * @return CQL Query
-   */
-  static String getCreateKeySpaceQuery(CassandraMapping mapping) {
-KeySpace keySpace = mapping.getKeySpace();
-StringBuilder stringBuffer = new StringBuilder();
-stringBuffer.append("CREATE KEYSPACE IF NOT EXISTS 
").append(keySpace.getName()).append(" WITH REPLICATION = { 'class' : ");
-KeySpace.PlacementStrategy placementStrategy = 
keySpace.getPlacementStrategy();
-stringBuffer.append("'").append(placementStrategy).append("'").append(", 
").append("'");
-switch (placementStrategy) {
-  case SimpleStrategy:
-stringBuffer.append("replication_factor").append("'").append(" : 
").append(keySpace.getReplicationFactor()).append(" }");
-break;
-  case NetworkTopologyStrategy:
-boolean isCommaNeeded = false;
-for (Map.Entry entry : 
keySpace.getDataCenters().entrySet()) {
-  if (isCommaNeeded) {
-stringBuffer.append(", '");
-  }
-  stringBuffer.append(entry.getKey()).append("'").append(" : 
").append(entry.getValue());
-  isCommaNeeded = true;
-}
-stringBuffer.append(" }");
-break;
-}
-if (keySpace.isDurableWritesEnabled()) {
-  stringBuffer.append(" AND DURABLE_WRITES = 
").append(keySpace.isDurableWritesEnabled());
-}
-return stringBuffer.toString();
-  }
-
-  /**
-   * This method returns the CQL query to table.
-   * refer : 
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_table_r.html
-   * 
-   * Trick : To have a consistency of the order of the columns, first we 
append partition keys, second cluster keys and finally other columns.
-   * It's very much needed to follow the same order in other CRUD operations 
as well.
-   *
-   * @param mapping Cassandra mapping {@link CassandraMapping}
-   * @return CQL Query
-   */
-  static String getCreateTableQuery(CassandraMapping mapping) {
-StringBuilder stringBuffer = new StringBuilder();
-

[06/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java
--
diff --git 
a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java
 
b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java
new file mode 100644
index 000..da320ab
--- /dev/null
+++ 
b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java
@@ -0,0 +1,1524 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.gora.cassandra.example.generated.AvroSerialization;
+
+/**
+ * This object created to used as Persistent Object to test cassandra data 
store
+ */
+public class CassandraRecord extends 
org.apache.gora.persistency.impl.PersistentBase implements 
org.apache.avro.specific.SpecificRecord, org.apache.gora.persistency.Persistent 
{
+  public static final org.apache.avro.Schema SCHEMA$ = new 
org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"CassandraRecord\",\"namespace\":\"org.apache.gora.cassandra.example.generated.AvroSerialization\",\"doc\":\"This
 object created to used as Persistent Object to test cassandra data 
store\",\"fields\":[{\"name\":\"dataString\",\"type\":\"string\",\"default\":\"\"},{\"name\":\"dataInt\",\"type\":\"int\",\"default\":0},{\"name\":\"dataLong\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"dataDouble\",\"type\":[\"null\",\"double\"],\"default\":null},{\"name\":\"dataBytes\",\"type\":[\"null\",\"bytes\"],\"default\":null},{\"name\":\"arrayInt\",\"type\":{\"type\":\"array\",\"items\":\"int\"},\"default\":null},{\"name\":\"arrayString\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"default\":null},{\"name\":\"arrayLong\",\"type\":{\"type\":\"array\",\"items\":\"long\"},\"default\":null},{\"name\":\"arrayDouble\",\"type\":{\"type\":\"array\",\"it
 
ems\":\"double\"},\"default\":null},{\"name\":\"mapInt\",\"type\":{\"type\":\"map\",\"values\":\"int\"},\"default\":{}},{\"name\":\"mapString\",\"type\":{\"type\":\"map\",\"values\":\"string\"},\"default\":{}},{\"name\":\"mapLong\",\"type\":{\"type\":\"map\",\"values\":\"long\"},\"default\":{}},{\"name\":\"mapDouble\",\"type\":{\"type\":\"map\",\"values\":\"double\"},\"default\":{}}],\"default\":null}");
+  public static final String[] _ALL_FIELDS = {
+  "dataString",
+  "dataInt",
+  "dataLong",
+  "dataDouble",
+  "dataBytes",
+  "arrayInt",
+  "arrayString",
+  "arrayLong",
+  "arrayDouble",
+  "mapInt",
+  "mapString",
+  "mapLong",
+  "mapDouble",
+  };
+  private static final long serialVersionUID = -4030705451859358186L;
+
+  ;
+  private static final Tombstone TOMBSTONE = new Tombstone();
+  private static final org.apache.avro.io.DatumWriter
+  DATUM_WRITER$ = new 
org.apache.avro.specific.SpecificDatumWriter(SCHEMA$);
+  private static final org.apache.avro.io.DatumReader
+  DATUM_READER$ = new 
org.apache.avro.specific.SpecificDatumReader(SCHEMA$);
+  private java.lang.CharSequence dataString;
+  private int dataInt;
+  private java.lang.Long dataLong;
+  private java.lang.Double dataDouble;
+  private java.nio.ByteBuffer dataBytes;
+  private java.util.List arrayInt;
+  private java.util.List arrayString;
+  private java.util.List arrayLong;
+  private java.util.List arrayDouble;
+  private java.util.Map mapInt;
+  private java.util.Map 
mapString;
+  private java.util.Map mapLong;
+  private java.util.Map mapDouble;
+
+  /**
+   * Creates a new CassandraRecord RecordBuilder
+   */
+  public static 
org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder
 newBuilder() {
+return new 

[04/13] gora git commit: Rename gora-cassandra-cql module into gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
--
diff --git 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
new file mode 100644
index 000..928370c
--- /dev/null
+++ 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
@@ -0,0 +1,836 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.apache.gora.cassandra.serializers;
+
+import com.datastax.driver.core.querybuilder.BuiltStatement;
+import com.datastax.driver.core.querybuilder.Delete;
+import com.datastax.driver.core.querybuilder.QueryBuilder;
+import com.datastax.driver.core.querybuilder.Select;
+import com.datastax.driver.core.querybuilder.Update;
+import com.datastax.driver.mapping.annotations.UDT;
+import org.apache.avro.Schema;
+import org.apache.gora.cassandra.bean.CassandraKey;
+import org.apache.gora.cassandra.bean.ClusterKeyField;
+import org.apache.gora.cassandra.bean.Field;
+import org.apache.gora.cassandra.bean.KeySpace;
+import org.apache.gora.cassandra.bean.PartitionKeyField;
+import org.apache.gora.cassandra.query.CassandraQuery;
+import org.apache.gora.cassandra.store.CassandraMapping;
+import org.apache.gora.cassandra.store.CassandraStore;
+import org.apache.gora.query.Query;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class is used create Cassandra Queries.
+ */
+class CassandraQueryFactory {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(CassandraQueryFactory.class);
+
+  /**
+   * This method returns the CQL query to create key space.
+   * refer : 
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_keyspace_r.html
+   *
+   * @param mapping Cassandra Mapping {@link CassandraMapping}
+   * @return CQL Query
+   */
+  static String getCreateKeySpaceQuery(CassandraMapping mapping) {
+KeySpace keySpace = mapping.getKeySpace();
+StringBuilder stringBuffer = new StringBuilder();
+stringBuffer.append("CREATE KEYSPACE IF NOT EXISTS 
").append(keySpace.getName()).append(" WITH REPLICATION = { 'class' : ");
+KeySpace.PlacementStrategy placementStrategy = 
keySpace.getPlacementStrategy();
+stringBuffer.append("'").append(placementStrategy).append("'").append(", 
").append("'");
+switch (placementStrategy) {
+  case SimpleStrategy:
+stringBuffer.append("replication_factor").append("'").append(" : 
").append(keySpace.getReplicationFactor()).append(" }");
+break;
+  case NetworkTopologyStrategy:
+boolean isCommaNeeded = false;
+for (Map.Entry entry : 
keySpace.getDataCenters().entrySet()) {
+  if (isCommaNeeded) {
+stringBuffer.append(", '");
+  }
+  stringBuffer.append(entry.getKey()).append("'").append(" : 
").append(entry.getValue());
+  isCommaNeeded = true;
+}
+stringBuffer.append(" }");
+break;
+}
+if (keySpace.isDurableWritesEnabled()) {
+  stringBuffer.append(" AND DURABLE_WRITES = 
").append(keySpace.isDurableWritesEnabled());
+}
+return stringBuffer.toString();
+  }
+
+  /**
+   * This method returns the CQL query to table.
+   * refer : 
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_table_r.html
+   * 
+   * Trick : To have a consistency of the order of the columns, first we 
append partition keys, second cluster keys and finally other columns.
+   * It's very much needed to follow the same order in other CRUD operations 
as well.
+   *
+   * @param mapping Cassandra mapping {@link CassandraMapping}
+   * @return CQL Query
+   */
+  static String getCreateTableQuery(CassandraMapping mapping) {
+StringBuilder stringBuffer = new StringBuilder();
+stringBuffer.append("CREATE 

[01/37] gora git commit: Initial commit gora cassandra cql with Connection parameters

2017-08-23 Thread lewismc
Repository: gora
Updated Branches:
  refs/heads/master 837b12606 -> 3d4e1d69a


Initial commit gora cassandra cql with Connection parameters


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/cd3522aa
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/cd3522aa
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/cd3522aa

Branch: refs/heads/master
Commit: cd3522aa47c542594dc9cc4d91b023a65db71ae9
Parents: d5e5560
Author: madhawa-gunasekara 
Authored: Tue Jun 13 01:03:21 2017 +0530
Committer: madhawa 
Committed: Fri Jun 16 23:27:12 2017 +0530

--
 gora-cassandra-cql/pom.xml  | 230 +
 gora-cassandra-cql/src/examples/java/.gitignore |  15 +
 .../org/apache/gora/cassandra/package-info.java |  20 +
 .../gora/cassandra/query/package-info.java  |  21 +
 .../cassandra/serializers/package-info.java |  20 +
 .../gora/cassandra/store/CassandraStore.java| 516 +++
 .../apache/gora/cassandra/store/Constants.java  | 100 
 .../gora/cassandra/store/package-info.java  |  20 +
 gora-cassandra-cql/src/test/conf/cassandra.yaml | 418 +++
 .../src/test/conf/gora-cassandra-mapping.xml|  95 
 .../src/test/conf/gora.properties   |  30 ++
 .../src/test/conf/log4j-server.properties   |  48 ++
 gora-cassandra-cql/src/test/java/.gitignore |  15 +
 .../gora/cassandra/GoraCassandraTestDriver.java | 157 ++
 .../org/apache/gora/cassandra/package-info.java |  21 +
 .../cassandra/store/TestCassandraStore.java |  92 
 .../gora/cassandra/store/package-info.java  |  21 +
 pom.xml |   1 +
 18 files changed, 1840 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/cd3522aa/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
new file mode 100644
index 000..b17fd41
--- /dev/null
+++ b/gora-cassandra-cql/pom.xml
@@ -0,0 +1,230 @@
+
+
+
+http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
+ 
+4.0.0
+
+
+org.apache.gora
+gora
+0.8-SNAPSHOT
+../
+
+gora-cassandra-cql
+bundle
+
+Apache Gora :: Cassandra - CQL
+http://gora.apache.org
+The Apache Gora open source framework provides an in-memory 
data model and 
+persistence for big data. Gora supports persisting to column stores, key 
value stores, 
+document stores and RDBMSs, and analyzing the data with extensive Apache 
Hadoop MapReduce 
+support.
+2010
+
+The Apache Software Foundation
+http://www.apache.org/
+
+
+JIRA
+https://issues.apache.org/jira/browse/GORA
+
+
+Jenkins
+https://builds.apache.org/job/Gora-trunk/
+
+
+
+*
+
org.apache.gora.cassandra*;version="${project.version}";-noimport:=true
+
+
+
+target
+target/classes
+${project.artifactId}-${project.version}
+target/test-classes
+src/test/java
+src/main/java
+
+  
+${project.basedir}/src/test/conf
+
+  **/*
+
+
+  
+
+
+
+org.codehaus.mojo
+build-helper-maven-plugin
+${build-helper-maven-plugin.version}
+
+
+generate-sources
+
+add-source
+
+
+
+src/examples/java
+
+
+
+
+
+
+
+
+
+
+
+
+
+org.xerial.snappy
+snappy-java
+1.0.5-M3
+test
+
+
+
+
+org.apache.gora
+gora-core
+
+
+
+org.apache.gora
+gora-core
+test-jar
+test
+
+
+
+
+com.datastax.cassandra
+cassandra-driver-core
+${cassandra-driver.version}
+
+
+com.google.guava
+guava
+
+
+
+
+
+
+org.apache.cassandra
+cassandra-all
+test
+
+
+

[2/3] gora git commit: Removing old gora-cassandra module

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/cbed41d0/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/TypeUtils.java
--
diff --git 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/TypeUtils.java
 
b/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/TypeUtils.java
deleted file mode 100644
index c5db72b..000
--- 
a/gora-cassandra/src/main/java/org/apache/gora/cassandra/serializers/TypeUtils.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you 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.apache.gora.cassandra.serializers;
-
-import java.nio.ByteBuffer;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.avro.Schema;
-import org.apache.avro.Schema.Type;
-import org.apache.avro.generic.GenericArray;
-import org.apache.avro.specific.SpecificFixed;
-import org.apache.avro.util.Utf8;
-import org.apache.gora.persistency.Persistent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Utility class that infers the concrete Serializer needed to turn a value 
into
- * its binary representation
- */
-public class TypeUtils {
-
-  public static final Logger LOG = LoggerFactory.getLogger(TypeUtils.class);
-
-  // @SuppressWarnings({ "rawtypes", "unchecked" })
-  public static Class getClass(Object value) {
-return value.getClass();
-  }
-
-  public static Schema getSchema(Object value) {
-if (value instanceof GenericArray) {
-  return Schema.createArray( getElementSchema((GenericArray)value) );
-} else {
-  return getSchema( getClass(value) );
-}
-  }
-
-  public static Type getType(Object value) {
-return getType( getClass(value) );
-  }
-
-  public static Type getType(Class clazz) {
-if (clazz.equals(Utf8.class)) {
-  return Type.STRING;
-} else if (clazz.equals(Boolean.class) || clazz.equals(boolean.class)) {
-  return Type.BOOLEAN;
-} else if (clazz.equals(ByteBuffer.class)) {
-  return Type.BYTES;
-} else if (clazz.equals(Double.class) || clazz.equals(double.class)) {
-  return Type.DOUBLE;
-} else if (clazz.equals(Float.class) || clazz.equals(float.class)) {
-  return Type.FLOAT;
-} else if (clazz.equals(Integer.class) || clazz.equals(int.class)) {
-  return Type.INT;
-} else if (clazz.equals(Long.class) || clazz.equals(long.class)) {
-  return Type.LONG;
-} else if (clazz.isAssignableFrom(List.class)) {
-  return Type.ARRAY;
-} else if (clazz.isAssignableFrom(Map.class)) {
-  return Type.MAP;
-} else if (clazz.equals(Persistent.class)) {
-  return Type.RECORD;
-} else if (clazz.getSuperclass().equals(SpecificFixed.class)) {
-  return Type.FIXED;
-} else {
-  return null;
-}
-  }
-
-  public static Class getClass(Type type) {
-if (type == Type.STRING) {
-  return Utf8.class;
-} else if (type == Type.BOOLEAN) {
-  return Boolean.class;
-} else if (type == Type.BYTES) {
-  return ByteBuffer.class;
-} else if (type == Type.DOUBLE) {
-  return Double.class;
-} else if (type == Type.FLOAT) {
-  return Float.class;
-} else if (type == Type.INT) {
-  return Integer.class;
-} else if (type == Type.LONG) {
-  return Long.class;
-} else if (type == Type.ARRAY) {
-  return List.class;
-} else if (type == Type.MAP) {
-  return Map.class;
-} else if (type == Type.RECORD) {
-  return Persistent.class;
-} else if (type == Type.FIXED) {
-  // return SpecificFixed.class;
-  return null;
-} else {
-  return null;
-}
-  }
-
-  public static Schema getSchema(Class clazz) {
-Type type = getType(clazz);
-if (type == null) {
-  return null;
-} else if (type == Type.FIXED) {
-  int size = getFixedSize(clazz);
-  String name = clazz.getName();
-  String space = null;
-  int n = name.lastIndexOf(".");
-  if (n < 0) {
-space = name.substring(0,n);
-name = name.substring(n+1);
-  } else {
-space = null;
-  }
-  String doc = null; // ?
-  // LOG.info(Schema.createFixed(name, doc, space, size).toString());
-  

[22/37] gora git commit: Fix functionality of the UpdateByQuery for Avro Serialization

2017-08-23 Thread lewismc
Fix functionality of the UpdateByQuery for Avro Serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/99894b82
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/99894b82
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/99894b82

Branch: refs/heads/master
Commit: 99894b82ae77290ff43d84eeffe638c3ed55d2d9
Parents: c5352b0
Author: madhawa 
Authored: Fri Jul 28 09:09:17 2017 +0530
Committer: madhawa 
Committed: Fri Jul 28 09:09:17 2017 +0530

--
 .../serializers/CassandraQueryFactory.java  | 25 +++-
 .../gora/cassandra/store/CassandraMapping.java  |  9 +++
 .../compositeKey/gora-cassandra-mapping.xml | 33 ---
 .../TestCassandraStoreWithCassandraKey.java | 61 +---
 ...stCassandraStoreWithNativeSerialization.java | 38 ++--
 5 files changed, 102 insertions(+), 64 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/99894b82/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
index bf33750..4362a04 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
@@ -20,11 +20,13 @@ import com.datastax.driver.core.querybuilder.Delete;
 import com.datastax.driver.core.querybuilder.QueryBuilder;
 import com.datastax.driver.core.querybuilder.Select;
 import com.datastax.driver.core.querybuilder.Update;
+import org.apache.avro.Schema;
 import org.apache.gora.cassandra.bean.CassandraKey;
 import org.apache.gora.cassandra.bean.ClusterKeyField;
 import org.apache.gora.cassandra.bean.Field;
 import org.apache.gora.cassandra.bean.KeySpace;
 import org.apache.gora.cassandra.bean.PartitionKeyField;
+import org.apache.gora.cassandra.persistent.CassandraNativePersistent;
 import org.apache.gora.cassandra.query.CassandraQuery;
 import org.apache.gora.cassandra.store.CassandraMapping;
 import org.apache.gora.query.Query;
@@ -609,9 +611,26 @@ class CassandraQueryFactory {
 Update.Assignments updateAssignments = null;
 if (cassandraQuery instanceof CassandraQuery) {
   String[] columnNames = getColumnNames(mapping, 
Arrays.asList(cassandraQuery.getFields()));
-  for (String column : columnNames) {
-updateAssignments = update.with(QueryBuilder.set(column, "?"));
-objects.add(((CassandraQuery) 
cassandraQuery).getUpdateFieldValue(column));
+  
if(CassandraNativePersistent.class.isAssignableFrom(mapping.getPersistentClass()))
 {
+for (String column : columnNames) {
+  updateAssignments = update.with(QueryBuilder.set(column, "?"));
+  objects.add(((CassandraQuery) 
cassandraQuery).getUpdateFieldValue(mapping.getFieldFromColumnName(column).getFieldName()));
+}
+  } else {
+for (String column : columnNames) {
+  updateAssignments = update.with(QueryBuilder.set(column, "?"));
+  String field = mapping.getFieldFromColumnName(column).getFieldName();
+  Object value = ((CassandraQuery) 
cassandraQuery).getUpdateFieldValue(field);
+  try {
+Schema schema = (Schema) 
mapping.getPersistentClass().getField("SCHEMA$").get(null);
+Schema schemaField = schema.getField(field).schema();
+
objects.add(AvroCassandraUtils.getFieldValueFromAvroBean(schemaField, 
schemaField.getType(), value));
+  } catch (IllegalAccessException | NoSuchFieldException e) {
+throw new RuntimeException("SCHEMA$ field can't accessible, Please 
recompile the Avro schema with goracompiler.");
+  } catch (NullPointerException e) {
+throw new RuntimeException(field + " field couldn't find in the 
class " + mapping.getPersistentClass() + ".");
+  }
+}
   }
 }
 String primaryKey = null;

http://git-wip-us.apache.org/repos/asf/gora/blob/99894b82/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
index 61b8d1e..5699355 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMapping.java
+++ 

[04/37] gora git commit: Read Cassandra Key in mapping file

2017-08-23 Thread lewismc
Read Cassandra Key in mapping file


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/6617b0bb
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/6617b0bb
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/6617b0bb

Branch: refs/heads/master
Commit: 6617b0bb81b7c7da327acf3be2bef9b8cb77337a
Parents: 05b791a
Author: madhawa 
Authored: Fri Jun 23 11:43:42 2017 +0530
Committer: madhawa 
Committed: Fri Jun 23 11:43:42 2017 +0530

--
 .../gora/cassandra/bean/CassandraKey.java   |  43 +++-
 .../gora/cassandra/bean/ClusterKeyField.java|  41 +++
 .../apache/gora/cassandra/bean/KeySpace.java|  35 +++---
 .../gora/cassandra/bean/PartitionKeyField.java  |  51 +
 .../gora/cassandra/store/CassandraMapping.java  |  25 +++--
 .../gora/cassandra/store/CassandraStore.java| 107 +--
 .../src/test/conf/gora-cassandra-mapping.xml|  12 +--
 7 files changed, 272 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/6617b0bb/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
index c0adf2c..ca9657b 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
@@ -17,8 +17,49 @@
 
 package org.apache.gora.cassandra.bean;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * This Class represents the Cassandra Key.
  */
-public class CassandraKey {
+public class CassandraKey{
+
+  private String name;
+
+  private List clusterKeyFields;
+
+  private List partitionKeyFields;
+
+
+  public CassandraKey(String name) {
+this.name = name;
+  }
+
+  public String getName() {
+return name;
+  }
+
+  public List getClusterKeyFields() {
+return clusterKeyFields;
+  }
+
+  public List getPartitionKeyFields() {
+return partitionKeyFields;
+  }
+
+  public void addPartitionKeyField(PartitionKeyField partitionKeyField) {
+if(this.partitionKeyFields == null) {
+  this.partitionKeyFields = new ArrayList<>();
+}
+this.partitionKeyFields.add(partitionKeyField);
+  }
+
+  public void addClusterKeyField(ClusterKeyField clusterKeyField) {
+if(this.clusterKeyFields == null) {
+  this.clusterKeyFields = new ArrayList<>();
+}
+this.clusterKeyFields.add(clusterKeyField);
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/6617b0bb/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
new file mode 100644
index 000..560b61c
--- /dev/null
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
@@ -0,0 +1,41 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.apache.gora.cassandra.bean;
+
+/**
+ * This class represents Cassandra Clustering Key.
+ */
+public class ClusterKeyField extends Field {
+
+  public enum Order {
+DESC,
+ASC,
+  }
+
+  private Order order;
+
+  public Order getOrder() {
+return order;
+  }
+
+  public void setOrder(Order order) {
+this.order = order;
+  }
+
+
+}

http://git-wip-us.apache.org/repos/asf/gora/blob/6617b0bb/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java 

[26/37] gora git commit: Refactored the code

2017-08-23 Thread lewismc
Refactored the code


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/962d7a6a
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/962d7a6a
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/962d7a6a

Branch: refs/heads/master
Commit: 962d7a6ad830b8a6feca752ddf39f4d705bd563e
Parents: 99894b8
Author: madhawa 
Authored: Sun Jul 30 23:11:09 2017 +0530
Committer: madhawa 
Committed: Wed Aug 2 07:14:55 2017 +0530

--
 gora-cassandra-cql/pom.xml  |7 +-
 .../AvroSerialization/CassandraKey.java |  517 +++---
 .../AvroSerialization/CassandraRecord.java  | 1582 ++
 .../nativeSerialization/ComplexTypes.java   |   15 +-
 .../generated/nativeSerialization/User.java |   25 +-
 .../gora/cassandra/bean/CassandraKey.java   |   24 +-
 .../gora/cassandra/bean/ClusterKeyField.java|   23 +-
 .../org/apache/gora/cassandra/bean/Field.java   |   19 +-
 .../apache/gora/cassandra/bean/KeySpace.java|   46 +-
 .../gora/cassandra/bean/PartitionKeyField.java  |2 +-
 .../org/apache/gora/cassandra/package-info.java |7 +-
 .../persistent/CassandraNativePersistent.java   |   13 +-
 .../gora/cassandra/query/CassandraQuery.java|2 +-
 .../cassandra/query/CassandraResultSet.java |   27 +-
 .../gora/cassandra/query/package-info.java  |7 +-
 .../serializers/AvroCassandraUtils.java |  156 +-
 .../cassandra/serializers/AvroSerializer.java   |  236 +--
 .../serializers/CassandraQueryFactory.java  |  203 ++-
 .../serializers/CassandraSerializer.java|  100 +-
 .../cassandra/serializers/NativeSerializer.java |   31 +-
 .../cassandra/serializers/package-info.java |7 +-
 .../gora/cassandra/store/CassandraClient.java   |   24 +-
 .../gora/cassandra/store/CassandraMapping.java  |  154 +-
 .../store/CassandraMappingBuilder.java  |   26 +-
 .../gora/cassandra/store/CassandraStore.java|   48 +-
 .../store/CassandraStoreParameters.java |8 +-
 .../gora/cassandra/store/package-info.java  |7 +-
 .../test/conf/avro/gora-cassandra-mapping.xml   |   48 +-
 .../compositeKey/gora-cassandra-mapping.xml |   12 +-
 .../src/test/conf/gora-cassandra-mapping.xml|3 +-
 .../src/test/conf/gora.properties   |1 -
 .../src/test/conf/log4j-server.properties   |9 +-
 .../gora-cassandra-mapping.xml  |   49 +-
 .../conf/nativeSerialization/gora.properties|1 -
 .../gora/cassandra/GoraCassandraTestDriver.java |  128 +-
 .../cassandra/store/TestCassandraStore.java |  133 ++
 .../TestCassandraStoreWithCassandraKey.java |   34 +-
 ...stCassandraStoreWithNativeSerialization.java |   10 +-
 38 files changed, 2225 insertions(+), 1519 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/962d7a6a/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index 13e5a1a..ed98a18 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -16,7 +16,7 @@
   ~  limitations under the License.
   -->
 
-http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+http://www.w3.org/2001/XMLSchema-instance; 
xmlns="http://maven.apache.org/POM/4.0.0;
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
 4.0.0
 
@@ -173,6 +173,11 @@
 4.0.37.Final
 
 
+
+org.apache.gora
+gora-hbase
+
+
 
 
 com.google.guava

http://git-wip-us.apache.org/repos/asf/gora/blob/962d7a6a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
index 478690d..6b89c33 100644
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
@@ -1,99 +1,123 @@
 /**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you under the Apache License, Version 2.0 (the"
- *License"); you may not use 

[10/37] gora git commit: Refactored the code

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/5e383ef9/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
index 113d0c4..1d9093d 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
@@ -17,35 +17,8 @@
 
 package org.apache.gora.cassandra.store;
 
-import com.datastax.driver.core.Cluster;
-import com.datastax.driver.core.ConsistencyLevel;
-import com.datastax.driver.core.HostDistance;
-import com.datastax.driver.core.KeyspaceMetadata;
-import com.datastax.driver.core.PoolingOptions;
-import com.datastax.driver.core.ProtocolOptions;
-import com.datastax.driver.core.ProtocolVersion;
-import com.datastax.driver.core.QueryOptions;
-import com.datastax.driver.core.Session;
-import com.datastax.driver.core.SocketOptions;
-import com.datastax.driver.core.TableMetadata;
-import com.datastax.driver.core.TypeCodec;
-import com.datastax.driver.core.policies.ConstantReconnectionPolicy;
-import com.datastax.driver.core.policies.DCAwareRoundRobinPolicy;
-import com.datastax.driver.core.policies.DefaultRetryPolicy;
-import com.datastax.driver.core.policies.DowngradingConsistencyRetryPolicy;
-import com.datastax.driver.core.policies.ExponentialReconnectionPolicy;
-import com.datastax.driver.core.policies.FallthroughRetryPolicy;
-import com.datastax.driver.core.policies.LatencyAwarePolicy;
-import com.datastax.driver.core.policies.LoggingRetryPolicy;
-import com.datastax.driver.core.policies.RoundRobinPolicy;
-import com.datastax.driver.core.policies.TokenAwarePolicy;
-import com.datastax.driver.mapping.Mapper;
-import com.datastax.driver.mapping.MappingManager;
-import org.apache.gora.cassandra.bean.CassandraKey;
-import org.apache.gora.cassandra.bean.ClusterKeyField;
-import org.apache.gora.cassandra.bean.Field;
-import org.apache.gora.cassandra.bean.KeySpace;
-import org.apache.gora.cassandra.bean.PartitionKeyField;
+import org.apache.gora.cassandra.persistent.CassandraNativePersistent;
+import org.apache.gora.cassandra.serializers.CassandraSerializer;
 import org.apache.gora.persistency.BeanFactory;
 import org.apache.gora.persistency.Persistent;
 import org.apache.gora.query.PartitionQuery;
@@ -53,18 +26,11 @@ import org.apache.gora.query.Query;
 import org.apache.gora.query.Result;
 import org.apache.gora.store.DataStore;
 import org.apache.gora.store.DataStoreFactory;
-import org.jdom.Attribute;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.input.SAXBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Locale;
 import java.util.Properties;
 
 /**
@@ -81,19 +47,23 @@ public class CassandraStore 
implements DataStore
 
   private BeanFactory beanFactory;
 
-  private Cluster cluster;
+  private Class keyClass;
 
-  private Class keyClass;
-
-  private Class persistentClass;
+  private Class persistentClass;
 
   private CassandraMapping mapping;
 
-  private boolean isUseNativeSerialization;
+  private CassandraSerializer cassandraSerializer;
+
+  public enum SerializerType {
+AVRO("AVRO"), NATIVE("NATIVE");
+String val;
 
-  private Mapper mapper;
+SerializerType(String v) {
+  this.val = v;
+}
+  }
 
-  private Session session;
 
   public CassandraStore() {
 super();
@@ -113,22 +83,11 @@ public class CassandraStore 
implements DataStore
   this.keyClass = keyClass;
   this.persistentClass = persistentClass;
   String mappingFile = DataStoreFactory.getMappingFile(properties, this, 
DEFAULT_MAPPING_FILE);
-  List codecs = readCustomCodec(properties);
-  mapping = readMapping(mappingFile);
-  isUseNativeSerialization = 
Boolean.parseBoolean(properties.getProperty(CassandraStoreParameters.USE_CASSANDRA_NATIVE_SERIALIZATION));
-  Cluster.Builder builder = Cluster.builder();
-  builder = populateSettings(builder, properties);
-  this.cluster = builder.build();
-  if (codecs != null) {
-registerCustomCodecs(codecs);
-  }
-  this.session = this.cluster.connect();
-  if (isUseNativeSerialization) {
-this.createSchema();
-MappingManager mappingManager = new MappingManager(session);
-mapper = mappingManager.mapper(persistentClass);
-  }
-
+  CassandraMappingBuilder mappingBuilder = new 
CassandraMappingBuilder(this);
+  mapping = mappingBuilder.readMapping(mappingFile);
+  CassandraClient cassandraClient = new CassandraClient();
+  

[29/37] gora git commit: Add Cassandra Native Compiler

2017-08-23 Thread lewismc
Add Cassandra Native Compiler


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/a2d63cae
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/a2d63cae
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/a2d63cae

Branch: refs/heads/master
Commit: a2d63caeac9b1b640ea2d2004e4312393ec6efcc
Parents: a9a3ad4
Author: madhawa-gunasekara 
Authored: Fri Aug 11 19:01:41 2017 +0530
Committer: madhawa-gunasekara 
Committed: Fri Aug 11 19:01:41 2017 +0530

--
 bin/gora|   5 +
 gora-cassandra-cql/pom.xml  |  12 +
 .../compiler/GoraCassandraNativeCompiler.java   | 324 ++
 .../serializers/AvroCassandraUtils.java |  39 +++
 .../cassandra/serializers/AvroSerializer.java   |  39 +--
 .../store/CassandraMappingBuilder.java  | 341 +++
 .../src/test/conf/gora-cassandra-mapping.xml|  98 --
 7 files changed, 581 insertions(+), 277 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/a2d63cae/bin/gora
--
diff --git a/bin/gora b/bin/gora
index 51b9489..03d368b 100755
--- a/bin/gora
+++ b/bin/gora
@@ -45,6 +45,7 @@ if [ $# = 0 ]; then
   echo "where COMMAND is one of:"
   echo "  goracompiler   Run Compiler"
   echo "  specificcompiler   Run Avro Specific Compiler"
+  echo "  cassandranativecompilerRun Gora Cassandra Native Compiler"
   echo "  dynamocompiler Run Gora DynamoDB Compiler"
   echo "  goracirackspaceRun the GoraCI Rackspace orchestration 
setup"
   echo "  goracichef Run the GoraCI Chef software provisioning 
setup"
@@ -121,6 +122,10 @@ elif [ "$COMMAND" = "specificcompiler" ] ; then
   MODULE=gora-core
   CLASSPATH=$CLASSPATH:$GORA_HOME/$MODULE/target/classes/
   CLASS=org.apache.avro.specific.SpecificCompiler
+elif [ "$COMMAND" = "cassandranativecompiler" ] ; then
+  MODULE=gora-cassandra-cql
+  CLASSPATH=$CLASSPATH:$GORA_HOME/$MODULE/target/classes/
+  CLASS=org.apache.gora.cassandra.compiler.GoraCassandraNativeCompiler
 elif [ "$COMMAND" = "dynamocompiler" ] ; then
   MODULE=gora-dynamodb
   CLASSPATH=$CLASSPATH:$GORA_HOME/$MODULE/target/classes/

http://git-wip-us.apache.org/repos/asf/gora/blob/a2d63cae/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index b78db24..630c51b 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -106,6 +106,18 @@
 -Xmx1024m -XX:MaxPermSize=512m
 
 
+
+org.apache.maven.plugins
+maven-jar-plugin
+
+
+
+
org.apache.gora.cassandra.compiler.GoraCassandraNativeCompiler
+
org.apache.gora.cassandra.compiler
+
+
+
+
 
 
 

http://git-wip-us.apache.org/repos/asf/gora/blob/a2d63cae/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
new file mode 100644
index 000..6d07759
--- /dev/null
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
@@ -0,0 +1,324 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.gora.cassandra.compiler;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.gora.cassandra.bean.Field;
+import 

[09/37] gora git commit: Add tests for schemaExists and truncateSchema methods

2017-08-23 Thread lewismc
Add tests for schemaExists and truncateSchema methods


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/89109b85
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/89109b85
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/89109b85

Branch: refs/heads/master
Commit: 89109b855537050f5b9d125a88d26ca2c1d12f78
Parents: 2695794
Author: madhawa 
Authored: Sun Jun 25 02:35:02 2017 +0530
Committer: madhawa 
Committed: Sun Jun 25 02:41:37 2017 +0530

--
 .../cassandra/store/CassandraQueryFactory.java  | 146 ++-
 .../gora/cassandra/store/CassandraStore.java|  31 ++--
 .../compositeKey/gora-cassandra-mapping.xml |  78 ++
 ...stCassandraStoreWithNativeSerialization.java |  34 -
 4 files changed, 272 insertions(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/89109b85/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraQueryFactory.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraQueryFactory.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraQueryFactory.java
index 422fbc6..fc90c5f 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraQueryFactory.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraQueryFactory.java
@@ -16,9 +16,13 @@
  */
 package org.apache.gora.cassandra.store;
 
+import org.apache.gora.cassandra.bean.CassandraKey;
+import org.apache.gora.cassandra.bean.ClusterKeyField;
 import org.apache.gora.cassandra.bean.Field;
 import org.apache.gora.cassandra.bean.KeySpace;
+import org.apache.gora.cassandra.bean.PartitionKeyField;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -26,6 +30,13 @@ import java.util.Map;
  */
 class CassandraQueryFactory {
 
+  /**
+   * This method returns the CQL query to create key space.
+   * refer : 
http://docs.datastax.com/en/cql/3.1/cql/cql_reference/create_keyspace_r.html
+   *
+   * @param mapping Cassandra Mapping
+   * @return CQL Query
+   */
   static String getCreateKeySpaceQuery(CassandraMapping mapping) {
 KeySpace keySpace = mapping.getKeySpace();
 StringBuilder stringBuffer = new StringBuilder();
@@ -59,6 +70,25 @@ class CassandraQueryFactory {
 StringBuilder stringBuffer = new StringBuilder();
 stringBuffer.append("CREATE TABLE IF NOT EXISTS 
").append(mapping.getKeySpace().getName()).append(".").append(mapping.getCoreName()).append("
 (");
 boolean isCommaNeeded = false;
+CassandraKey cassandraKey = mapping.getCassandraKey();
+// appending Cassandra key columns into db schema
+if (cassandraKey != null) {
+  for (PartitionKeyField partitionKeyField : 
cassandraKey.getPartitionKeyFields()) {
+if (partitionKeyField.isComposite()) {
+  for (Field compositeField : partitionKeyField.getFields()) {
+stringBuffer = processFields(stringBuffer, compositeField, 
isCommaNeeded);
+  }
+
+} else {
+  stringBuffer = processFields(stringBuffer, partitionKeyField, 
isCommaNeeded);
+}
+isCommaNeeded = true;
+  }
+  for (ClusterKeyField clusterKeyField : 
cassandraKey.getClusterKeyFields()) {
+stringBuffer = processFields(stringBuffer, clusterKeyField, 
isCommaNeeded);
+  }
+}
+// appending Other columns
 for (Field field : mapping.getFieldList()) {
   if (isCommaNeeded) {
 stringBuffer.append(", ");
@@ -69,22 +99,126 @@ class CassandraQueryFactory {
   if (isStaticColumn) {
 stringBuffer.append(" STATIC");
   }
-  if(isPrimaryKey) {
+  if (isPrimaryKey) {
 stringBuffer.append("  PRIMARY KEY ");
   }
   isCommaNeeded = true;
 }
 
+if (cassandraKey != null) {
+  List pkey = cassandraKey.getPartitionKeyFields();
+  if (pkey != null) {
+stringBuffer.append(", PRIMARY KEY (");
+boolean isCommaNeededToApply = false;
+for (PartitionKeyField keyField : pkey) {
+  if (isCommaNeededToApply) {
+stringBuffer.append(",");
+  }
+  if (keyField.isComposite()) {
+stringBuffer.append("(");
+boolean isCommaNeededHere = false;
+for (Field field : keyField.getFields()) {
+  if (isCommaNeededHere) {
+stringBuffer.append(", ");
+  }
+  stringBuffer.append(field.getColumnName());
+  isCommaNeededHere = true;
+}
+stringBuffer.append(")");
+  } else {
+stringBuffer.append(keyField.getColumnName());
+  }
+  isCommaNeededToApply = 

[37/37] gora git commit: Merge branch 'ISSUE-497'

2017-08-23 Thread lewismc
Merge branch 'ISSUE-497'


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/3d4e1d69
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/3d4e1d69
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/3d4e1d69

Branch: refs/heads/master
Commit: 3d4e1d69a27b96583cc9c8ccc1cd4abc9a7bf0b9
Parents: 837b126 ce78ef5
Author: Lewis John McGibbney 
Authored: Wed Aug 23 13:54:52 2017 -0700
Committer: Lewis John McGibbney 
Committed: Wed Aug 23 13:54:52 2017 -0700

--
 bin/gora|5 +
 gora-cassandra-cql/pom.xml  |  219 +++
 .../src/examples/avro/cassandraKey.json |   22 +
 .../src/examples/avro/cassandraRecord.json  |  107 ++
 .../AvroSerialization/CassandraKey.java |  446 +
 .../AvroSerialization/CassandraRecord.java  | 1524 ++
 .../nativeSerialization/ComplexTypes.java   |  199 +++
 .../generated/nativeSerialization/Customer.java |   75 +
 .../generated/nativeSerialization/Document.java |  136 ++
 .../generated/nativeSerialization/User.java |  159 ++
 .../gora/cassandra/bean/CassandraKey.java   |   91 ++
 .../gora/cassandra/bean/ClusterKeyField.java|   54 +
 .../org/apache/gora/cassandra/bean/Field.java   |   70 +
 .../apache/gora/cassandra/bean/KeySpace.java|   84 +
 .../gora/cassandra/bean/PartitionKeyField.java  |   50 +
 .../compiler/GoraCassandraNativeCompiler.java   |  326 
 .../org/apache/gora/cassandra/package-info.java |   21 +
 .../gora/cassandra/query/CassandraQuery.java|  108 ++
 .../cassandra/query/CassandraResultSet.java |  121 ++
 .../gora/cassandra/query/package-info.java  |   22 +
 .../serializers/AvroCassandraUtils.java |  354 
 .../cassandra/serializers/AvroSerializer.java   |  446 +
 .../serializers/CassandraQueryFactory.java  |  836 ++
 .../serializers/CassandraSerializer.java|  225 +++
 .../cassandra/serializers/NativeSerializer.java |  243 +++
 .../cassandra/serializers/package-info.java |   21 +
 .../gora/cassandra/store/CassandraClient.java   |  535 ++
 .../gora/cassandra/store/CassandraMapping.java  |  242 +++
 .../store/CassandraMappingBuilder.java  |  321 
 .../gora/cassandra/store/CassandraStore.java|  380 +
 .../store/CassandraStoreParameters.java |  236 +++
 .../gora/cassandra/store/package-info.java  |   21 +
 .../test/conf/avro/gora-cassandra-mapping.xml   |   50 +
 .../conf/avroUDT/gora-cassandra-mapping.xml |   50 +
 gora-cassandra-cql/src/test/conf/cassandra.yaml | 1196 ++
 .../compositeKey/gora-cassandra-mapping.xml |   54 +
 .../src/test/conf/gora.properties   |   37 +
 .../src/test/conf/log4j-server.properties   |   41 +
 .../conf/nativeSerialization/custom-codecs.xml  |   24 +
 .../gora-cassandra-mapping.xml  |   45 +
 .../conf/nativeSerialization/gora.properties|   19 +
 .../conf/nativeUDT/gora-cassandra-mapping.xml   |   32 +
 .../gora/cassandra/GoraCassandraTestDriver.java |  163 ++
 .../org/apache/gora/cassandra/package-info.java |   21 +
 .../store/TestAvroSerializationWithUDT.java |   96 ++
 .../cassandra/store/TestCassandraStore.java |  178 ++
 .../TestCassandraStoreWithCassandraKey.java |  331 
 ...stCassandraStoreWithNativeSerialization.java |  305 
 .../store/TestNativeSerializationWithUDT.java   |   87 +
 .../gora/cassandra/store/package-info.java  |   21 +
 .../nativeSerialization/DateAsStringCodec.java  |   50 +
 gora-tutorial/pom.xml   |2 +-
 pom.xml |   11 +-
 53 files changed, 10506 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/3d4e1d69/gora-tutorial/pom.xml
--

http://git-wip-us.apache.org/repos/asf/gora/blob/3d4e1d69/pom.xml
--



[33/37] gora git commit: Add java docs for Native Compiler

2017-08-23 Thread lewismc
Add java docs for Native Compiler


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/b1f906c2
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/b1f906c2
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/b1f906c2

Branch: refs/heads/master
Commit: b1f906c263217909d7c8ba555eb2464ea120ade5
Parents: 266ebf4
Author: madhawa-gunasekara 
Authored: Mon Aug 14 00:39:52 2017 +0530
Committer: madhawa-gunasekara 
Committed: Mon Aug 14 00:39:52 2017 +0530

--
 .../gora/cassandra/compiler/GoraCassandraNativeCompiler.java | 8 
 1 file changed, 8 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/b1f906c2/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
index 369ff31..fd34a48 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
@@ -34,6 +34,14 @@ import java.nio.charset.Charset;
 import java.util.List;
 import java.util.Locale;
 
+/**
+ * This class generate Java classes for Cassandra Native Serialization.
+ * 
+ * Generate specific Java classes for defined Gora cassandra mapping.
+ * Different from the @see org.apache.gora.compiler.GoraCompiler,
+ * which uses an .avsc or .json schema definition, this compiler
+ * expects an XML mapping file as input.
+ */
 public class GoraCassandraNativeCompiler {
 
   private static final Logger log = 
LoggerFactory.getLogger(GoraCassandraNativeCompiler.class);



[11/37] gora git commit: Refactored the code

2017-08-23 Thread lewismc
Refactored the code


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/5e383ef9
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/5e383ef9
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/5e383ef9

Branch: refs/heads/master
Commit: 5e383ef974541804382a639b79e3efbf6b03d2b2
Parents: 89109b8
Author: madhawa 
Authored: Wed Jun 28 23:45:18 2017 +0530
Committer: madhawa 
Committed: Wed Jun 28 23:48:54 2017 +0530

--
 gora-cassandra-cql/pom.xml  |  10 -
 gora-cassandra-cql/src/examples/java/.gitignore |  15 -
 .../generated/nativeSerialization/User.java |  66 ++
 .../persistent/CassandraNativePersistent.java   | 109 
 .../cassandra/serializers/AvroSerializer.java   |  51 ++
 .../serializers/CassandraNativePersistent.java  |  91 ---
 .../serializers/CassandraQueryFactory.java  | 248 
 .../serializers/CassandraSerializer.java| 105 +++
 .../cassandra/serializers/NativeSerializer.java |  61 ++
 .../gora/cassandra/store/CassandraClient.java   | 368 +++
 .../store/CassandraMappingBuilder.java  | 234 +++
 .../cassandra/store/CassandraQueryFactory.java  | 224 ---
 .../gora/cassandra/store/CassandraStore.java| 636 ++-
 .../store/CassandraStoreParameters.java |   2 +-
 .../test/conf/avro/gora-cassandra-mapping.xml   |  73 +++
 .../gora-cassandra-mapping.xml  |   2 +-
 gora-cassandra-cql/src/test/java/.gitignore |  15 -
 ...stCassandraStoreWithNativeSerialization.java |  25 +-
 .../nativeSerialization/DateAsStringCodec.java  |  17 +
 .../test/nativeSerialization/User.java  |  66 --
 20 files changed, 1404 insertions(+), 1014 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/5e383ef9/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index d56e07a..13e5a1a 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -110,16 +110,6 @@
 
 
 
-
-
-
-
-org.xerial.snappy
-snappy-java
-1.0.5-M3
-test
-
-
 
 
 org.apache.gora

http://git-wip-us.apache.org/repos/asf/gora/blob/5e383ef9/gora-cassandra-cql/src/examples/java/.gitignore
--
diff --git a/gora-cassandra-cql/src/examples/java/.gitignore 
b/gora-cassandra-cql/src/examples/java/.gitignore
deleted file mode 100644
index 09697dc..000
--- a/gora-cassandra-cql/src/examples/java/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You 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.
-

http://git-wip-us.apache.org/repos/asf/gora/blob/5e383ef9/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
new file mode 100644
index 000..1e810a0
--- /dev/null
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
@@ -0,0 +1,66 @@
+package org.apache.gora.cassandra.example.generated.nativeSerialization;
+
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import com.datastax.driver.mapping.annotations.Transient;
+import org.apache.gora.cassandra.persistent.CassandraNativePersistent;
+
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * Created by madhawa on 6/23/17.
+ */
+
+@Table(keyspace = "nativeTestKeySpace", name = "users",
+readConsistency = "QUORUM",
+writeConsistency = "QUORUM",
+

[08/37] gora git commit: Add Simple Test for Native Cassandra Serialization

2017-08-23 Thread lewismc
Add Simple Test for Native Cassandra  Serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/2695794a
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/2695794a
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/2695794a

Branch: refs/heads/master
Commit: 2695794ad01132486447e489b7e179edb357b974
Parents: 516f366
Author: madhawa 
Authored: Fri Jun 23 23:42:44 2017 +0530
Committer: madhawa 
Committed: Sat Jun 24 22:16:30 2017 +0530

--
 gora-cassandra-cql/pom.xml  |   69 +-
 .../serializers/CassandraNativePersistent.java  |   91 ++
 .../cassandra/store/CassandraQueryFactory.java  |   28 +-
 .../gora/cassandra/store/CassandraStore.java|  171 ++-
 .../store/CassandraStoreParameters.java |   83 +-
 gora-cassandra-cql/src/test/conf/cassandra.yaml | 1248 ++
 .../src/test/conf/log4j-server.properties   |2 +-
 .../mappingManager/gora-cassandra-mapping.xml   |   97 --
 .../test/conf/mappingManager/gora.properties|   30 -
 .../conf/nativeSerialization/custom-codecs.xml  |   24 +
 .../gora-cassandra-mapping.xml  |   65 +
 .../conf/nativeSerialization/gora.properties|   30 +
 .../gora/cassandra/GoraCassandraTestDriver.java |   35 +-
 ...stCassandraStoreWithNativeSerialization.java |   46 +-
 .../nativeSerialization/DateAsStringCodec.java  |   33 +
 .../test/nativeSerialization/User.java  |   86 +-
 gora-tutorial/pom.xml   |2 +-
 pom.xml |8 +-
 18 files changed, 1563 insertions(+), 585 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/2695794a/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index 11da4fc..d56e07a 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -16,10 +16,11 @@
   ~  limitations under the License.
   -->
 
-http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
+http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
 4.0.0
 
-
+
 org.apache.gora
 gora
 0.8-SNAPSHOT
@@ -29,11 +30,12 @@
 bundle
 
 Apache Gora :: Cassandra - CQL
-http://gora.apache.org
-The Apache Gora open source framework provides an in-memory 
data model and 
-persistence for big data. Gora supports persisting to column stores, key 
value stores, 
-document stores and RDBMSs, and analyzing the data with extensive Apache 
Hadoop MapReduce 
-support.
+http://gora.apache.org
+The Apache Gora open source framework provides an in-memory 
data model and
+persistence for big data. Gora supports persisting to column stores, 
key value stores,
+document stores and RDBMSs, and analyzing the data with extensive 
Apache Hadoop MapReduce
+support.
+
 2010
 
 The Apache Software Foundation
@@ -49,7 +51,7 @@
 
 
 
-17.0
+18.0
 *
 
org.apache.gora.cassandra*;version="${project.version}";-noimport:=true
 
@@ -62,13 +64,13 @@
 src/test/java
 src/main/java
 
-  
-${project.basedir}/src/test/conf
-
-  **/*
-
-
-  
+
+${project.basedir}/src/test/conf
+
+**/*
+
+

+
 
 
 
@@ -89,6 +91,21 @@
 
 
 
+
+org.apache.maven.plugins
+maven-surefire-plugin
+
+
+org.apache.maven.surefire
+surefire-junit47
+2.20
+
+
+
+always
+-Xmx1024m -XX:MaxPermSize=512m
+
+
 
 
 
@@ -124,8 +141,14 @@
 
 
 
-com.datastax.cassandra
-cassandra-driver-mapping
+com.datastax.cassandra
+cassandra-driver-mapping
+${cassandra-driver.version}
+
+
+
+com.datastax.cassandra
+cassandra-driver-extras
 ${cassandra-driver.version}
 
 
@@ -144,12 +167,22 @@
 slf4j-log4j12
  

[14/37] gora git commit: Add logs for NativeSerializer

2017-08-23 Thread lewismc
Add logs for NativeSerializer


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/163624a9
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/163624a9
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/163624a9

Branch: refs/heads/master
Commit: 163624a9596298bf80bb41360fcd246a886a0688
Parents: 2fe2c2b
Author: madhawa 
Authored: Sat Jul 8 11:06:45 2017 +0530
Committer: madhawa 
Committed: Sat Jul 8 11:13:40 2017 +0530

--
 .../cassandra/serializers/AvroSerializer.java   |  4 ++--
 .../cassandra/serializers/NativeSerializer.java | 22 +---
 .../gora/cassandra/store/CassandraStore.java|  2 +-
 3 files changed, 22 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/163624a9/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
index 8061a80..83676dc 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
@@ -37,7 +37,7 @@ import java.util.Map;
 /**
  * This class contains the operations relates to Avro Serialization
  */
-public class AvroSerializer extends 
CassandraSerializer {
+class AvroSerializer extends CassandraSerializer {
 
 
   /**
@@ -45,7 +45,7 @@ public class AvroSerializer 
extends CassandraSerial
*/
   public static final int DEFAULT_UNION_SCHEMA = 0;
 
-  public AvroSerializer(CassandraClient cassandraClient, Class keyClass, 
Class persistentClass, CassandraMapping mapping) {
+  AvroSerializer(CassandraClient cassandraClient, Class keyClass, Class 
persistentClass, CassandraMapping mapping) {
 super(cassandraClient, keyClass, persistentClass, mapping);
   }
 

http://git-wip-us.apache.org/repos/asf/gora/blob/163624a9/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/NativeSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/NativeSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/NativeSerializer.java
index d551d33..2bac3dd 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/NativeSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/NativeSerializer.java
@@ -29,6 +29,8 @@ import org.apache.gora.cassandra.store.CassandraMapping;
 import org.apache.gora.persistency.Persistent;
 import org.apache.gora.query.Query;
 import org.apache.gora.store.DataStore;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Method;
 import java.util.ArrayList;
@@ -38,22 +40,32 @@ import java.util.List;
 /**
  * This Class contains the operation relates to Native Serialization.
  */
-public class NativeSerializer extends 
CassandraSerializer {
+class NativeSerializer extends 
CassandraSerializer {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(CassandraNativePersistent.class);
 
   private Mapper mapper;
 
   @Override
   public void put(Object key, Persistent value) {
+LOG.debug("Object is saved with key : {} and value : {}",key,value);
 mapper.save((T) value);
   }
 
   @Override
   public T get(Object key) {
-return mapper.get(key);
+T object = mapper.get(key);
+if(object != null) {
+  LOG.debug("Object is found for key : {}", key);
+} else {
+  LOG.debug("Object is not found for key : {}", key);
+}
+return object;
   }
 
   @Override
   public boolean delete(Object key) {
+LOG.debug("Object is deleted for key : {}", key);
 mapper.delete(key);
 return true;
   }
@@ -66,8 +78,10 @@ public class NativeSerializer extends Ca
 Result objects = mapper.map(results);
 List objectList = objects.all();
 if (objectList != null) {
+  LOG.debug("Object is found for key : {}", key);
   return objectList.get(0);
 }
+LOG.debug("Object is not found for key : {}" , key);
 return null;
   }
 
@@ -81,6 +95,8 @@ public class NativeSerializer extends Ca
 } else {
   results = client.getSession().execute(cqlQuery, 
objectArrayList.toArray());
 

[35/37] gora git commit: Fix code formatting

2017-08-23 Thread lewismc
Fix code formatting


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/683d902d
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/683d902d
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/683d902d

Branch: refs/heads/master
Commit: 683d902dc66c21b2353292880a00e0e149e548d4
Parents: 1fba416
Author: madhawa 
Authored: Sun Aug 20 20:50:49 2017 +0530
Committer: madhawa 
Committed: Sun Aug 20 22:13:01 2017 +0530

--
 .../serializers/CassandraSerializer.java|  2 +-
 .../store/CassandraMappingBuilder.java  | 36 
 .../store/CassandraStoreParameters.java |  2 +-
 .../test/conf/avro/gora-cassandra-mapping.xml   |  2 +-
 .../conf/avroUDT/gora-cassandra-mapping.xml |  2 +-
 .../gora-cassandra-mapping.xml  |  2 +-
 .../conf/nativeUDT/gora-cassandra-mapping.xml   |  2 +-
 7 files changed, 28 insertions(+), 20 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/683d902d/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraSerializer.java
index 5f15743..6a20a35 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraSerializer.java
@@ -80,7 +80,7 @@ public abstract class CassandraSerializer {
* @return Serializer
*/
   public static  CassandraSerializer 
getSerializer(CassandraClient cc, String type, final DataStore dataStore, 
CassandraMapping mapping) {
-CassandraStore.SerializerType serType = type.isEmpty() ? 
CassandraStore.SerializerType.NATIVE : 
CassandraStore.SerializerType.valueOf(type.toUpperCase(Locale.ENGLISH));
+CassandraStore.SerializerType serType = type == null || type.isEmpty() ? 
CassandraStore.SerializerType.NATIVE : 
CassandraStore.SerializerType.valueOf(type.toUpperCase(Locale.ENGLISH));
 CassandraSerializer serializer;
 switch (serType) {
   case AVRO:

http://git-wip-us.apache.org/repos/asf/gora/blob/683d902d/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
index fa988d9..f1fe8d4 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraMappingBuilder.java
@@ -59,7 +59,10 @@ public class CassandraMappingBuilder {
   }
 
   private static int getReplicationFactor(Element element) {
-String value = element.getAttributeValue("replication_factor");
+if (element == null) {
+  return 1;
+}
+String value = element.getAttributeValue("replicationFactor");
 if (value == null) {
   return 1;
 } else {
@@ -213,19 +216,24 @@ public class CassandraMappingBuilder {
   }
 }
 Element placementStrategy = keyspaceElement.getChild("placementStrategy");
-switch 
(KeySpace.PlacementStrategy.valueOf(placementStrategy.getAttributeValue("name")))
 {
-  case SimpleStrategy:
-
keyspace.setPlacementStrategy(KeySpace.PlacementStrategy.SimpleStrategy);
-keyspace.setReplicationFactor(getReplicationFactor(placementStrategy));
-break;
-  case NetworkTopologyStrategy:
-List dataCenters = 
placementStrategy.getChildren("datacenter");
-
keyspace.setPlacementStrategy(KeySpace.PlacementStrategy.NetworkTopologyStrategy);
-for (Element dataCenter : dataCenters) {
-  String dataCenterName = dataCenter.getAttributeValue("name");
-  keyspace.addDataCenter(dataCenterName, 
getReplicationFactor(dataCenter));
-}
-break;
+if (placementStrategy != null) {
+  switch 
(KeySpace.PlacementStrategy.valueOf(placementStrategy.getAttributeValue("name")))
 {
+case SimpleStrategy:
+  
keyspace.setPlacementStrategy(KeySpace.PlacementStrategy.SimpleStrategy);
+  
keyspace.setReplicationFactor(getReplicationFactor(placementStrategy));
+  break;
+case NetworkTopologyStrategy:
+  List dataCenters = 

[12/37] gora git commit: Add execute method, get by fields for native serialization

2017-08-23 Thread lewismc
Add execute method, get by fields for native serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/4ce6a6e4
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/4ce6a6e4
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/4ce6a6e4

Branch: refs/heads/master
Commit: 4ce6a6e423700c72b99d28c7419aacc1dfe9e1ab
Parents: 5e383ef
Author: madhawa 
Authored: Fri Jul 7 22:18:36 2017 +0530
Committer: madhawa 
Committed: Fri Jul 7 22:18:36 2017 +0530

--
 .../generated/nativeSerialization/User.java |  20 +++-
 .../gora/cassandra/query/CassandraColumn.java   |  51 
 .../gora/cassandra/query/CassandraQuery.java|  67 +++
 .../cassandra/query/CassandraResultSet.java |  82 +
 .../gora/cassandra/query/CassandraRow.java  |  79 
 .../cassandra/serializers/AvroSerializer.java   |  35 +-
 .../serializers/CassandraQueryFactory.java  | 119 +--
 .../serializers/CassandraSerializer.java|  39 --
 .../cassandra/serializers/NativeSerializer.java |  80 -
 .../gora/cassandra/store/CassandraClient.java   |   5 +-
 .../gora/cassandra/store/CassandraMapping.java  |  18 +++
 .../store/CassandraMappingBuilder.java  |   6 +-
 .../gora/cassandra/store/CassandraStore.java|  13 +-
 .../test/conf/avro/gora-cassandra-mapping.xml   |   2 +-
 .../cassandra/store/TestCassandraStore.java |  95 +++
 ...stCassandraStoreWithNativeSerialization.java |  79 +++-
 16 files changed, 746 insertions(+), 44 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/4ce6a6e4/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
index 1e810a0..105dfb7 100644
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
@@ -1,3 +1,20 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You 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.apache.gora.cassandra.example.generated.nativeSerialization;
 
 import com.datastax.driver.mapping.annotations.Column;
@@ -10,9 +27,8 @@ import java.util.Date;
 import java.util.UUID;
 
 /**
- * Created by madhawa on 6/23/17.
+ * Sample class for native cassandra persistent example.
  */
-
 @Table(keyspace = "nativeTestKeySpace", name = "users",
 readConsistency = "QUORUM",
 writeConsistency = "QUORUM",

http://git-wip-us.apache.org/repos/asf/gora/blob/4ce6a6e4/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraColumn.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraColumn.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraColumn.java
new file mode 100644
index 000..e95b815
--- /dev/null
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraColumn.java
@@ -0,0 +1,51 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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 

[05/37] gora git commit: Add doc comments to Cassandra Store Parameters

2017-08-23 Thread lewismc
Add doc comments to Cassandra Store Parameters


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/516f366c
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/516f366c
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/516f366c

Branch: refs/heads/master
Commit: 516f366cc27fa2654cf4017fa151cc07ad902a6d
Parents: 6617b0b
Author: madhawa 
Authored: Fri Jun 23 18:18:46 2017 +0530
Committer: madhawa 
Committed: Fri Jun 23 18:18:46 2017 +0530

--
 .../gora/cassandra/store/CassandraStore.java| 173 ++-
 .../store/CassandraStoreParameters.java | 222 +++
 .../apache/gora/cassandra/store/Constants.java  | 101 -
 .../mappingManager/gora-cassandra-mapping.xml   |  97 
 .../test/conf/mappingManager/gora.properties|  30 +++
 .../gora/cassandra/GoraCassandraTestDriver.java |  27 ++-
 .../cassandra/store/TestCassandraStore.java |  89 
 ...stCassandraStoreWithNativeSerialization.java |  57 +
 .../test/nativeSerialization/User.java  | 122 ++
 pom.xml |   2 +-
 10 files changed, 620 insertions(+), 300 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/516f366c/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
index 09123da..7031444 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
@@ -23,13 +23,12 @@ import com.datastax.driver.core.*;
 import com.datastax.driver.core.policies.*;
 import org.apache.gora.cassandra.bean.*;
 import org.apache.gora.persistency.BeanFactory;
-import org.apache.gora.persistency.impl.PersistentBase;
+import org.apache.gora.persistency.Persistent;
 import org.apache.gora.query.PartitionQuery;
 import org.apache.gora.query.Query;
 import org.apache.gora.query.Result;
+import org.apache.gora.store.DataStore;
 import org.apache.gora.store.DataStoreFactory;
-import org.apache.gora.store.impl.DataStoreBase;
-import org.apache.hadoop.conf.Configuration;
 import org.jdom.Attribute;
 import org.jdom.Document;
 import org.jdom.Element;
@@ -37,10 +36,9 @@ import org.jdom.input.SAXBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.DataInput;
-import java.io.DataOutput;
 import java.io.IOException;
 import java.util.List;
+import java.util.Locale;
 import java.util.Properties;
 
 /**
@@ -49,14 +47,20 @@ import java.util.Properties;
  * @param  key class
  * @param  persistent class
  */
-public class CassandraStore extends 
DataStoreBase {
+public class CassandraStore implements DataStore {
 
   private static final String DEFAULT_MAPPING_FILE = 
"gora-cassandra-mapping.xml";
 
   public static final Logger LOG = 
LoggerFactory.getLogger(CassandraStore.class);
 
+  private BeanFactory beanFactory;
+
   private Cluster cluster;
 
+  private Class keyClass;
+
+  private Class persistentClass;
+
   private CassandraMapping mapping;
 
   private boolean isUseCassandraMappingManager;
@@ -70,7 +74,7 @@ public class CassandraStore 
extends DataStoreBase 
extends DataStoreBase keyClass, Class persistentClass, 
Properties properties) {
 LOG.debug("Initializing Cassandra store");
-super.initialize(keyClass, persistentClass, properties);
 try {
+  this.keyClass = keyClass;
+  this.persistentClass = persistentClass;
   String mappingFile = DataStoreFactory.getMappingFile(properties, this,
   DEFAULT_MAPPING_FILE);
   mapping = readMapping(mappingFile);
-  isUseCassandraMappingManager = 
Boolean.parseBoolean(properties.getProperty(Constants.USE_CASSANDRA_MAPPING_MANAGER));
+  isUseCassandraMappingManager = 
Boolean.parseBoolean(properties.getProperty(CassandraStoreParameters.USE_CASSANDRA_NATIVE_SERIALIZATION));
   Cluster.Builder builder = Cluster.builder();
   populateSettings(builder, properties);
   this.cluster = builder.build();
@@ -128,8 +132,7 @@ public class CassandraStore 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends DataStoreBase 
extends 

[32/37] gora git commit: Reformat the code

2017-08-23 Thread lewismc
Reformat the code


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/266ebf46
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/266ebf46
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/266ebf46

Branch: refs/heads/master
Commit: 266ebf464983940a1e36f2bf15737d258d471f24
Parents: 0de528e
Author: madhawa-gunasekara 
Authored: Sun Aug 13 20:34:57 2017 +0530
Committer: madhawa-gunasekara 
Committed: Sun Aug 13 20:34:57 2017 +0530

--
 .../apache/gora/cassandra/bean/ClusterKeyField.java |  1 +
 .../org/apache/gora/cassandra/bean/KeySpace.java|  4 
 .../apache/gora/cassandra/query/CassandraQuery.java |  2 ++
 .../gora/cassandra/serializers/AvroSerializer.java  |  8 ++--
 .../cassandra/serializers/CassandraSerializer.java  | 10 +++---
 .../apache/gora/cassandra/store/CassandraStore.java | 16 ++--
 gora-cassandra-cql/src/test/conf/gora.properties|  8 +---
 .../test/conf/nativeSerialization/gora.properties   |  8 +---
 .../test/conf/nativeUDT/gora-cassandra-mapping.xml  |  1 -
 9 files changed, 24 insertions(+), 34 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/266ebf46/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
index 259025a..e1c88e3 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java
@@ -23,6 +23,7 @@ package org.apache.gora.cassandra.bean;
 public class ClusterKeyField {
 
   private String columnName;
+
   private Order order;
 
   public ClusterKeyField() {

http://git-wip-us.apache.org/repos/asf/gora/blob/266ebf46/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
index 7deb49a..898b370 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
@@ -26,9 +26,13 @@ import java.util.Map;
 public class KeySpace {
 
   private String name;
+
   private PlacementStrategy placementStrategy;
+
   private boolean durableWritesEnabled;
+
   private int replicationFactor;
+
   private Map dataCenters;
 
   public String getName() {

http://git-wip-us.apache.org/repos/asf/gora/blob/266ebf46/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
index 919e946..45f9b77 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
@@ -33,7 +33,9 @@ import java.util.Map;
 public class CassandraQuery extends QueryWSBase 
{
 
   private Filter filter;
+
   private boolean localFilterEnabled = true;
+
   private Map updateFields = new HashMap<>();
 
   public CassandraQuery(DataStore dataStore) {

http://git-wip-us.apache.org/repos/asf/gora/blob/266ebf46/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
index 893de91..3037d6c 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
@@ -58,10 +58,14 @@ class AvroSerializer extends 
CassandraSerializer {
 
   private Schema persistentSchema;
 
-  AvroSerializer(CassandraClient cassandraClient, DataStore dataStore, 
CassandraMapping mapping, Schema schema) {
+  AvroSerializer(CassandraClient cassandraClient, DataStore dataStore, 
CassandraMapping mapping) {
 super(cassandraClient, 

[19/37] gora git commit: Add avro serialization support

2017-08-23 Thread lewismc
Add avro serialization support


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/a51b719c
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/a51b719c
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/a51b719c

Branch: refs/heads/master
Commit: a51b719cb265ec63f9699f74b498efc0d27c1920
Parents: 4343982
Author: madhawa 
Authored: Tue Jul 25 00:09:57 2017 +0530
Committer: madhawa 
Committed: Tue Jul 25 00:09:57 2017 +0530

--
 .../src/examples/avro/cassandraKey.json |   21 +
 .../src/examples/avro/cassandraRecord.json  |  106 ++
 .../avroSerialization/CassandraKey.java |  380 +
 .../avroSerialization/CassandraRecord.java  | 1293 ++
 .../gora/cassandra/bean/CassandraKey.java   |   21 +-
 .../gora/cassandra/bean/ClusterKeyField.java|   16 +-
 .../gora/cassandra/query/CassandraColumn.java   |   51 -
 .../cassandra/query/CassandraResultSet.java |4 +
 .../gora/cassandra/query/CassandraRow.java  |   79 --
 .../serializers/AvroCassandraUtils.java |  274 
 .../cassandra/serializers/AvroSerializer.java   |  250 +++-
 .../serializers/CassandraQueryFactory.java  |  327 -
 .../serializers/CassandraSerializer.java|   47 +-
 .../cassandra/serializers/NativeSerializer.java |   43 +-
 .../gora/cassandra/store/CassandraMapping.java  |   67 +-
 .../store/CassandraMappingBuilder.java  |   32 +-
 .../gora/cassandra/store/CassandraStore.java|2 +-
 .../test/conf/avro/gora-cassandra-mapping.xml   |   49 +-
 .../compositeKey/gora-cassandra-mapping.xml |   31 +-
 .../src/test/conf/gora-cassandra-mapping.xml|2 +-
 .../TestCassandraStoreWithCassandraKey.java |  210 +++
 ...stCassandraStoreWithNativeSerialization.java |4 +-
 22 files changed, 2954 insertions(+), 355 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/a51b719c/gora-cassandra-cql/src/examples/avro/cassandraKey.json
--
diff --git a/gora-cassandra-cql/src/examples/avro/cassandraKey.json 
b/gora-cassandra-cql/src/examples/avro/cassandraKey.json
new file mode 100644
index 000..6db3127
--- /dev/null
+++ b/gora-cassandra-cql/src/examples/avro/cassandraKey.json
@@ -0,0 +1,21 @@
+{
+  "type": "record",
+  "name": "CassandraKey",
+  "default": null,
+  "namespace": "org.apache.gora.cassandra.example.generated.avroSerialization",
+  "fields": [
+{
+  "name": "url",
+  "type": [
+"null",
+"string"
+  ],
+  "default": null
+},
+{
+  "name": "timestamp",
+  "type": "long",
+  "default": 0
+}
+  ]
+}

http://git-wip-us.apache.org/repos/asf/gora/blob/a51b719c/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
--
diff --git a/gora-cassandra-cql/src/examples/avro/cassandraRecord.json 
b/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
new file mode 100644
index 000..bd741cd
--- /dev/null
+++ b/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
@@ -0,0 +1,106 @@
+{
+  "type": "record",
+  "name": "CassandraRecord",
+  "default": null,
+  "namespace": "org.apache.gora.cassandra.example.generated.avroSerialization",
+  "fields": [
+{
+  "name": "dataString",
+  "type": "string",
+  "default": ""
+},
+{
+  "name": "dataInt",
+  "type": "int",
+  "default": 0
+},
+{
+  "name": "dataLong",
+  "type": [
+"null",
+"long"
+  ],
+  "default": null
+},
+{
+  "name": "dataDouble",
+  "type": [
+"null",
+"double"
+  ],
+  "default": null
+},
+{
+  "name": "dataBytes",
+  "type": [
+"null",
+"bytes"
+  ],
+  "default": null
+},
+{
+  "name": "arrayInt",
+  "type": {
+"type": "array",
+"items": "int"
+  },
+  "default": null
+},
+{
+  "name": "arrayString",
+  "type": {
+"type": "array",
+"items": "string"
+  },
+  "default": null
+},
+{
+  "name": "arrayLong",
+  "type": {
+"type": "array",
+"items": "long"
+  },
+  "default": null
+},
+{
+  "name": "arrayDouble",
+  "type": {
+"type": "array",
+"items": "double"
+  },
+  "default": null
+},
+{
+  "name": "mapInt",
+  "type": {
+"type": "map",
+"values": "int"
+  },
+  "default": {}
+},
+{
+  "name": "mapString",
+  "type": {
+"type": "map",
+"values": "string"
+  },
+  "default": {}
+},
+{
+  "name": "mapLong",
+  "type": {
+

[28/37] gora git commit: Add tests for avro

2017-08-23 Thread lewismc
Add tests for avro


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/a9a3ad49
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/a9a3ad49
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/a9a3ad49

Branch: refs/heads/master
Commit: a9a3ad4922a45a76c8c6b1b76c011d72736e0c30
Parents: 962d7a6
Author: madhawa-gunasekara 
Authored: Fri Aug 4 21:35:14 2017 +0530
Committer: madhawa-gunasekara 
Committed: Thu Aug 10 23:45:56 2017 +0530

--
 gora-cassandra-cql/pom.xml  |   5 +-
 .../nativeSerialization/ComplexTypes.java   |  85 ++-
 .../generated/nativeSerialization/Customer.java |  81 +++
 .../generated/nativeSerialization/Document.java | 137 +
 .../generated/nativeSerialization/User.java |  86 ++-
 .../org/apache/gora/cassandra/bean/Field.java   |   1 +
 .../persistent/CassandraNativePersistent.java   | 108 
 .../cassandra/query/CassandraResultSet.java |   6 +-
 .../serializers/AvroCassandraUtils.java |  20 +-
 .../cassandra/serializers/AvroSerializer.java   | 126 +++--
 .../serializers/CassandraQueryFactory.java  | 526 +--
 .../serializers/CassandraSerializer.java|  87 +--
 .../cassandra/serializers/NativeSerializer.java |  10 +-
 .../gora/cassandra/store/CassandraMapping.java  |   8 +-
 .../store/CassandraMappingBuilder.java  |   3 +
 .../gora/cassandra/store/CassandraStore.java|  26 +-
 .../conf/avroUDT/gora-cassandra-mapping.xml |  50 ++
 .../src/test/conf/gora.properties   |   4 +-
 .../conf/nativeUDT/gora-cassandra-mapping.xml   |  33 ++
 .../gora/cassandra/GoraCassandraTestDriver.java |   8 +-
 .../store/TestAvroSerializationWithUDT.java |  91 
 .../cassandra/store/TestCassandraStore.java |  97 +++-
 .../TestCassandraStoreWithCassandraKey.java |  68 +++
 .../store/TestNativeSerializationWithUDT.java   |  91 
 pom.xml |   4 +-
 25 files changed, 1248 insertions(+), 513 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index ed98a18..b78db24 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -167,11 +167,10 @@
 
 
 
-
+
 
 
 org.apache.gora

http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
index 797ea62..c161ef9 100644
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
@@ -3,7 +3,10 @@ package 
org.apache.gora.cassandra.example.generated.nativeSerialization;
 import com.datastax.driver.mapping.annotations.Column;
 import com.datastax.driver.mapping.annotations.PartitionKey;
 import com.datastax.driver.mapping.annotations.Table;
-import org.apache.gora.cassandra.persistent.CassandraNativePersistent;
+import com.datastax.driver.mapping.annotations.Transient;
+import org.apache.avro.Schema;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.persistency.Tombstone;
 
 import java.util.List;
 import java.util.Map;
@@ -18,7 +21,7 @@ import java.util.UUID;
 writeConsistency = "QUORUM",
 caseSensitiveKeyspace = false,
 caseSensitiveTable = true)
-public class ComplexTypes extends CassandraNativePersistent {
+public class ComplexTypes implements Persistent {
 
   @Column
   private List listDataType;
@@ -98,4 +101,82 @@ public class ComplexTypes extends CassandraNativePersistent 
{
   public void setId(String id) {
 this.id = id;
   }
+
+  @Transient
+  @Override
+  public void clear() {
+
+  }
+
+  @Transient
+  @Override
+  public boolean isDirty(int fieldIndex) {
+return false;
+  }
+
+  @Transient
+  @Override
+  public boolean isDirty(String field) {
+return false;
+  }
+
+  @Transient
+  @Override
+  public void setDirty() {
+
+  }
+
+  @Transient
+  @Override
+  public void setDirty(int fieldIndex) {
+
+  }
+
+  @Transient
+  @Override
+  public void clearDirty(int fieldIndex) {
+
+  }
+
+  @Transient
+  @Override
+  public void 

[21/37] gora git commit: Fix review comments

2017-08-23 Thread lewismc
Fix review comments


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/c5352b0e
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/c5352b0e
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/c5352b0e

Branch: refs/heads/master
Commit: c5352b0e077ad1bebe6f3536e7fd1efe2fef5cfa
Parents: a51b719
Author: madhawa 
Authored: Thu Jul 27 23:37:01 2017 +0530
Committer: madhawa 
Committed: Thu Jul 27 23:41:56 2017 +0530

--
 .../src/examples/avro/cassandraKey.json |1 +
 .../src/examples/avro/cassandraRecord.json  |1 +
 .../AvroSerialization/CassandraKey.java |  381 ++
 .../AvroSerialization/CassandraRecord.java  | 1294 ++
 .../avroSerialization/CassandraKey.java |  380 -
 .../avroSerialization/CassandraRecord.java  | 1293 -
 .../apache/gora/cassandra/bean/KeySpace.java|   19 +-
 .../gora/cassandra/query/CassandraQuery.java|6 +-
 .../cassandra/query/CassandraResultSet.java |   46 +-
 .../serializers/AvroCassandraUtils.java |   26 +-
 .../cassandra/serializers/AvroSerializer.java   |7 +-
 .../serializers/CassandraQueryFactory.java  |   84 +-
 .../serializers/CassandraSerializer.java|2 +-
 .../cassandra/serializers/NativeSerializer.java |3 -
 .../store/CassandraMappingBuilder.java  |   36 +-
 .../gora/cassandra/store/CassandraStore.java|6 +
 .../compositeKey/gora-cassandra-mapping.xml |6 +-
 .../gora-cassandra-mapping.xml  |8 +-
 .../TestCassandraStoreWithCassandraKey.java |   16 +-
 19 files changed, 1862 insertions(+), 1753 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/c5352b0e/gora-cassandra-cql/src/examples/avro/cassandraKey.json
--
diff --git a/gora-cassandra-cql/src/examples/avro/cassandraKey.json 
b/gora-cassandra-cql/src/examples/avro/cassandraKey.json
index 6db3127..f4c4a76 100644
--- a/gora-cassandra-cql/src/examples/avro/cassandraKey.json
+++ b/gora-cassandra-cql/src/examples/avro/cassandraKey.json
@@ -3,6 +3,7 @@
   "name": "CassandraKey",
   "default": null,
   "namespace": "org.apache.gora.cassandra.example.generated.avroSerialization",
+  "doc": "This Object is created to used as Cassandra Key to test cassandra 
data store, Cassandra Key can be used to define partition keys, clustering 
keys.",
   "fields": [
 {
   "name": "url",

http://git-wip-us.apache.org/repos/asf/gora/blob/c5352b0e/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
--
diff --git a/gora-cassandra-cql/src/examples/avro/cassandraRecord.json 
b/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
index bd741cd..48ce275 100644
--- a/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
+++ b/gora-cassandra-cql/src/examples/avro/cassandraRecord.json
@@ -3,6 +3,7 @@
   "name": "CassandraRecord",
   "default": null,
   "namespace": "org.apache.gora.cassandra.example.generated.avroSerialization",
+  "doc": "This object created to used as Persistent Object to test cassandra 
data store",
   "fields": [
 {
   "name": "dataString",

http://git-wip-us.apache.org/repos/asf/gora/blob/c5352b0e/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
new file mode 100644
index 000..478690d
--- /dev/null
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraKey.java
@@ -0,0 +1,381 @@
+/**
+ *Licensed to the Apache Software Foundation (ASF) under one
+ *or more contributor license agreements.  See the NOTICE file
+ *distributed with this work for additional information
+ *regarding copyright ownership.  The ASF licenses this file
+ *to you 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 

[15/37] gora git commit: Add getPartitions Method

2017-08-23 Thread lewismc
Add getPartitions Method


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/4ebfabb1
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/4ebfabb1
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/4ebfabb1

Branch: refs/heads/master
Commit: 4ebfabb194c88fa10db51d6f2db6282a357ae15d
Parents: 163624a
Author: madhawa 
Authored: Sat Jul 8 11:54:05 2017 +0530
Committer: madhawa 
Committed: Sat Jul 8 11:54:05 2017 +0530

--
 .../org/apache/gora/cassandra/store/CassandraStore.java | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/4ebfabb1/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
index e6cf373..8a100aa 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
@@ -25,12 +25,15 @@ import org.apache.gora.persistency.Persistent;
 import org.apache.gora.query.PartitionQuery;
 import org.apache.gora.query.Query;
 import org.apache.gora.query.Result;
+import org.apache.gora.query.impl.PartitionQueryImpl;
+import org.apache.gora.query.ws.impl.PartitionWSQueryImpl;
 import org.apache.gora.store.DataStore;
 import org.apache.gora.store.DataStoreFactory;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 
@@ -227,7 +230,11 @@ public class CassandraStore 
implements DataStore
 
   @Override
   public List> getPartitions(Query query) throws 
IOException {
-return null;
+List> partitions = new ArrayList<>();
+PartitionWSQueryImpl pqi = new PartitionWSQueryImpl<>(query);
+pqi.setDataStore(this);
+partitions.add(pqi);
+return partitions;
   }
 
   @Override



[30/37] gora git commit: Add License Headers

2017-08-23 Thread lewismc
Add License Headers


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/2695207b
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/2695207b
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/2695207b

Branch: refs/heads/master
Commit: 2695207be60528c10f0d03ac097c0af73a2ab292
Parents: a2d63ca
Author: madhawa-gunasekara 
Authored: Fri Aug 11 21:10:03 2017 +0530
Committer: madhawa-gunasekara 
Committed: Fri Aug 11 21:18:13 2017 +0530

--
 gora-cassandra-cql/pom.xml  |  5 --
 .../nativeSerialization/ComplexTypes.java   | 18 
 .../generated/nativeSerialization/Customer.java | 14 ++
 .../generated/nativeSerialization/Document.java |  1 -
 .../generated/nativeSerialization/User.java |  1 -
 .../compiler/GoraCassandraNativeCompiler.java   | 27 +--
 .../cassandra/serializers/AvroSerializer.java   |  6 ---
 .../serializers/CassandraQueryFactory.java  | 15 +++---
 .../serializers/CassandraSerializer.java|  7 +--
 .../cassandra/serializers/NativeSerializer.java |  2 +-
 .../store/CassandraMappingBuilder.java  | 48 +---
 .../store/TestAvroSerializationWithUDT.java |  6 +--
 .../cassandra/store/TestCassandraStore.java |  4 ++
 .../TestCassandraStoreWithCassandraKey.java | 14 +++---
 .../store/TestNativeSerializationWithUDT.java   | 11 +
 15 files changed, 80 insertions(+), 99 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/2695207b/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index 630c51b..2e05e43 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -179,11 +179,6 @@
 
 
 
-
-
 
 org.apache.gora
 gora-hbase

http://git-wip-us.apache.org/repos/asf/gora/blob/2695207b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
index c161ef9..1a6a674 100644
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
@@ -1,3 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.gora.cassandra.example.generated.nativeSerialization;
 
 import com.datastax.driver.mapping.annotations.Column;

http://git-wip-us.apache.org/repos/asf/gora/blob/2695207b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java
index 1b2de10..59bed36 100644
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java
@@ -15,37 +15,31 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.apache.gora.cassandra.example.generated.nativeSerialization;
 
 import com.datastax.driver.mapping.annotations.Field;
 import com.datastax.driver.mapping.annotations.UDT;
 
-import java.util.List;
-import java.util.Map;
 import 

[02/37] gora git commit: Adding Cassandra Mapping file reading

2017-08-23 Thread lewismc
Adding Cassandra Mapping file reading


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/a7b99f83
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/a7b99f83
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/a7b99f83

Branch: refs/heads/master
Commit: a7b99f83aaf385cbe6772a5a0c7843b65153ec57
Parents: cd3522a
Author: madhawa-gunasekara 
Authored: Thu Jun 22 15:36:48 2017 +0530
Committer: madhawa 
Committed: Fri Jun 23 00:52:39 2017 +0530

--
 gora-cassandra-cql/pom.xml  |  47 +
 .../org/apache/gora/cassandra/bean/Field.java   |  54 ++
 .../apache/gora/cassandra/bean/KeySpace.java|  84 +
 .../apache/gora/cassandra/bean/PrimaryKey.java  |   7 +
 .../gora/cassandra/store/CassandraMapping.java  |  60 +++
 .../cassandra/store/CassandraQueryFactory.java  |  58 ++
 .../gora/cassandra/store/CassandraStore.java| 178 +--
 .../apache/gora/cassandra/store/Constants.java  |  75 
 .../src/test/conf/gora-cassandra-mapping.xml|  78 
 .../gora/cassandra/GoraCassandraTestDriver.java |   3 +-
 .../cassandra/store/TestCassandraStore.java |   9 +-
 11 files changed, 514 insertions(+), 139 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/a7b99f83/gora-cassandra-cql/pom.xml
--
diff --git a/gora-cassandra-cql/pom.xml b/gora-cassandra-cql/pom.xml
index b17fd41..11da4fc 100644
--- a/gora-cassandra-cql/pom.xml
+++ b/gora-cassandra-cql/pom.xml
@@ -17,22 +17,6 @@
   -->
 
 http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
- 
 4.0.0
 
 
@@ -65,6 +49,7 @@
 
 
 
+17.0
 *
 
org.apache.gora.cassandra*;version="${project.version}";-noimport:=true
 
@@ -136,12 +121,12 @@
 com.datastax.cassandra
 cassandra-driver-core
 ${cassandra-driver.version}
-
-
-com.google.guava
-guava
-
-
+
+
+
+com.datastax.cassandra
+cassandra-driver-mapping
+${cassandra-driver.version}
 
 
 
@@ -165,26 +150,11 @@
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 com.google.guava
 guava
+${guava.version}
 
 
 
@@ -192,7 +162,6 @@
 jdom
 
 
-
 
 org.apache.avro
 avro

http://git-wip-us.apache.org/repos/asf/gora/blob/a7b99f83/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/Field.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/Field.java 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/Field.java
new file mode 100644
index 000..2bd997f
--- /dev/null
+++ b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/Field.java
@@ -0,0 +1,54 @@
+package org.apache.gora.cassandra.bean;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by madhawa on 6/22/17.
+ */
+public class Field {
+
+  private String fieldName;
+
+  private String columnName;
+
+  private String type;
+
+  public Field() {
+properties = new HashMap<>(2);
+  }
+
+  private Map properties;
+
+  public void setFieldName(String fieldName) {
+this.fieldName = fieldName;
+  }
+
+  public void setColumnName(String columnName) {
+this.columnName = columnName;
+  }
+
+  public void addProperty(String key, String value) {
+properties.put(key, value);
+  }
+
+  public String getFieldName() {
+return fieldName;
+  }
+
+  public String getColumnName() {
+return columnName;
+  }
+
+  public String getType() {
+return type;
+  }
+
+  public void setType(String type) {
+this.type = type;
+  }
+
+  public String getProperty(String key) {
+return this.properties.get(key);
+  }
+}

http://git-wip-us.apache.org/repos/asf/gora/blob/a7b99f83/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java
new file mode 100644
index 000..af563da
--- /dev/null
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java

[16/37] gora git commit: Add updateByQuery for native serialization

2017-08-23 Thread lewismc
Add updateByQuery for native serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/cc452f8d
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/cc452f8d
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/cc452f8d

Branch: refs/heads/master
Commit: cc452f8dc0d864c50279dfa61d56e57e5e40a740
Parents: 4ebfabb
Author: madhawa 
Authored: Sat Jul 8 15:02:54 2017 +0530
Committer: madhawa 
Committed: Sat Jul 8 15:02:54 2017 +0530

--
 .../gora/cassandra/query/CassandraQuery.java| 35 
 .../cassandra/serializers/AvroSerializer.java   |  4 ++
 .../serializers/CassandraQueryFactory.java  | 60 ++--
 .../serializers/CassandraSerializer.java|  2 +
 .../cassandra/serializers/NativeSerializer.java | 13 +
 .../gora/cassandra/store/CassandraStore.java| 19 +++
 ...stCassandraStoreWithNativeSerialization.java | 22 +++
 7 files changed, 129 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/cc452f8d/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
index 251e9df..c3f2e81 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
@@ -6,9 +6,9 @@
  * to you 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
- *
+ * 
+ * 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.
@@ -20,22 +20,21 @@ package org.apache.gora.cassandra.query;
 
 import org.apache.gora.filter.Filter;
 import org.apache.gora.persistency.Persistent;
-import org.apache.gora.persistency.impl.PersistentBase;
 import org.apache.gora.query.Query;
-import org.apache.gora.query.Result;
-import org.apache.gora.query.impl.QueryBase;
 import org.apache.gora.query.ws.impl.QueryWSBase;
 import org.apache.gora.store.DataStore;
-import org.apache.hadoop.conf.Configurable;
-import org.apache.hadoop.io.Writable;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Cassandra specific implementation of the {@link Query} interface.
  */
-public class CassandraQuery extends QueryWSBase {
+public class CassandraQuery extends QueryWSBase 
{
 
   protected Filter filter;
-  protected boolean localFilterEnabled=true;
+  protected boolean localFilterEnabled = true;
+  protected Map updateFields = new HashMap<>();
 
   public CassandraQuery(DataStore dataStore) {
 super(dataStore);
@@ -61,7 +60,21 @@ public class CassandraQuery extends 
QueryWSBase {
 localFilterEnabled = enable;
   }
 
-  public void addUpdateField(String field, Object oldValue, Object newValue) {
+  public void addUpdateField(String field, Object newValue) {
+updateFields.put(field, newValue);
+  }
 
+  public Object getUpdateFieldValue(String key) {
+return updateFields.get(key);
+  }
+
+  @Override
+  public String[] getFields() {
+if(updateFields.size() == 0) {
+  return super.getFields();
+} else {
+  String[] updateFieldsArray = new String[updateFields.size()];
+  return updateFields.keySet().toArray(updateFieldsArray);
+}
   }
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/cc452f8d/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
index 83676dc..3b626a4 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
@@ -80,4 +80,8 @@ class AvroSerializer extends 
CassandraSerializer {
 return 0;
   }
 
+  @Override
+  public boolean updateByQuery(Query query) {
+return false;
+  }
 }


[31/37] gora git commit: Fix code review comments

2017-08-23 Thread lewismc
Fix code review comments


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/0de528ef
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/0de528ef
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/0de528ef

Branch: refs/heads/master
Commit: 0de528effcfa595ff9f9c5cb3d0c7eaf18392554
Parents: 2695207
Author: madhawa-gunasekara 
Authored: Sun Aug 13 15:52:43 2017 +0530
Committer: madhawa-gunasekara 
Committed: Sun Aug 13 19:28:18 2017 +0530

--
 .../compiler/GoraCassandraNativeCompiler.java   |   2 +-
 .../gora/cassandra/query/CassandraQuery.java|  27 +
 .../cassandra/query/CassandraResultSet.java |   5 +-
 .../serializers/AvroCassandraUtils.java |   2 +-
 .../cassandra/serializers/AvroSerializer.java   |  94 ++-
 .../serializers/CassandraQueryFactory.java  |  34 --
 .../serializers/CassandraSerializer.java| 102 
 .../cassandra/serializers/NativeSerializer.java |  73 ++-
 .../gora/cassandra/store/CassandraClient.java   |   6 +-
 .../gora/cassandra/store/CassandraMapping.java  |   7 +-
 .../gora/cassandra/store/CassandraStore.java| 120 ++-
 .../gora/cassandra/GoraCassandraTestDriver.java |   3 -
 .../store/TestAvroSerializationWithUDT.java |   3 +
 .../cassandra/store/TestCassandraStore.java |  44 ++-
 .../store/TestNativeSerializationWithUDT.java   |   3 +
 15 files changed, 405 insertions(+), 120 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/0de528ef/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
index 77d6777..369ff31 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/compiler/GoraCassandraNativeCompiler.java
@@ -64,7 +64,7 @@ public class GoraCassandraNativeCompiler {
   }
 
   /**
-   * Generates Java classes for a schema.
+   * Generates Java classes for a mapping.
*/
   private static void compileSchema(File src, File dest) throws Exception {
 log.info("Compiling {} to {}", src, dest);

http://git-wip-us.apache.org/repos/asf/gora/blob/0de528ef/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
index 1479686..919e946 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraQuery.java
@@ -40,34 +40,61 @@ public class CassandraQuery 
extends QueryWSBase {
 super(dataStore);
   }
 
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public Filter getFilter() {
 return filter;
   }
 
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public void setFilter(Filter filter) {
 this.filter = filter;
   }
 
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public boolean isLocalFilterEnabled() {
 return localFilterEnabled;
   }
 
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public void setLocalFilterEnabled(boolean enable) {
 localFilterEnabled = enable;
   }
 
+  /**
+   * This method adds Update field with the relevant Value
+   *
+   * @param fieldfield Name
+   * @param newValue New Value of the field
+   */
   public void addUpdateField(String field, Object newValue) {
 updateFields.put(field, newValue);
   }
 
+  /**
+   * This method returns the updated field value of the particular field.
+   *
+   * @param key Field Name
+   * @return Object value
+   */
   public Object getUpdateFieldValue(String key) {
 return updateFields.get(key);
   }
 
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public String[] getFields() {
 if (updateFields.size() == 0) {

http://git-wip-us.apache.org/repos/asf/gora/blob/0de528ef/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/query/CassandraResultSet.java
index 

[20/37] gora git commit: Fix review comments

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/c5352b0e/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/avroSerialization/CassandraRecord.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/avroSerialization/CassandraRecord.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/avroSerialization/CassandraRecord.java
deleted file mode 100644
index 4a92882..000
--- 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/avroSerialization/CassandraRecord.java
+++ /dev/null
@@ -1,1293 +0,0 @@
-/**
- *Licensed to the Apache Software Foundation (ASF) under one
- *or more contributor license agreements.  See the NOTICE file
- *distributed with this work for additional information
- *regarding copyright ownership.  The ASF licenses this file
- *to you 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.apache.gora.cassandra.example.generated.avroSerialization;  
-
-public class CassandraRecord extends 
org.apache.gora.persistency.impl.PersistentBase implements 
org.apache.avro.specific.SpecificRecord, org.apache.gora.persistency.Persistent 
{
-  public static final org.apache.avro.Schema SCHEMA$ = new 
org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"CassandraRecord\",\"namespace\":\"org.apache.gora.cassandra.example.generated.avroSerialization\",\"fields\":[{\"name\":\"dataString\",\"type\":\"string\",\"default\":\"\"},{\"name\":\"dataInt\",\"type\":\"int\",\"default\":0},{\"name\":\"dataLong\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"dataDouble\",\"type\":[\"null\",\"double\"],\"default\":null},{\"name\":\"dataBytes\",\"type\":[\"null\",\"bytes\"],\"default\":null},{\"name\":\"arrayInt\",\"type\":{\"type\":\"array\",\"items\":\"int\"},\"default\":null},{\"name\":\"arrayString\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"default\":null},{\"name\":\"arrayLong\",\"type\":{\"type\":\"array\",\"items\":\"long\"},\"default\":null},{\"name\":\"arrayDouble\",\"type\":{\"type\":\"array\",\"items\":\"double\"},\"default\":null},{\"name\":\"mapInt\",\"type\":{\"type\":\"map\",\"valu
 
es\":\"int\"},\"default\":{}},{\"name\":\"mapString\",\"type\":{\"type\":\"map\",\"values\":\"string\"},\"default\":{}},{\"name\":\"mapLong\",\"type\":{\"type\":\"map\",\"values\":\"long\"},\"default\":{}},{\"name\":\"mapDouble\",\"type\":{\"type\":\"map\",\"values\":\"double\"},\"default\":{}}],\"default\":null}");
-  private static final long serialVersionUID = 5865822911454498901L;
-  /** Enum containing all data bean's fields. */
-  public static enum Field {
-DATA_STRING(0, "dataString"),
-DATA_INT(1, "dataInt"),
-DATA_LONG(2, "dataLong"),
-DATA_DOUBLE(3, "dataDouble"),
-DATA_BYTES(4, "dataBytes"),
-ARRAY_INT(5, "arrayInt"),
-ARRAY_STRING(6, "arrayString"),
-ARRAY_LONG(7, "arrayLong"),
-ARRAY_DOUBLE(8, "arrayDouble"),
-MAP_INT(9, "mapInt"),
-MAP_STRING(10, "mapString"),
-MAP_LONG(11, "mapLong"),
-MAP_DOUBLE(12, "mapDouble"),
-;
-/**
- * Field's index.
- */
-private int index;
-
-/**
- * Field's name.
- */
-private String name;
-
-/**
- * Field's constructor
- * @param index field's index.
- * @param name field's name.
- */
-Field(int index, String name) {this.index=index;this.name=name;}
-
-/**
- * Gets field's index.
- * @return int field's index.
- */
-public int getIndex() {return index;}
-
-/**
- * Gets field's name.
- * @return String field's name.
- */
-public String getName() {return name;}
-
-/**
- * Gets field's attributes to string.
- * @return String field's attributes to string.
- */
-public String toString() {return name;}
-  };
-
-  public static final String[] _ALL_FIELDS = {
-  "dataString",
-  "dataInt",
-  "dataLong",
-  "dataDouble",
-  "dataBytes",
-  "arrayInt",
-  "arrayString",
-  "arrayLong",
-  "arrayDouble",
-  "mapInt",
-  "mapString",
-  "mapLong",
-  "mapDouble",
-  };
-
-  /**
-   * Gets the total field count.
-   * @return int field count
-   */
-  public int getFieldsCount() {
-return CassandraRecord._ALL_FIELDS.length;
-  }
-
-  private java.lang.CharSequence dataString;
-  private int dataInt;
-  private java.lang.Long dataLong;
-  private java.lang.Double 

[13/37] gora git commit: Add delete by Query method for native serialization

2017-08-23 Thread lewismc
Add delete by Query method for native serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/2fe2c2bb
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/2fe2c2bb
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/2fe2c2bb

Branch: refs/heads/master
Commit: 2fe2c2bbbffcbeb968e523dd332ad087827b3f92
Parents: 4ce6a6e
Author: madhawa 
Authored: Sat Jul 8 10:55:27 2017 +0530
Committer: madhawa 
Committed: Sat Jul 8 10:55:27 2017 +0530

--
 .../cassandra/serializers/AvroSerializer.java   |   5 +
 .../serializers/CassandraQueryFactory.java  | 131 ++-
 .../serializers/CassandraSerializer.java|   4 +-
 .../cassandra/serializers/NativeSerializer.java |  13 ++
 .../gora/cassandra/store/CassandraStore.java|  12 +-
 .../gora-cassandra-mapping.xml  |   2 +-
 .../cassandra/store/TestCassandraStore.java |  95 --
 ...stCassandraStoreWithNativeSerialization.java |  43 +-
 8 files changed, 164 insertions(+), 141 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/2fe2c2bb/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
index d5dd548..8061a80 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroSerializer.java
@@ -75,4 +75,9 @@ public class AvroSerializer 
extends CassandraSerial
 return null;
   }
 
+  @Override
+  public long deleteByQuery(Query query) {
+return 0;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/2fe2c2bb/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
index 3939c34..2a980e5 100644
--- 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraQueryFactory.java
@@ -16,6 +16,7 @@
  */
 package org.apache.gora.cassandra.serializers;
 
+import com.datastax.driver.core.querybuilder.Delete;
 import com.datastax.driver.core.querybuilder.QueryBuilder;
 import com.datastax.driver.core.querybuilder.Select;
 import org.apache.gora.cassandra.bean.CassandraKey;
@@ -27,6 +28,7 @@ import org.apache.gora.cassandra.query.CassandraRow;
 import org.apache.gora.cassandra.store.CassandraMapping;
 import org.apache.gora.query.Query;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
@@ -290,64 +292,125 @@ class CassandraQueryFactory {
   }
 
 
-  static String getExecuteQuery(CassandraMapping mapping, Query 
cassandraQuery, List objects ) {
+  static String getExecuteQuery(CassandraMapping mapping, Query 
cassandraQuery, List objects) {
 String[] fields = cassandraQuery.getFields();
 fields = fields != null ? fields : mapping.getFieldNames();
 Object startKey = cassandraQuery.getStartKey();
 Object endKey = cassandraQuery.getEndKey();
-long limit =  cassandraQuery.getLimit();
-Select select = 
QueryBuilder.select(getColumnNames(mapping,fields)).from(mapping.getKeySpace().getName(),
 mapping.getCoreName());
-if(limit > 0) {
-  select = select.limit((int)limit);
+Object key = cassandraQuery.getKey();
+String primaryKey = null;
+long limit = cassandraQuery.getLimit();
+Select select = QueryBuilder.select(getColumnNames(mapping, 
fields)).from(mapping.getKeySpace().getName(), mapping.getCoreName());
+if (limit > 0) {
+  select = select.limit((int) limit);
 }
 Select.Where query = null;
 boolean isWhereNeeded = true;
-if(startKey != null) {
-  if (mapping.getCassandraKey() != null) {
+if (key != null) {
+  primaryKey = getPKey(mapping.getFieldList());
+  query = select.where(QueryBuilder.eq(primaryKey, "?"));
+  objects.add(key);
+} else {
+  if (startKey != null) {
+if (mapping.getCassandraKey() != null) {
 //todo avro serialization
-  } else {
-for (Field field : mapping.getFieldList()) {
-  boolean isPrimaryKey = 
Boolean.parseBoolean(field.getProperty("primarykey"));
-  if (isPrimaryKey) 

[27/37] gora git commit: Add tests for avro

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/src/test/conf/gora.properties
--
diff --git a/gora-cassandra-cql/src/test/conf/gora.properties 
b/gora-cassandra-cql/src/test/conf/gora.properties
index a109759..fb98d63 100644
--- a/gora-cassandra-cql/src/test/conf/gora.properties
+++ b/gora-cassandra-cql/src/test/conf/gora.properties
@@ -19,9 +19,7 @@ gora.cassandrastore.cluster=Gora Cassandra Test Cluster
 gora.cassandrastore.host=localhost:9160
 # property is annotated in CassandraClient#checkKeyspace()
 # options are ANY, ONE, TWO, THREE, LOCAL_QUORUM, EACH_QUORUM, QUORUM and ALL. 
-gora.cassandrastore.cf.consistency.level=ONE
-gora.cassandrastore.read.consistency.level=QUORUM
-gora.cassandrastore.write.consistency.level=ONE
+
 
 
 

http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/src/test/conf/nativeUDT/gora-cassandra-mapping.xml
--
diff --git 
a/gora-cassandra-cql/src/test/conf/nativeUDT/gora-cassandra-mapping.xml 
b/gora-cassandra-cql/src/test/conf/nativeUDT/gora-cassandra-mapping.xml
new file mode 100644
index 000..d6d99bf
--- /dev/null
+++ b/gora-cassandra-cql/src/test/conf/nativeUDT/gora-cassandra-mapping.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/GoraCassandraTestDriver.java
--
diff --git 
a/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/GoraCassandraTestDriver.java
 
b/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/GoraCassandraTestDriver.java
index a091721..1d454b4 100644
--- 
a/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/GoraCassandraTestDriver.java
+++ 
b/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/GoraCassandraTestDriver.java
@@ -118,7 +118,7 @@ public class GoraCassandraTestDriver extends GoraTestDriver 
{
*/
   @Override
   public void setUpClass() {
-/*log.info("Starting embedded Cassandra Server...");
+log.info("Starting embedded Cassandra Server...");
 try {
   cleanupDirectoriesFailover();
   FileUtils.createDirectory(baseDirectory);
@@ -147,7 +147,7 @@ public class GoraCassandraTestDriver extends GoraTestDriver 
{
 
   // cleanup
   tearDownClass();
-}*/
+}
   }
 
   /**
@@ -158,9 +158,9 @@ public class GoraCassandraTestDriver extends GoraTestDriver 
{
   @Override
   public void tearDownClass() {
 log.info("Shutting down Embedded Cassandra server...");
- /*   if (cassandraThread != null) {
+if (cassandraThread != null) {
   cassandraDaemon.stop();
   cassandraDaemon.destroy();
-}*/
+}
   }
 }

http://git-wip-us.apache.org/repos/asf/gora/blob/a9a3ad49/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestAvroSerializationWithUDT.java
--
diff --git 
a/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestAvroSerializationWithUDT.java
 
b/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestAvroSerializationWithUDT.java
new file mode 100644
index 000..8dfae6b
--- /dev/null
+++ 
b/gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestAvroSerializationWithUDT.java
@@ -0,0 +1,91 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.apache.gora.cassandra.store;
+
+import org.apache.avro.util.Utf8;
+import org.apache.gora.cassandra.GoraCassandraTestDriver;
+import org.apache.gora.examples.generated.Metadata;
+import org.apache.gora.examples.generated.WebPage;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Properties;
+
+public class TestAvroSerializationWithUDT {
+
+  private static 

[18/37] gora git commit: Add avro serialization support

2017-08-23 Thread lewismc
http://git-wip-us.apache.org/repos/asf/gora/blob/a51b719c/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroCassandraUtils.java
--
diff --git 
a/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroCassandraUtils.java
 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroCassandraUtils.java
new file mode 100644
index 000..70e0ecf
--- /dev/null
+++ 
b/gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/AvroCassandraUtils.java
@@ -0,0 +1,274 @@
+package org.apache.gora.cassandra.serializers;
+
+import org.apache.avro.Schema;
+import org.apache.avro.specific.SpecificData;
+import org.apache.avro.util.Utf8;
+import org.apache.gora.cassandra.bean.CassandraKey;
+import org.apache.gora.cassandra.bean.Field;
+import org.apache.gora.cassandra.store.CassandraMapping;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.persistency.impl.DirtyListWrapper;
+import org.apache.gora.persistency.impl.DirtyMapWrapper;
+import org.apache.gora.persistency.impl.PersistentBase;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * This class is Utils class for Avro serialization.
+ */
+public class AvroCassandraUtils {
+
+  /**
+   * Default schema index with value "0" used when AVRO Union data types are 
stored.
+   */
+  private static final int DEFAULT_UNION_SCHEMA = 0;
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AvroCassandraUtils.class);
+
+  static void processKeys(CassandraMapping cassandraMapping, Object key, 
List keys, List values) {
+CassandraKey cassandraKey = cassandraMapping.getCassandraKey();
+if (cassandraMapping.isPartitionKeyDefined()) {
+  if (cassandraKey != null) {
+if (key instanceof PersistentBase) {
+  PersistentBase keyBase = (PersistentBase) key;
+  for (Schema.Field field : keyBase.getSchema().getFields()) {
+if (cassandraMapping.getFieldFromFieldName(field.name()) != null) {
+  keys.add(field.name());
+  Object value = keyBase.get(field.pos());
+  value = getFieldValueFromAvroBean(field.schema(), 
field.schema().getType(), value);
+  values.add(value);
+} else {
+  LOG.debug("Ignoring field {}, Since field couldn't find in the 
{} mapping", new Object[]{field.name(), cassandraMapping.getPersistentClass()});
+}
+  }
+} else {
+  LOG.error("Key bean isn't extended by {} .", new 
Object[]{cassandraMapping.getKeyClass(), PersistentBase.class});
+}
+  } else {
+for (Field field : cassandraMapping.getInlinedDefinedPartitionKeys()) {
+  keys.add(field.getFieldName());
+  values.add(key);
+}
+  }
+} else {
+  keys.add(cassandraMapping.getDefaultCassandraKey().getFieldName());
+  values.add(key.toString());
+}
+  }
+
+  /**
+   * For every field within an object, we pass in a field schema, Type and 
value.
+   * This enables us to process fields (based on their characteristics)
+   * preparing them for persistence.
+   *
+   * @param fieldSchema the associated field schema
+   * @param typethe field type
+   * @param fieldValue  the field value.
+   * @return
+   */
+  static Object getFieldValueFromAvroBean(Schema fieldSchema, Schema.Type 
type, Object fieldValue) {
+switch (type) {
+  case RECORD:
+PersistentBase persistent = (PersistentBase) fieldValue;
+PersistentBase newRecord = (PersistentBase) 
SpecificData.get().newRecord(persistent, persistent.getSchema());
+for (Schema.Field member : fieldSchema.getFields()) {
+  if (member.pos() == 0 || !persistent.isDirty()) {
+continue;
+  }
+  Schema memberSchema = member.schema();
+  Schema.Type memberType = memberSchema.getType();
+  Object memberValue = persistent.get(member.pos());
+  newRecord.put(member.pos(), getFieldValueFromAvroBean(memberSchema, 
memberType, memberValue));
+}
+fieldValue = newRecord;
+break;
+  case MAP:
+Schema valueSchema = fieldSchema.getValueType();
+Schema.Type valuetype = valueSchema.getType();
+HashMap map = new HashMap<>();
+for (Map.Entry e : ((Map) 
fieldValue).entrySet()) {
+  String mapKey = e.getKey().toString();
+  Object mapValue = e.getValue();
+  mapValue = getFieldValueFromAvroBean(valueSchema, valuetype, 
mapValue);
+  map.put(mapKey, mapValue);
+}
+fieldValue = map;
+break;
+  case ARRAY:
+valueSchema = fieldSchema.getElementType();
+valuetype 

[17/37] gora git commit: Add optional codecs to support all the datatypes for native serialization

2017-08-23 Thread lewismc
Add optional codecs to support all the datatypes for native serialization


Project: http://git-wip-us.apache.org/repos/asf/gora/repo
Commit: http://git-wip-us.apache.org/repos/asf/gora/commit/43439820
Tree: http://git-wip-us.apache.org/repos/asf/gora/tree/43439820
Diff: http://git-wip-us.apache.org/repos/asf/gora/diff/43439820

Branch: refs/heads/master
Commit: 434398203b50c8bc4a71b116ebfa99ef6d0de8a2
Parents: cc452f8
Author: madhawa 
Authored: Wed Jul 12 20:46:02 2017 +0530
Committer: madhawa 
Committed: Wed Jul 12 20:46:02 2017 +0530

--
 .../nativeSerialization/ComplexTypes.java   | 102 ++
 .../generated/nativeSerialization/User.java |   3 -
 .../gora/cassandra/store/CassandraClient.java   | 134 ++-
 .../store/CassandraMappingBuilder.java  |   4 +-
 .../gora/cassandra/store/CassandraStore.java|   2 +-
 .../gora-cassandra-mapping.xml  |  19 ++-
 .../conf/nativeSerialization/gora.properties|   6 +-
 ...stCassandraStoreWithNativeSerialization.java |  43 ++
 8 files changed, 297 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/gora/blob/43439820/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
new file mode 100644
index 000..ac8de28
--- /dev/null
+++ 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java
@@ -0,0 +1,102 @@
+package org.apache.gora.cassandra.example.generated.nativeSerialization;
+
+import com.datastax.driver.mapping.annotations.Column;
+import com.datastax.driver.mapping.annotations.PartitionKey;
+import com.datastax.driver.mapping.annotations.Table;
+import org.apache.gora.cassandra.persistent.CassandraNativePersistent;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+/**
+ * Sample class for test native cassandra persistent.
+ */
+@Table(keyspace = "nativeTestKeySpace", name = "documents",
+readConsistency = "QUORUM",
+writeConsistency = "QUORUM",
+caseSensitiveKeyspace = false,
+caseSensitiveTable = true)
+public class ComplexTypes extends CassandraNativePersistent {
+
+  @Column
+  private List listDataType;
+  @Column
+  private Map mapDataType;
+  @Column
+  private String[] stringArrayDataType;
+  @Column
+  private int[] intArrayDataType;
+  @Column
+  private Set setDataType;
+  @PartitionKey
+  @Column
+  private String id;
+  @Column
+  private List listUUIDDataType;
+
+  public List getListUUIDDataType() {
+return listUUIDDataType;
+  }
+
+  public void setListUUIDDataType(List listUUIDDataType) {
+this.listUUIDDataType = listUUIDDataType;
+  }
+
+
+  public ComplexTypes(String id) {
+this.id = id;
+  }
+
+  public List getListDataType() {
+return listDataType;
+  }
+
+  public void setListDataType(List listDataType) {
+this.listDataType = listDataType;
+  }
+
+  public Map getMapDataType() {
+return mapDataType;
+  }
+
+  public void setMapDataType(Map mapDataType) {
+this.mapDataType = mapDataType;
+  }
+
+  public ComplexTypes() {
+  }
+
+  public String[] getStringArrayDataType() {
+return stringArrayDataType;
+  }
+
+  public void setStringArrayDataType(String[] stringArrayDataType) {
+this.stringArrayDataType = stringArrayDataType;
+  }
+
+  public int[] getIntArrayDataType() {
+return intArrayDataType;
+  }
+
+  public void setIntArrayDataType(int[] intArrayDataType) {
+this.intArrayDataType = intArrayDataType;
+  }
+
+  public Set getSetDataType() {
+return setDataType;
+  }
+
+  public void setSetDataType(Set setDataType) {
+this.setDataType = setDataType;
+  }
+
+  public String getId() {
+return id;
+  }
+
+  public void setId(String id) {
+this.id = id;
+  }
+}

http://git-wip-us.apache.org/repos/asf/gora/blob/43439820/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
--
diff --git 
a/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
 
b/gora-cassandra-cql/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java
index 105dfb7..2b60429 100644
---