You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by es...@apache.org on 2017/11/02 23:37:00 UTC

[geode] branch feature/GEODE-3781 updated: use Function.

This is an automated email from the ASF dual-hosted git repository.

eshu11 pushed a commit to branch feature/GEODE-3781
in repository https://gitbox.apache.org/repos/asf/geode.git


The following commit(s) were added to refs/heads/feature/GEODE-3781 by this push:
     new 5d4e14c  use Function.
5d4e14c is described below

commit 5d4e14c4ad326c76add3e1bdd6f3bd9a34d44f1d
Author: eshu <es...@pivotal.io>
AuthorDate: Thu Nov 2 16:36:19 2017 -0700

    use Function.
---
 .../jdbc/internal/JDBCConfiguration.java           | 30 +++++++---------------
 .../connectors/jdbc/internal/JDBCManager.java      | 21 ++++++++-------
 .../jdbc/JDBCSynchronousWriterIntegrationTest.java | 29 +++++++++++++++++++++
 3 files changed, 48 insertions(+), 32 deletions(-)

diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCConfiguration.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCConfiguration.java
index 4b375da..058a6c9 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCConfiguration.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCConfiguration.java
@@ -23,7 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
-import java.util.function.IntPredicate;
+import java.util.function.Function;
 
 public class JDBCConfiguration {
   private static final String URL = "url";
@@ -77,34 +77,22 @@ public class JDBCConfiguration {
   }
 
   private String computeDefaultValueClassName(String valueClassNameProp) {
-    return parseDefault(VALUE_CLASS_NAME, valueClassNameProp, v -> {
-      return v;
-    }, null);
+    return parseDefault(VALUE_CLASS_NAME, valueClassNameProp, v -> v, null);
   }
 
   private Map<String, String> computeRegionToClassMap(String valueClassNameProp) {
-    return parseMap(valueClassNameProp, v -> {
-      return v;
-    });
+    return parseMap(valueClassNameProp, v -> v);
   }
 
   private boolean computeDefaultKeyPartOfValue(String keyPartOfValueProp) {
-    return parseDefault(IS_KEY_PART_OF_VALUE, keyPartOfValueProp, v -> {
-      return Boolean.parseBoolean(v);
-    }, false);
+    return parseDefault(IS_KEY_PART_OF_VALUE, keyPartOfValueProp, Boolean::parseBoolean, false);
   }
 
   private Map<String, Boolean> computeKeyPartOfValueMap(String keyPartOfValueProp) {
-    return parseMap(keyPartOfValueProp, v -> {
-      return Boolean.parseBoolean(v);
-    });
+    return parseMap(keyPartOfValueProp, Boolean::parseBoolean);
   }
 
-  public interface ValueParser<V> {
-    public V parseValue(String valueString);
-  }
-
-  private <V> Map<String, V> parseMap(String propertyValue, ValueParser<V> parser) {
+  private <V> Map<String, V> parseMap(String propertyValue, Function<String, V> parser) {
     if (propertyValue == null) {
       return null;
     }
@@ -117,12 +105,12 @@ public class JDBCConfiguration {
       }
       String regionName = item.substring(0, idx);
       String valueString = item.substring(idx + getJdbcRegionSeparator().length());;
-      result.put(regionName, parser.parseValue(valueString));
+      result.put(regionName, parser.apply(valueString));
     }
     return result;
   }
 
-  private <V> V parseDefault(String propertyName, String propertyValue, ValueParser<V> parser,
+  private <V> V parseDefault(String propertyName, String propertyValue, Function<String, V> parser,
       V defaultValue) {
     if (propertyValue == null) {
       return defaultValue;
@@ -139,7 +127,7 @@ public class JDBCConfiguration {
             propertyName + " can have at most one item that does not have a "
                 + getJdbcRegionSeparator() + " in it.");
       }
-      result = parser.parseValue(item);
+      result = parser.apply(item);
     }
     if (result == null) {
       result = defaultValue;
diff --git a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCManager.java b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCManager.java
index 1d1788b..9160207 100644
--- a/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCManager.java
+++ b/geode-connectors/src/main/java/org/apache/geode/connectors/jdbc/internal/JDBCManager.java
@@ -171,14 +171,13 @@ public class JDBCManager {
     }
   }
 
-  private String getQueryString(String tableName, List<ColumnValue> columnList,
-      Operation operation) {
+  private String getSqlString(String tableName, List<ColumnValue> columnList, Operation operation) {
     if (operation.isCreate()) {
-      return getInsertQueryString(tableName, columnList);
+      return getInsertSqlString(tableName, columnList);
     } else if (operation.isUpdate()) {
-      return getUpdateQueryString(tableName, columnList);
+      return getUpdateSqlString(tableName, columnList);
     } else if (operation.isDestroy()) {
-      return getDestroyQueryString(tableName, columnList);
+      return getDestroySqlString(tableName, columnList);
     } else if (operation.isGet()) {
       return getSelectQueryString(tableName, columnList);
     } else {
@@ -195,7 +194,7 @@ public class JDBCManager {
     return query.toString();
   }
 
-  private String getDestroyQueryString(String tableName, List<ColumnValue> columnList) {
+  private String getDestroySqlString(String tableName, List<ColumnValue> columnList) {
     assert columnList.size() == 1;
     ColumnValue keyCV = columnList.get(0);
     assert keyCV.isKey();
@@ -204,7 +203,7 @@ public class JDBCManager {
     return query.toString();
   }
 
-  private String getUpdateQueryString(String tableName, List<ColumnValue> columnList) {
+  private String getUpdateSqlString(String tableName, List<ColumnValue> columnList) {
     StringBuilder query = new StringBuilder("UPDATE " + tableName + " SET ");
     int idx = 0;
     for (ColumnValue cv : columnList) {
@@ -222,7 +221,7 @@ public class JDBCManager {
     return query.toString();
   }
 
-  private String getInsertQueryString(String tableName, List<ColumnValue> columnList) {
+  private String getInsertSqlString(String tableName, List<ColumnValue> columnList) {
     StringBuilder columnNames = new StringBuilder("INSERT INTO " + tableName + '(');
     StringBuilder columnValues = new StringBuilder(" VALUES (");
     int columnCount = columnList.size();
@@ -311,11 +310,11 @@ public class JDBCManager {
         + " columns: " + columnList);
     StatementKey key = new StatementKey(pdxTypeId, operation, tableName);
     return getPreparedStatementCache().computeIfAbsent(key, k -> {
-      String query = getQueryString(tableName, columnList, operation);
-      System.out.println("query=" + query); // TODO remove debugging
+      String sqlStr = getSqlString(tableName, columnList, operation);
+      System.out.println("sql=" + sqlStr); // TODO remove debugging
       Connection con = getConnection(null, null);
       try {
-        return con.prepareStatement(query);
+        return con.prepareStatement(sqlStr);
       } catch (SQLException e) {
         handleSQLException(e);
         return null; // this line is never reached
diff --git a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JDBCSynchronousWriterIntegrationTest.java b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JDBCSynchronousWriterIntegrationTest.java
index 1831afa..fbdce89 100644
--- a/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JDBCSynchronousWriterIntegrationTest.java
+++ b/geode-connectors/src/test/java/org/apache/geode/connectors/jdbc/JDBCSynchronousWriterIntegrationTest.java
@@ -20,10 +20,14 @@ import static org.apache.geode.distributed.ConfigurationProperties.MCAST_PORT;
 import static org.assertj.core.api.Assertions.*;
 
 import java.sql.*;
+import java.util.HashMap;
 import java.util.Properties;
 
 import org.junit.*;
 import org.junit.experimental.categories.Category;
+
+import com.sun.javafx.collections.MappingChange.Map;
+
 import org.apache.geode.cache.Cache;
 import org.apache.geode.cache.CacheFactory;
 import org.apache.geode.cache.Region;
@@ -127,6 +131,31 @@ public class JDBCSynchronousWriterIntegrationTest {
   }
 
   @Test
+  public void canPutAllInsertIntoTable() throws Exception {
+    Region employees =
+        createRegionWithJDBCSynchronousWriter(regionTableName, getRequiredProperties());
+    PdxInstance pdx1 = cache.createPdxInstanceFactory("Employee").writeString("name", "Emp1")
+        .writeInt("age", 55).create();
+    PdxInstance pdx2 = cache.createPdxInstanceFactory("Employee").writeString("name", "Emp2")
+        .writeInt("age", 21).create();
+    HashMap putAllMap = new HashMap();
+    putAllMap.put("1", pdx1);
+    putAllMap.put("2", pdx2);
+    employees.putAll(putAllMap);
+
+    ResultSet rs = stmt.executeQuery("select * from " + regionTableName + " order by id asc");
+    assertThat(rs.next()).isTrue();
+    assertThat(rs.getString("id")).isEqualTo("1");
+    assertThat(rs.getString("name")).isEqualTo("Emp1");
+    assertThat(rs.getObject("age")).isEqualTo(55);
+    assertThat(rs.next()).isTrue();
+    assertThat(rs.getString("id")).isEqualTo("2");
+    assertThat(rs.getString("name")).isEqualTo("Emp2");
+    assertThat(rs.getObject("age")).isEqualTo(21);
+    assertThat(rs.next()).isFalse();
+  }
+
+  @Test
   public void verifyThatPdxFieldNamedSameAsPrimaryKeyIsIgnored() throws Exception {
     Region employees =
         createRegionWithJDBCSynchronousWriter(regionTableName, getRequiredProperties());

-- 
To stop receiving notification emails like this one, please contact
['"commits@geode.apache.org" <co...@geode.apache.org>'].