You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by sr...@apache.org on 2015/10/30 23:48:14 UTC

[1/3] storm git commit: STORM-1147: Added validation checks and tests.

Repository: storm
Updated Branches:
  refs/heads/master ffb5d0338 -> 3a724ee3c


STORM-1147: Added validation checks and tests.


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

Branch: refs/heads/master
Commit: c367fdbd88bf7c8a5b20dc37299bc357b33fd437
Parents: b6615d5
Author: Parth Brahmbhatt <br...@gmail.com>
Authored: Thu Oct 29 14:29:17 2015 -0700
Committer: Parth Brahmbhatt <br...@gmail.com>
Committed: Thu Oct 29 14:29:17 2015 -0700

----------------------------------------------------------------------
 .../storm/jdbc/bolt/AbstractJdbcBolt.java       |  2 +
 .../apache/storm/jdbc/bolt/JdbcInsertBolt.java  |  9 +++
 .../apache/storm/jdbc/bolt/JdbcLookupBolt.java  |  5 ++
 .../jdbc/mapper/SimpleJdbcLookupMapper.java     |  3 +
 .../storm/jdbc/mapper/SimpleJdbcMapper.java     |  5 ++
 .../storm/jdbc/bolt/JdbcInsertBoltTest.java     | 71 ++++++++++++++++++++
 .../storm/jdbc/bolt/JdbcLookupBoltTest.java     | 59 ++++++++++++++++
 7 files changed, 154 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/AbstractJdbcBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/AbstractJdbcBolt.java b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/AbstractJdbcBolt.java
index 15a2345..0c0cca6 100644
--- a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/AbstractJdbcBolt.java
+++ b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/AbstractJdbcBolt.java
@@ -21,6 +21,7 @@ import backtype.storm.Config;
 import backtype.storm.task.OutputCollector;
 import backtype.storm.task.TopologyContext;
 import backtype.storm.topology.base.BaseRichBolt;
+import org.apache.commons.lang.Validate;
 import org.apache.storm.jdbc.common.ConnectionProvider;
 import org.apache.storm.jdbc.common.JdbcClient;
 import org.slf4j.Logger;
@@ -52,6 +53,7 @@ public abstract class AbstractJdbcBolt extends BaseRichBolt {
     }
 
     public AbstractJdbcBolt(ConnectionProvider connectionProvider) {
+        Validate.notNull(connectionProvider);
         this.connectionProvider = connectionProvider;
     }
 

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcInsertBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcInsertBolt.java b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcInsertBolt.java
index 2f29000..c3328f1 100644
--- a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcInsertBolt.java
+++ b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcInsertBolt.java
@@ -20,6 +20,7 @@ import backtype.storm.task.OutputCollector;
 import backtype.storm.task.TopologyContext;
 import backtype.storm.topology.OutputFieldsDeclarer;
 import backtype.storm.tuple.Tuple;
+import org.apache.commons.lang.Validate;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.storm.jdbc.common.Column;
 import org.apache.storm.jdbc.common.ConnectionProvider;
