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