[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064173#comment-16064173
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124168409
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
+  private Properties properties = DataStoreFactory.createProps();
+
+  public GoraAerospikeTestDriver(GenericContainer aerospikeContainer) {
+super(AerospikeStore.class);
+this.aerospikeContainer = aerospikeContainer;
+  }
+
+  @Override
+  public void setUpClass() throws Exception {
+
+// Wait for the aerospike server to be started in the container
+Thread.sleep(5000);
--- End diff --

Can we check this condition with a framework like Awaitility?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064169#comment-16064169
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124167624
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java
 ---
@@ -0,0 +1,473 @@
+/*
+ * 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.aerospike.store;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Properties;
+
+import com.aerospike.client.Key;
+import com.aerospike.client.Value;
+import com.aerospike.client.Bin;
+import com.aerospike.client.Record;
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.policy.ClientPolicy;
+import org.apache.avro.Schema;
+import org.apache.avro.Schema.Field;
+import org.apache.avro.util.Utf8;
+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.apache.gora.query.PartitionQuery;
+import org.apache.gora.query.Query;
+import org.apache.gora.query.Result;
+import org.apache.gora.store.impl.DataStoreBase;
+import org.apache.gora.util.AvroUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation of a Aerospike data store to be used by gora.
+ *
+ * @param  class to be used for the key
+ * @param  class to be persisted within the store
+ */
+public class AerospikeStore extends 
DataStoreBase {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeStore.class);
+
+  private static final String PARSE_MAPPING_FILE_KEY = 
"gora.aerospike.mapping.file";
+
+  private static final String DEFAULT_MAPPING_FILE = 
"gora-aerospike-mapping.xml";
+
+  private AerospikeClient aerospikeClient;
+
+  private AerospikeParameters aerospikeParameters;
+
+  /**
+   * {@inheritDoc}
+   * In initializing the aerospike datastore, read the mapping file, sets 
the basic
+   * aerospike specific parameters and creates the client with the user 
defined policies
+   *
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   * @param properties  properties
+   */
+  @Override
+  public void initialize(Class keyClass, Class persistentClass, 
Properties properties) {
+super.initialize(keyClass, persistentClass, properties);
+
+AerospikeMappingBuilder aerospikeMappingBuilder = new 
AerospikeMappingBuilder();
+aerospikeMappingBuilder
+.readMappingFile(getConf().get(PARSE_MAPPING_FILE_KEY, 
DEFAULT_MAPPING_FILE), keyClass,
+persistentClass);
+aerospikeParameters = new 
AerospikeParameters(aerospikeMappingBuilder.getAerospikeMapping(),
+properties);
+ClientPolicy policy = new ClientPolicy();
+policy.writePolicyDefault = 
aerospikeParameters.getAerospikeMapping().getWritePolicy();
+policy.readPolicyDefault = 
aerospikeParameters.getAerospikeMapping().getReadPolicy();
+
+aerospikeClient = new AerospikeClient(aerospikeParameters.getHost(),
+aerospikeParameters.getPort());
+aerospikeParameters.setServerSpecificParameters(aerospikeClient);
+
aerospikeParameters.validateServerBinConfiguration(persistentClass.getFields());
+LOG.info("Aerospike Gora datastore initialized successfully.");
+  }
+
+  /**
+   * Aerospike, being a schemaless database does not support explicit 
schema creation through the
+   * provided 

[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064155#comment-16064155
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165992
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeParameters.java
 ---
@@ -0,0 +1,182 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.Info;
+import com.aerospike.client.cluster.Node;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Field;
+import java.util.Properties;
+
+public class AerospikeParameters {
+  private String host;
+
+  private int port;
+
+  private String user;
+
+  private String password;
+
+  private AerospikeMapping aerospikeMapping;
+
+  private boolean isSingleBinEnabled;
+
+  // Property names
+  private static final String AS_SERVER_IP = "server.ip";
+
+  private static final String AS_SERVER_port = "server.port";
+
+  // Default property values
+  private static final String DEFAULT_SERVER_IP = "localhost";
+
+  private static final String DEFAULT_SERVER_PORT = "3000";
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeParameters.class);
+
+  /**
+   * Constructor to create AerospikeParameters object with the given 
mapping and properties
+   *
+   * @param aerospikeMapping aerospike mapping initialized from the 
mapping file
+   * @param properties   property details
+   */
+  public AerospikeParameters(AerospikeMapping aerospikeMapping, Properties 
properties) {
+this.aerospikeMapping = aerospikeMapping;
+this.host = properties.getProperty(AS_SERVER_IP, DEFAULT_SERVER_IP);
+this.port = Integer.parseInt(properties.getProperty(AS_SERVER_port, 
DEFAULT_SERVER_PORT));
+  }
+
+  public String getHost() {
+return host;
+  }
+
+  public void setHost(String host) {
+this.host = host;
+  }
+
+  public int getPort() {
+return port;
+  }
+
+  public void setPort(int port) {
+this.port = port;
+  }
+
+  public String getUser() {
+return user;
+  }
+
+  public void setUser(String user) {
+this.user = user;
+  }
+
+  public String getPassword() {
+return password;
+  }
+
+  public void setPassword(String password) {
+this.password = password;
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return aerospikeMapping;
+  }
+
+  public void setAerospikeMapping(AerospikeMapping aerospikeMapping) {
+this.aerospikeMapping = aerospikeMapping;
+  }
+
+  public boolean isSingleBinEnabled() {
+return isSingleBinEnabled;
+  }
+
+  public void setSingleBinEnabled(boolean singleBinEnabled) {
+this.isSingleBinEnabled = singleBinEnabled;
+  }
+
+  /**
+   * Retrieves and sets the server specific parameters
+   * Validates the existence of user provided namespace and validates for 
single binned
+   * namespaces
+   *
+   * @param client aerospike client used to connect with the server
+   */
+  public void setServerSpecificParameters(AerospikeClient client) {
+
+String namespaceTokens = null;
+for (Node node : client.getNodes()) {
+  String namespaceFilter = "namespace/" + 
aerospikeMapping.getNamespace();
+  namespaceTokens = Info.request(null, node, namespaceFilter);
+
+  if (namespaceTokens != null) {
+isSingleBinEnabled = parseBoolean(namespaceTokens, "single-bin");
+break;
+  }
+}
+if (namespaceTokens == null) {
+  LOG.error("Failed 

[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064154#comment-16064154
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165935
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeParameters.java
 ---
@@ -0,0 +1,182 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.Info;
+import com.aerospike.client.cluster.Node;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Field;
+import java.util.Properties;
+
+public class AerospikeParameters {
+  private String host;
+
+  private int port;
+
+  private String user;
+
+  private String password;
+
+  private AerospikeMapping aerospikeMapping;
+
+  private boolean isSingleBinEnabled;
+
+  // Property names
+  private static final String AS_SERVER_IP = "server.ip";
+
+  private static final String AS_SERVER_port = "server.port";
--- End diff --

AS_SERVER_port -> AS_SERVER_PORT?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165992
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeParameters.java
 ---
@@ -0,0 +1,182 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.Info;
+import com.aerospike.client.cluster.Node;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Field;
+import java.util.Properties;
+
+public class AerospikeParameters {
+  private String host;
+
+  private int port;
+
+  private String user;
+
+  private String password;
+
+  private AerospikeMapping aerospikeMapping;
+
+  private boolean isSingleBinEnabled;
+
+  // Property names
+  private static final String AS_SERVER_IP = "server.ip";
+
+  private static final String AS_SERVER_port = "server.port";
+
+  // Default property values
+  private static final String DEFAULT_SERVER_IP = "localhost";
+
+  private static final String DEFAULT_SERVER_PORT = "3000";
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeParameters.class);
+
+  /**
+   * Constructor to create AerospikeParameters object with the given 
mapping and properties
+   *
+   * @param aerospikeMapping aerospike mapping initialized from the 
mapping file
+   * @param properties   property details
+   */
+  public AerospikeParameters(AerospikeMapping aerospikeMapping, Properties 
properties) {
+this.aerospikeMapping = aerospikeMapping;
+this.host = properties.getProperty(AS_SERVER_IP, DEFAULT_SERVER_IP);
+this.port = Integer.parseInt(properties.getProperty(AS_SERVER_port, 
DEFAULT_SERVER_PORT));
+  }
+
+  public String getHost() {
+return host;
+  }
+
+  public void setHost(String host) {
+this.host = host;
+  }
+
+  public int getPort() {
+return port;
+  }
+
+  public void setPort(int port) {
+this.port = port;
+  }
+
+  public String getUser() {
+return user;
+  }
+
+  public void setUser(String user) {
+this.user = user;
+  }
+
+  public String getPassword() {
+return password;
+  }
+
+  public void setPassword(String password) {
+this.password = password;
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return aerospikeMapping;
+  }
+
+  public void setAerospikeMapping(AerospikeMapping aerospikeMapping) {
+this.aerospikeMapping = aerospikeMapping;
+  }
+
+  public boolean isSingleBinEnabled() {
+return isSingleBinEnabled;
+  }
+
+  public void setSingleBinEnabled(boolean singleBinEnabled) {
+this.isSingleBinEnabled = singleBinEnabled;
+  }
+
+  /**
+   * Retrieves and sets the server specific parameters
+   * Validates the existence of user provided namespace and validates for 
single binned
+   * namespaces
+   *
+   * @param client aerospike client used to connect with the server
+   */
+  public void setServerSpecificParameters(AerospikeClient client) {
+
+String namespaceTokens = null;
+for (Node node : client.getNodes()) {
+  String namespaceFilter = "namespace/" + 
aerospikeMapping.getNamespace();
+  namespaceTokens = Info.request(null, node, namespaceFilter);
+
+  if (namespaceTokens != null) {
+isSingleBinEnabled = parseBoolean(namespaceTokens, "single-bin");
+break;
+  }
+}
+if (namespaceTokens == null) {
+  LOG.error("Failed to get namespace info from Aerospike");
+  throw new RuntimeException("Failed to get namespace info from 
Aerospike");
+}
+  }
+
+  /**
+   * Parse the namespace tokens and retrieve the corresponding 

[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064153#comment-16064153
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165711
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
+WritePolicy writePolicy = new WritePolicy();
+if (policyElement.getAttributeValue("gen") != null)
+  writePolicy.generationPolicy = getGenerationPolicyMapping(
+  
policyElement.getAttributeValue("gen").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("exists") != null)
+  writePolicy.recordExistsAction = getRecordExistsAction(
+  
policyElement.getAttributeValue("exists").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("key") != null)
+  writePolicy.sendKey = getKeyUsagePolicy(
+  
policyElement.getAttributeValue("key").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("retry") != null)
+  writePolicy.retryOnTimeout = getRetryOnTimeoutPolicy(
+  
policyElement.getAttributeValue("retry").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("timeout") != null)
+  

[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165711
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
+WritePolicy writePolicy = new WritePolicy();
+if (policyElement.getAttributeValue("gen") != null)
+  writePolicy.generationPolicy = getGenerationPolicyMapping(
+  
policyElement.getAttributeValue("gen").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("exists") != null)
+  writePolicy.recordExistsAction = getRecordExistsAction(
+  
policyElement.getAttributeValue("exists").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("key") != null)
+  writePolicy.sendKey = getKeyUsagePolicy(
+  
policyElement.getAttributeValue("key").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("retry") != null)
+  writePolicy.retryOnTimeout = getRetryOnTimeoutPolicy(
+  
policyElement.getAttributeValue("retry").toUpperCase(Locale.getDefault()));
+if (policyElement.getAttributeValue("timeout") != null)
+  writePolicy.timeout = 
getTimeoutValue(policyElement.getAttributeValue("timeout"));
+aerospikeMapping.setWritePolicy(writePolicy);
+  } else if (policy.equals("read")) {
+Policy 

[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064150#comment-16064150
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165578
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
--- End diff --

Is there an enum for such policies?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165578
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
--- End diff --

Is there an enum for such policies?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064142#comment-16064142
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165139
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java
 ---
@@ -0,0 +1,473 @@
+/*
+ * 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.aerospike.store;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Properties;
+
+import com.aerospike.client.Key;
+import com.aerospike.client.Value;
+import com.aerospike.client.Bin;
+import com.aerospike.client.Record;
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.policy.ClientPolicy;
+import org.apache.avro.Schema;
+import org.apache.avro.Schema.Field;
+import org.apache.avro.util.Utf8;
+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.apache.gora.query.PartitionQuery;
+import org.apache.gora.query.Query;
+import org.apache.gora.query.Result;
+import org.apache.gora.store.impl.DataStoreBase;
+import org.apache.gora.util.AvroUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation of a Aerospike data store to be used by gora.
+ *
+ * @param  class to be used for the key
+ * @param  class to be persisted within the store
+ */
+public class AerospikeStore extends 
DataStoreBase {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeStore.class);
+
+  private static final String PARSE_MAPPING_FILE_KEY = 
"gora.aerospike.mapping.file";
+
+  private static final String DEFAULT_MAPPING_FILE = 
"gora-aerospike-mapping.xml";
+
+  private AerospikeClient aerospikeClient;
+
+  private AerospikeParameters aerospikeParameters;
+
+  /**
+   * {@inheritDoc}
+   * In initializing the aerospike datastore, read the mapping file, sets 
the basic
+   * aerospike specific parameters and creates the client with the user 
defined policies
+   *
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   * @param properties  properties
+   */
+  @Override
+  public void initialize(Class keyClass, Class persistentClass, 
Properties properties) {
+super.initialize(keyClass, persistentClass, properties);
+
+AerospikeMappingBuilder aerospikeMappingBuilder = new 
AerospikeMappingBuilder();
+aerospikeMappingBuilder
+.readMappingFile(getConf().get(PARSE_MAPPING_FILE_KEY, 
DEFAULT_MAPPING_FILE), keyClass,
+persistentClass);
+aerospikeParameters = new 
AerospikeParameters(aerospikeMappingBuilder.getAerospikeMapping(),
+properties);
+ClientPolicy policy = new ClientPolicy();
+policy.writePolicyDefault = 
aerospikeParameters.getAerospikeMapping().getWritePolicy();
+policy.readPolicyDefault = 
aerospikeParameters.getAerospikeMapping().getReadPolicy();
+
+aerospikeClient = new AerospikeClient(aerospikeParameters.getHost(),
+aerospikeParameters.getPort());
+aerospikeParameters.setServerSpecificParameters(aerospikeClient);
+
aerospikeParameters.validateServerBinConfiguration(persistentClass.getFields());
+LOG.info("Aerospike Gora datastore initialized successfully.");
+  }
+
+  /**
+   * Aerospike, being a schemaless database does not support explicit 
schema creation through the
+   * provided 

[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124165139
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeStore.java
 ---
@@ -0,0 +1,473 @@
+/*
+ * 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.aerospike.store;
+
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Properties;
+
+import com.aerospike.client.Key;
+import com.aerospike.client.Value;
+import com.aerospike.client.Bin;
+import com.aerospike.client.Record;
+import com.aerospike.client.AerospikeClient;
+import com.aerospike.client.policy.ClientPolicy;
+import org.apache.avro.Schema;
+import org.apache.avro.Schema.Field;
+import org.apache.avro.util.Utf8;
+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.apache.gora.query.PartitionQuery;
+import org.apache.gora.query.Query;
+import org.apache.gora.query.Result;
+import org.apache.gora.store.impl.DataStoreBase;
+import org.apache.gora.util.AvroUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Implementation of a Aerospike data store to be used by gora.
+ *
+ * @param  class to be used for the key
+ * @param  class to be persisted within the store
+ */
+public class AerospikeStore extends 
DataStoreBase {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeStore.class);
+
+  private static final String PARSE_MAPPING_FILE_KEY = 
"gora.aerospike.mapping.file";
+
+  private static final String DEFAULT_MAPPING_FILE = 
"gora-aerospike-mapping.xml";
+
+  private AerospikeClient aerospikeClient;
+
+  private AerospikeParameters aerospikeParameters;
+
+  /**
+   * {@inheritDoc}
+   * In initializing the aerospike datastore, read the mapping file, sets 
the basic
+   * aerospike specific parameters and creates the client with the user 
defined policies
+   *
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   * @param properties  properties
+   */
+  @Override
+  public void initialize(Class keyClass, Class persistentClass, 
Properties properties) {
+super.initialize(keyClass, persistentClass, properties);
+
+AerospikeMappingBuilder aerospikeMappingBuilder = new 
AerospikeMappingBuilder();
+aerospikeMappingBuilder
+.readMappingFile(getConf().get(PARSE_MAPPING_FILE_KEY, 
DEFAULT_MAPPING_FILE), keyClass,
+persistentClass);
+aerospikeParameters = new 
AerospikeParameters(aerospikeMappingBuilder.getAerospikeMapping(),
+properties);
+ClientPolicy policy = new ClientPolicy();
+policy.writePolicyDefault = 
aerospikeParameters.getAerospikeMapping().getWritePolicy();
+policy.readPolicyDefault = 
aerospikeParameters.getAerospikeMapping().getReadPolicy();
+
+aerospikeClient = new AerospikeClient(aerospikeParameters.getHost(),
+aerospikeParameters.getPort());
+aerospikeParameters.setServerSpecificParameters(aerospikeClient);
+
aerospikeParameters.validateServerBinConfiguration(persistentClass.getFields());
+LOG.info("Aerospike Gora datastore initialized successfully.");
+  }
+
+  /**
+   * Aerospike, being a schemaless database does not support explicit 
schema creation through the
+   * provided java client. When the records are added to the database, the 
schema is created on
+   * the fly. Thus, schema related functionality is unavailable in 
gora-aerospike module.
+   *
+   * @return null
+   */
+  

[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163028
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
+  private Properties properties = DataStoreFactory.createProps();
--- End diff --

final variable?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064124#comment-16064124
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163187
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/package-info.java 
---
@@ -0,0 +1,20 @@
+/**
--- End diff --

/** -> /*


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124162952
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
--- End diff --

final variable?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064122#comment-16064122
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163124
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/package-info.java ---
@@ -0,0 +1,20 @@
+/**
--- End diff --

/** -> /*


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163020
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
--- End diff --

final variable?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064121#comment-16064121
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163028
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
+  private Properties properties = DataStoreFactory.createProps();
--- End diff --

final variable?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064120#comment-16064120
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124163020
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
--- End diff --

final variable?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064102#comment-16064102
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on the issue:

https://github.com/apache/gora/pull/111
  
Apart from this commit, do we need .gitignore file under 
gora-accumulo/src/examples/java folder?


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora issue #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on the issue:

https://github.com/apache/gora/pull/111
  
Apart from this commit, do we need .gitignore file under 
gora-accumulo/src/examples/java folder?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16064086#comment-16064086
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124160109
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
+WritePolicy writePolicy = new WritePolicy();
+if (policyElement.getAttributeValue("gen") != null)
--- End diff --

Seems that my comment is not placed when I wrote it. I wrote about that: 
Could you check this Apple bug: 
https://www.imperialviolet.org/2014/02/22/applebug.html

Please put curly braces even they are single line of if statements at your 
PR.


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It 

[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread kamaci
Github user kamaci commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124160109
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeMappingBuilder.java
 ---
@@ -0,0 +1,303 @@
+/*
+ * 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.aerospike.store;
+
+import com.aerospike.client.policy.GenerationPolicy;
+import com.aerospike.client.policy.Policy;
+import com.aerospike.client.policy.RecordExistsAction;
+import com.aerospike.client.policy.WritePolicy;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.jdom.JDOMException;
+
+import javax.naming.ConfigurationException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+
+public class AerospikeMappingBuilder {
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(AerospikeMappingBuilder.class);
+
+  private AerospikeMapping aerospikeMapping;
+
+  public AerospikeMappingBuilder() {
+this.aerospikeMapping = new AerospikeMapping();
+  }
+
+  public AerospikeMapping getAerospikeMapping() {
+return this.aerospikeMapping;
+  }
+
+  /**
+   * Reads the gora aerospike mapping file
+   *
+   * @param mappingFile mapping file path
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   */
+  public void readMappingFile(String mappingFile, Class keyClass, 
Class persistentClass) {
+
+try {
+  SAXBuilder saxBuilder = new SAXBuilder();
+  InputStream inputStream = 
getClass().getClassLoader().getResourceAsStream(mappingFile);
+  if (inputStream == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+  Document document = saxBuilder.build(inputStream);
+  if (document == null) {
+LOG.error("Mapping file '{}' could not be found!", mappingFile);
+throw new IOException("Mapping file '" + mappingFile + "' could 
not be found!");
+  }
+
+  Element root = document.getRootElement();
+
+  List policyElements = root.getChildren("policy");
+
+  for (Element policyElement : policyElements) {
+
+String policy = policyElement.getAttributeValue("name");
+if (policy != null) {
+  if (policy.equals("write")) {
+WritePolicy writePolicy = new WritePolicy();
+if (policyElement.getAttributeValue("gen") != null)
--- End diff --

Seems that my comment is not placed when I wrote it. I wrote about that: 
Could you check this Apple bug: 
https://www.imperialviolet.org/2014/02/22/applebug.html

Please put curly braces even they are single line of if statements at your 
PR.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


Re: [AEROSPIKE] Mapping file design and initial implementation details

2017-06-26 Thread Furkan KAMACI
Hi Nishadi,

Could you start a documentation which guides how to integrate Aerospike
with Gora over an example. You can check my blog about Spark and Gora
integration as a guide [1]:

This can help your documentation and help your development process.

[1] http://furkankamaci.com/spark-backend-for-apache-gora/

Kind Regards,
Furkan KAMACI

On Tue, Jun 20, 2017 at 5:12 PM, Nishadi Kirielle  wrote:

> Hi,
> Yes I have sent the PR
>
> Regards
> Nishadi
>
> On 20 June 2017 at 01:51, lewis john mcgibbney  wrote:
>
>> Hi Nishadi,
>> Please can you submit a pull request with the issue number as the branch?
>> Thank you
>> Lewis
>>
>> On Mon, Jun 19, 2017 at 7:26 AM, Nishadi Kirielle <
>> ndimeshi...@cse.mrt.ac.lk
>> > wrote:
>>
>> > Hi All,
>> >
>> > My apologies about the last mail stating not to have field details in
>> the
>> > mapping file. As per the implementation details with regard to gora and
>> the
>> > basic operations, IMO it would need to keep the field mapping details in
>> > the mapping file. So I have updated the mapping design as follows. [1]
>> >
>> > Thank you and regards
>> > Nishadi
>> >
>> > [1]. https://github.com/nishadi/gora/blob/issue-502/
>> > gora-tutorial/conf/gora-aerospike-mapping.xml
>> >
>> > On 18 June 2017 at 14:46, Nishadi Kirielle 
>> > wrote:
>> >
>> >>
>> >> Hi All,
>> >>
>> >> I am currently working on the project to implement gora-aerospike
>> module
>> >> to gora. In looking at the aerospike data model [1], I could see that
>> it
>> >> does not require the schema in order to proceed with. I have
>> documented [2]
>> >> the basic details regarding the data model and as per the information I
>> >> found, in the mapping file it does not need to have the details of the
>> >> fields as the bins ( that correspond to columns in RDBMS) can be
>> created in
>> >> the fly while creating the records.
>> >> So I have come up with this design [3] for the mapping file for
>> aerospike
>> >> which is much different from the available other mapping files due to
>> the
>> >> absense of the fields.
>> >> At the moment I have implemented the 'put' method [4] and it works fine
>> >> with this design.
>> >>
>> >> It will be great to have feedback regarding the taken approach as I am
>> >> still in the initial stage of the design.
>> >>
>> >> [1].http://www.aerospike.com/docs/architecture/data-model.html
>> >> [2].https://docs.google.com/document/d/1Dt8V5Uar5FADk6cqvWkT
>> >> 7gdqEeLqcj5u31L5Lb_GRL8
>> >> > qEeLqcj5u31L5Lb_GRL8/edit#>
>> >> [3].https://github.com/nishadi/gora/blob/issue-502/gora-
>> >> tutorial/conf/gora-aerospike-mapping.xml
>> >> [4]. https://github.com/nishadi/gora/commit/8571ad90db935071
>> >> 18897e7fb51500ac4821c47c
>> >>
>> >>
>> >> Thank you and regards
>> >> Nishadi
>> >> --
>> >> Nishadi Kirielle
>> >>
>> >> Undergraduate
>> >> University of Moratuwa - Sri Lanka
>> >>
>> >> Mobile : +94 70 204 5934 <+94%2070%20204%205934>
>> >> Blog : nishadikirielle.wordpress.com
>> >>
>> >
>> >
>> >
>> > --
>> > Nishadi Kirielle
>> >
>> > Undergraduate
>> > University of Moratuwa - Sri Lanka
>> >
>> > Mobile : +94 70 204 5934 <+94%2070%20204%205934>
>> > Blog : nishadikirielle.wordpress.com
>> >
>>
>>
>>
>> --
>> http://home.apache.org/~lewismc/
>> @hectorMcSpector
>> http://www.linkedin.com/in/lmcgibbney
>>
>
>
>
> --
> Nishadi Kirielle
>
> Undergraduate
> University of Moratuwa - Sri Lanka
>
> Mobile : +94 70 204 5934 <+94%2070%20204%205934>
> Blog : nishadikirielle.wordpress.com
>


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063535#comment-16063535
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user nishadi commented on the issue:

https://github.com/apache/gora/pull/111
  
@lewismc  @djkevincr  Thank you for reviewing. Updated the code base as per 
the given feedback :)


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora issue #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread nishadi
Github user nishadi commented on the issue:

https://github.com/apache/gora/pull/111
  
@lewismc  @djkevincr  Thank you for reviewing. Updated the code base as per 
the given feedback :)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread nishadi
Github user nishadi commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124074066
  
--- Diff: 
gora-aerospike/src/main/java/org/apache/gora/aerospike/store/AerospikeParameters.java
 ---
@@ -0,0 +1,127 @@
+package org.apache.gora.aerospike.store;
--- End diff --

Added the header 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora issue #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on the issue:

https://github.com/apache/gora/pull/110
  
@madhawa-gunasekara this looks very good :) heading in right direction. 
Please address my comments as go though implementing the rest of the datastore 
methods.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063305#comment-16063305
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124050129
  
--- Diff: 
gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
 ---
@@ -0,0 +1,788 @@
+/*
+ *  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 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.persistency.BeanFactory;
+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.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;
+
+/**
+ * Implementation of Cassandra Store.
+ *
+ * @param  key class
+ * @param  persistent class
+ */
+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 isUseNativeSerialization;
+
+  private Mapper mapper;
+
+  private Session session;
+
+  public CassandraStore() {
+super();
+  }
+
+  /**
+   * In initializing the cassandra datastore, read the mapping file, 
creates the basic connection to cassandra cluster,
+   * according to the gora properties
+   *
+   * @param keyClasskey class
+   * @param persistentClass persistent class

[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063314#comment-16063314
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124045668
  
--- Diff: gora-cassandra-cql/src/examples/java/.gitignore ---
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
--- End diff --

Is this file added intentionally?


> Migrate CassandraThrift to CQL 
> ---
>
> Key: GORA-497
> URL: https://issues.apache.org/jira/browse/GORA-497
> Project: Apache Gora
>  Issue Type: Improvement
>  Components: gora-cassandra
>Reporter: Madhawa Gunasekara
>Assignee: Madhawa Gunasekara
>  Labels: gsoc2017
> Fix For: 0.8
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063306#comment-16063306
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124048997
  
--- Diff: gora-cassandra-cql/pom.xml ---
@@ -0,0 +1,232 @@
+
+
+
+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/
+
+
+
+18.0
+*
+
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.apache.maven.plugins
+maven-surefire-plugin
+
+
+org.apache.maven.surefire
+surefire-junit47
+2.20
+
+
+
+always
+-Xmx1024m -XX:MaxPermSize=512m
+
+
+
+
+
+
+
+
+
+
+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.datastax.cassandra
+cassandra-driver-mapping
+${cassandra-driver.version}
+
+
+
+com.datastax.cassandra
+cassandra-driver-extras
+${cassandra-driver.version}
+
+
+
+
+org.apache.cassandra
+cassandra-all
+test
+
+
+org.apache.cassandra.deps
+avro
+
+
+org.slf4j
+slf4j-log4j12
+
+
+io.netty
+netty-handler
+
+
+org.slf4j
+log4j-over-slf4j
+
+
+
+
+
+io.netty
--- End diff --

Do we have this Netty dependency defined root parent pom? This Netty 
versions should be 

[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124046726
  
--- Diff: 
gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraNativePersistent.java
 ---
@@ -0,0 +1,91 @@
+package org.apache.gora.cassandra.serializers;
--- End diff --

Please add Apache license header?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124050129
  
--- Diff: 
gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/store/CassandraStore.java
 ---
@@ -0,0 +1,788 @@
+/*
+ *  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 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.persistency.BeanFactory;
+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.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;
+
+/**
+ * Implementation of Cassandra Store.
+ *
+ * @param  key class
+ * @param  persistent class
+ */
+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 isUseNativeSerialization;
+
+  private Mapper mapper;
+
+  private Session session;
+
+  public CassandraStore() {
+super();
+  }
+
+  /**
+   * In initializing the cassandra datastore, read the mapping file, 
creates the basic connection to cassandra cluster,
+   * according to the gora properties
+   *
+   * @param keyClasskey class
+   * @param persistentClass persistent class
+   * @param properties  properties
+   */
+  public void initialize(Class keyClass, Class persistentClass, 
Properties properties) {
+LOG.debug("Initializing Cassandra store");
+try {
+  

[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124047919
  
--- Diff: 
gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStoreWithNativeSerialization.java
 ---
@@ -0,0 +1,117 @@
+package org.apache.gora.cassandra.store;
--- End diff --

License header please? 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063310#comment-16063310
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124047919
  
--- Diff: 
gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/store/TestCassandraStoreWithNativeSerialization.java
 ---
@@ -0,0 +1,117 @@
+package org.apache.gora.cassandra.store;
--- End diff --

License header please? 


> Migrate CassandraThrift to CQL 
> ---
>
> Key: GORA-497
> URL: https://issues.apache.org/jira/browse/GORA-497
> Project: Apache Gora
>  Issue Type: Improvement
>  Components: gora-cassandra
>Reporter: Madhawa Gunasekara
>Assignee: Madhawa Gunasekara
>  Labels: gsoc2017
> Fix For: 0.8
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063313#comment-16063313
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124046147
  
--- Diff: 
gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java
 ---
@@ -0,0 +1,65 @@
+/*
+ *  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;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This Class represents the Cassandra Key.
+ */
+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) {
--- End diff --

Please document these public methods for all cases.


> Migrate CassandraThrift to CQL 
> ---
>
> Key: GORA-497
> URL: https://issues.apache.org/jira/browse/GORA-497
> Project: Apache Gora
>  Issue Type: Improvement
>  Components: gora-cassandra
>Reporter: Madhawa Gunasekara
>Assignee: Madhawa Gunasekara
>  Labels: gsoc2017
> Fix For: 0.8
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124048997
  
--- Diff: gora-cassandra-cql/pom.xml ---
@@ -0,0 +1,232 @@
+
+
+
+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/
+
+
+
+18.0
+*
+
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.apache.maven.plugins
+maven-surefire-plugin
+
+
+org.apache.maven.surefire
+surefire-junit47
+2.20
+
+
+
+always
+-Xmx1024m -XX:MaxPermSize=512m
+
+
+
+
+
+
+
+
+
+
+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.datastax.cassandra
+cassandra-driver-mapping
+${cassandra-driver.version}
+
+
+
+com.datastax.cassandra
+cassandra-driver-extras
+${cassandra-driver.version}
+
+
+
+
+org.apache.cassandra
+cassandra-all
+test
+
+
+org.apache.cassandra.deps
+avro
+
+
+org.slf4j
+slf4j-log4j12
+
+
+io.netty
+netty-handler
+
+
+org.slf4j
+log4j-over-slf4j
+
+
+
+
+
+io.netty
--- End diff --

Do we have this Netty dependency defined root parent pom? This Netty 
versions should be defined there.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not 

[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063307#comment-16063307
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124048160
  
--- Diff: 
gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/test/nativeSerialization/DateAsStringCodec.java
 ---
@@ -0,0 +1,33 @@
+package org.apache.gora.cassandra.test.nativeSerialization;
--- End diff --

Please add License header here?


> Migrate CassandraThrift to CQL 
> ---
>
> Key: GORA-497
> URL: https://issues.apache.org/jira/browse/GORA-497
> Project: Apache Gora
>  Issue Type: Improvement
>  Components: gora-cassandra
>Reporter: Madhawa Gunasekara
>Assignee: Madhawa Gunasekara
>  Labels: gsoc2017
> Fix For: 0.8
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (GORA-497) Migrate CassandraThrift to CQL

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-497?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063311#comment-16063311
 ] 

ASF GitHub Bot commented on GORA-497:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124046726
  
--- Diff: 
gora-cassandra-cql/src/main/java/org/apache/gora/cassandra/serializers/CassandraNativePersistent.java
 ---
@@ -0,0 +1,91 @@
+package org.apache.gora.cassandra.serializers;
--- End diff --

Please add Apache license header?


> Migrate CassandraThrift to CQL 
> ---
>
> Key: GORA-497
> URL: https://issues.apache.org/jira/browse/GORA-497
> Project: Apache Gora
>  Issue Type: Improvement
>  Components: gora-cassandra
>Reporter: Madhawa Gunasekara
>Assignee: Madhawa Gunasekara
>  Labels: gsoc2017
> Fix For: 0.8
>
>




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124049334
  
--- Diff: gora-cassandra-cql/pom.xml ---
@@ -0,0 +1,232 @@
+
+
+
+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/
+
+
+
+18.0
+*
+
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.apache.maven.plugins
+maven-surefire-plugin
+
+
+org.apache.maven.surefire
+surefire-junit47
+2.20
+
+
+
+always
+-Xmx1024m -XX:MaxPermSize=512m
+
+
+
+
+
+
+
+
+
+
+org.xerial.snappy
--- End diff --

Is this a temporary addition?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124047745
  
--- Diff: gora-cassandra-cql/src/test/java/.gitignore ---
@@ -0,0 +1,15 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
--- End diff --

Is this file added intentionally?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124048279
  
--- Diff: 
gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/test/nativeSerialization/User.java
 ---
@@ -0,0 +1,66 @@
+package org.apache.gora.cassandra.test.nativeSerialization;
--- End diff --

Please add License header here?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[GitHub] gora pull request #110: [WIP] GORA-497 : Rewrite Cassandra data store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/110#discussion_r124048160
  
--- Diff: 
gora-cassandra-cql/src/test/java/org/apache/gora/cassandra/test/nativeSerialization/DateAsStringCodec.java
 ---
@@ -0,0 +1,33 @@
+package org.apache.gora.cassandra.test.nativeSerialization;
--- End diff --

Please add License header here?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063276#comment-16063276
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user djkevincr commented on the issue:

https://github.com/apache/gora/pull/111
  
@nishadi  very good work, heading in right direction :)


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora issue #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread djkevincr
Github user djkevincr commented on the issue:

https://github.com/apache/gora/pull/111
  
@nishadi  very good work, heading in right direction :)


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063273#comment-16063273
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124043213
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
--- End diff --

Check whether you can make this test-containers code generic, this can be 
reused for other datastore which doesn't have java based embedded server.


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124043213
  
--- Diff: 
gora-aerospike/src/test/java/org/apache/gora/aerospike/GoraAerospikeTestDriver.java
 ---
@@ -0,0 +1,78 @@
+/*
+ * 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.aerospike;
+
+import org.apache.gora.GoraTestDriver;
+import org.apache.gora.aerospike.store.AerospikeStore;
+import org.apache.gora.persistency.Persistent;
+import org.apache.gora.store.DataStore;
+import org.apache.gora.store.DataStoreFactory;
+import org.apache.gora.util.GoraException;
+import org.testcontainers.containers.GenericContainer;
+
+import java.util.Properties;
+
+/**
+ * Helper class for third part tests using gora-aerospike backend.
+ * @see GoraTestDriver
+ */
+public class GoraAerospikeTestDriver extends GoraTestDriver {
+
+  private GenericContainer aerospikeContainer;
--- End diff --

Check whether you can make this test-containers code generic, this can be 
reused for other datastore which doesn't have java based embedded server.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---


[jira] [Commented] (GORA-502) Implement Aerospike Datastore

2017-06-26 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/GORA-502?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16063255#comment-16063255
 ] 

ASF GitHub Bot commented on GORA-502:
-

Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124040382
  
--- Diff: gora-aerospike/pom.xml ---
@@ -0,0 +1,153 @@
+
+
+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-aerospike
+  bundle
+
+  Apache Gora :: Aerospike
+  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.aerospike*;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.apache.gora
+  gora-core
+
+
+
+  org.apache.gora
+  gora-core
+  test-jar
+  test
+
+
+
+
+  com.aerospike
+  aerospike-client
+  ${aerospike.version}
+
+
+
+  org.apache.avro
+  avro
+
+
+
+
+  org.apache.hadoop
+  hadoop-client
+
+
+
+  org.jdom
+  jdom
+  compile
+
+
+
+
+  org.slf4j
+  slf4j-log4j12
+
+
+
+
+  junit
+  junit
+
+
+
--- End diff --

Move this dependency to parent pom and define version separately. 


> Implement Aerospike Datastore
> -
>
> Key: GORA-502
> URL: https://issues.apache.org/jira/browse/GORA-502
> Project: Apache Gora
>  Issue Type: New Feature
>  Components: gora-aerospike, storage
>Affects Versions: 0.6.1
>Reporter: Cihad Guzel
>Assignee: Nishadi Kirielle
>  Labels: gsoc2017
> Fix For: 0.8
>
>
> Aerospike is a NoSQL database solution for real-time operational 
> applications, delivering predictable performance at scale, superior uptime, 
> and high availability at the lowest TCO compared to first-generation NoSQL 
> and relational databases. It could be nice to support Aerospike as a 
> datastore at Gora. Aerospike uses Apache v2 license for Java client and uses 
> aGPL license for Aerospike Server Community Edition. 
> (http://www.aerospike.com/products/)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[GitHub] gora pull request #111: [WIP] GORA-502 Implement Aerospike Data Store

2017-06-26 Thread djkevincr
Github user djkevincr commented on a diff in the pull request:

https://github.com/apache/gora/pull/111#discussion_r124040382
  
--- Diff: gora-aerospike/pom.xml ---
@@ -0,0 +1,153 @@
+
+
+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-aerospike
+  bundle
+
+  Apache Gora :: Aerospike
+  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.aerospike*;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.apache.gora
+  gora-core
+
+
+
+  org.apache.gora
+  gora-core
+  test-jar
+  test
+
+
+
+
+  com.aerospike
+  aerospike-client
+  ${aerospike.version}
+
+
+
+  org.apache.avro
+  avro
+
+
+
+
+  org.apache.hadoop
+  hadoop-client
+
+
+
+  org.jdom
+  jdom
+  compile
+
+
+
+
+  org.slf4j
+  slf4j-log4j12
+
+
+
+
+  junit
+  junit
+
+
+
--- End diff --

Move this dependency to parent pom and define version separately. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---