@@ -45,15 +46,23 @@ public class JdbcInsertBolt extends AbstractJdbcBolt {
 
     public JdbcInsertBolt(ConnectionProvider connectionProvider,  JdbcMapper jdbcMapper) {
         super(connectionProvider);
+
+        Validate.notNull(jdbcMapper);
         this.jdbcMapper = jdbcMapper;
     }
 
     public JdbcInsertBolt withTableName(String tableName) {
+        if (insertQuery != null) {
+            throw new IllegalArgumentException("You can not specify both insertQuery and tableName.");
+        }
         this.tableName = tableName;
         return this;
     }
 
     public JdbcInsertBolt withInsertQuery(String insertQuery) {
+        if (this.tableName != null) {
+            throw new IllegalArgumentException("You can not specify both insertQuery and tableName.");
+        }
         this.insertQuery = insertQuery;
         return this;
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcLookupBolt.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcLookupBolt.java b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcLookupBolt.java
index 25122e2..b1dadb7 100644
--- a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcLookupBolt.java
+++ b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/bolt/JdbcLookupBolt.java
@@ -20,6 +20,7 @@ package org.apache.storm.jdbc.bolt;
 import backtype.storm.topology.OutputFieldsDeclarer;
 import backtype.storm.tuple.Tuple;
 import backtype.storm.tuple.Values;
+import org.apache.commons.lang.Validate;
 import org.apache.storm.jdbc.common.Column;
 import org.apache.storm.jdbc.common.ConnectionProvider;
 import org.apache.storm.jdbc.mapper.JdbcLookupMapper;
@@ -40,6 +41,10 @@ public class JdbcLookupBolt extends AbstractJdbcBolt {
 
     public JdbcLookupBolt(ConnectionProvider connectionProvider, String selectQuery, JdbcLookupMapper jdbcLookupMapper) {
         super(connectionProvider);
+
+        Validate.notNull(selectQuery);
+        Validate.notNull(jdbcLookupMapper);
+
         this.selectQuery = selectQuery;
         this.jdbcLookupMapper = jdbcLookupMapper;
     }

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcLookupMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcLookupMapper.java b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcLookupMapper.java
index 5a22552..b267bd1 100644
--- a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcLookupMapper.java
+++ b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcLookupMapper.java
@@ -22,6 +22,7 @@ import backtype.storm.topology.OutputFieldsDeclarer;
 import backtype.storm.tuple.Fields;
 import backtype.storm.tuple.ITuple;
 import backtype.storm.tuple.Values;
+import org.apache.commons.lang.Validate;
 import org.apache.storm.jdbc.common.Column;
 
 import java.util.ArrayList;
@@ -33,6 +34,8 @@ public class SimpleJdbcLookupMapper extends SimpleJdbcMapper implements JdbcLook
 
     public SimpleJdbcLookupMapper(Fields outputFields, List<Column> queryColumns) {
         super(queryColumns);
+
+        Validate.notEmpty(outputFields.toList());
         this.outputFields = outputFields;
     }
 

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcMapper.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcMapper.java b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcMapper.java
index c4005e3..9befb1e 100644
--- a/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcMapper.java
+++ b/external/storm-jdbc/src/main/java/org/apache/storm/jdbc/mapper/SimpleJdbcMapper.java
@@ -18,6 +18,7 @@
 package org.apache.storm.jdbc.mapper;
 
 import backtype.storm.tuple.ITuple;
+import org.apache.commons.lang.Validate;
 import org.apache.storm.jdbc.common.Column;
 import org.apache.storm.jdbc.common.ConnectionProvider;
 import org.apache.storm.jdbc.common.JdbcClient;
@@ -35,6 +36,9 @@ public class SimpleJdbcMapper implements JdbcMapper {
     private List<Column> schemaColumns;
 
     public SimpleJdbcMapper(String tableName, ConnectionProvider connectionProvider) {
+        Validate.notEmpty(tableName);
+        Validate.notNull(connectionProvider);
+
         int queryTimeoutSecs = 30;
         connectionProvider.prepare();
         JdbcClient client = new JdbcClient(connectionProvider, queryTimeoutSecs);
@@ -42,6 +46,7 @@ public class SimpleJdbcMapper implements JdbcMapper {
     }
 
     public SimpleJdbcMapper(List<Column> schemaColumns) {
+        Validate.notEmpty(schemaColumns);
         this.schemaColumns = schemaColumns;
     }
 

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcInsertBoltTest.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcInsertBoltTest.java b/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcInsertBoltTest.java
new file mode 100644
index 0000000..1b393e9
--- /dev/null
+++ b/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcInsertBoltTest.java
@@ -0,0 +1,71 @@
+/**
+ * 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.storm.jdbc.bolt;
+
+import com.google.common.collect.Lists;
+import org.apache.storm.jdbc.common.Column;
+import org.apache.storm.jdbc.common.ConnectionProvider;
+import org.apache.storm.jdbc.common.HikariCPConnectionProvider;
+import org.apache.storm.jdbc.mapper.JdbcMapper;
+import org.apache.storm.jdbc.mapper.SimpleJdbcMapper;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.HashMap;
+
+/**
+ * Created by pbrahmbhatt on 10/29/15.
+ */
+public class JdbcInsertBoltTest {
+
+    @Test
+    public void testValidation() {
+        ConnectionProvider provider = new HikariCPConnectionProvider(new HashMap<String, Object>());
+        JdbcMapper mapper = new SimpleJdbcMapper(Lists.newArrayList(new Column("test", 0)));
+        expectIllegaArgs(null, mapper);
+        expectIllegaArgs(provider, null);
+
+        try {
+            JdbcInsertBolt bolt = new JdbcInsertBolt(provider, mapper);
+            bolt.withInsertQuery("test");
+            bolt.withTableName("test");
+            Assert.fail("Should have thrown IllegalArgumentException.");
+        } catch(IllegalArgumentException ne) {
+            //expected
+        }
+
+        try {
+            JdbcInsertBolt bolt = new JdbcInsertBolt(provider, mapper);
+            bolt.withTableName("test");
+            bolt.withInsertQuery("test");
+            Assert.fail("Should have thrown IllegalArgumentException.");
+        } catch(IllegalArgumentException ne) {
+            //expected
+        }
+    }
+
+    private void expectIllegaArgs(ConnectionProvider provider, JdbcMapper mapper) {
+        try {
+            JdbcInsertBolt bolt = new JdbcInsertBolt(provider, mapper);
+            Assert.fail("Should have thrown IllegalArgumentException.");
+        } catch(IllegalArgumentException ne) {
+            //expected
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/storm/blob/c367fdbd/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcLookupBoltTest.java
----------------------------------------------------------------------
diff --git a/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcLookupBoltTest.java b/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcLookupBoltTest.java
new file mode 100644
index 0000000..1fda3b1
--- /dev/null
+++ b/external/storm-jdbc/src/test/java/org/apache/storm/jdbc/bolt/JdbcLookupBoltTest.java
@@ -0,0 +1,59 @@
+/**
+ * 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.storm.jdbc.bolt;
+
+import backtype.storm.tuple.Fields;
+import com.google.common.collect.Lists;
+import org.apache.storm.jdbc.common.Column;
+import org.apache.storm.jdbc.common.ConnectionProvider;
+import org.apache.storm.jdbc.common.HikariCPConnectionProvider;
+import org.apache.storm.jdbc.mapper.JdbcLookupMapper;
+import org.apache.storm.jdbc.mapper.JdbcMapper;
+import org.apache.storm.jdbc.mapper.SimpleJdbcLookupMapper;
+import org.apache.storm.jdbc.mapper.SimpleJdbcMapper;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+
+/**
+ * Created by pbrahmbhatt on 10/29/15.
+ */
+public class JdbcLookupBoltTest {
+
+    @Test
+    public void testValidation() {
+        ConnectionProvider provider = new HikariCPConnectionProvider(new HashMap<String, Object>());
+        JdbcLookupMapper mapper = new SimpleJdbcLookupMapper(new Fields("test"), Lists.newArrayList(new Column("test", 0)));
+        String selectQuery = "select * from dual";
+        expectIllegaArgs(null, selectQuery, mapper);
+        expectIllegaArgs(provider, null, mapper);
+        expectIllegaArgs(provider, selectQuery, null);
+    }
+
+    private void expectIllegaArgs(ConnectionProvider provider, String selectQuery, JdbcLookupMapper mapper) {
+        try {
+            JdbcLookupBolt bolt = new JdbcLookupBolt(provider, selectQuery, mapper);
+            Assert.fail("Should have thrown IllegalArgumentException.");
+        } catch(IllegalArgumentException ne) {
+            //expected
+        }
+    }
+
+}


[2/3] storm git commit: Merge branch 'STORM-1147' of https://github.com/Parth-Brahmbhatt/incubator-storm into STORM-1147-V1

Posted by sr...@apache.org.
Merge branch 'STORM-1147' of https://github.com/Parth-Brahmbhatt/incubator-storm into STORM-1147-V1


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

Branch: refs/heads/master
Commit: 8b6e3f705107e9991325e8db4693732c13a1015f
Parents: ffb5d03 c367fdb
Author: Sriharsha Chintalapani <ha...@hortonworks.com>
Authored: Fri Oct 30 15:21:38 2015 -0700
Committer: Sriharsha Chintalapani <ha...@hortonworks.com>
Committed: Fri Oct 30 15:21:38 2015 -0700

----------------------------------------------------------------------
 .../storm/jdbc/bolt/AbstractJdbcBolt.java       |  2 +
 .../apache/storm/jdbc/bolt/JdbcInsertBolt.java  |  9 +++
 .../apache/storm/jdbc/bolt/JdbcLookupBolt.java  |  5 ++
 .../jdbc/mapper/SimpleJdbcLookupMapper.java     |  3 +
 .../storm/jdbc/mapper/SimpleJdbcMapper.java     |  5 ++
 .../storm/jdbc/bolt/JdbcInsertBoltTest.java     | 71 ++++++++++++++++++++
 .../storm/jdbc/bolt/JdbcLookupBoltTest.java     | 59 ++++++++++++++++
 7 files changed, 154 insertions(+)
----------------------------------------------------------------------



[3/3] storm git commit: Added STORM-1147 to CHANGELOG.

Posted by sr...@apache.org.
Added STORM-1147 to CHANGELOG.


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

Branch: refs/heads/master
Commit: 3a724ee3ce0a409f5f4e97b3ab827aae446a5d34
Parents: 8b6e3f7
Author: Sriharsha Chintalapani <ha...@hortonworks.com>
Authored: Fri Oct 30 15:22:21 2015 -0700
Committer: Sriharsha Chintalapani <ha...@hortonworks.com>
Committed: Fri Oct 30 15:22:21 2015 -0700

----------------------------------------------------------------------
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/storm/blob/3a724ee3/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4d5c40f..d641080 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
 ## 0.11.0
+ * STORM-1147: Storm JDBCBolt should add validation to ensure either insertQuery or table name is specified and not both.
  * STORM-1151: Batching in DisruptorQueue
  * STORM-350: Update disruptor to latest version (3.3.2)
  * STORM-697: Support for Emitting Kafka Message Offset and Partition