Removing regex-input static-input exclusivity check
authorrmatharu@linkedin.com <rmatharu@linkedin.com>
Tue, 16 Oct 2018 01:36:00 +0000 (18:36 -0700)
committerPrateek Maheshwari <pmaheshwari@apache.org>
Tue, 16 Oct 2018 01:36:00 +0000 (18:36 -0700)
This PR converts a hard-check that fails in case of regex-defined input if there is an overlap
between regex-input and task-input, to a warning.

Why?
Because with Samza 1.0, rewrite is called multiple times to expand system descriptors, input descriptors, etc. This hard-check fails in this case causing deployment to stall. Therefore we convert it to a warning.

NOTE: This now allows users to define stream config for their inputs which may overlap with regex-input. This was earlier explicitly disallowed by the hard-check.

Author: rmatharu@linkedin.com <rmatharu@linkedin.com>

Reviewers: Prateek Maheshwari <pmaheshwari@apache.org>

Closes #731 from rmatharu/regexcheck

samza-kafka/src/main/scala/org/apache/samza/config/RegExTopicGenerator.scala

index ce4544b..a81ff13 100644 (file)
@@ -71,7 +71,8 @@ class RegExTopicGenerator extends ConfigRewriter with Logging {
       info("Generating new configs for matching stream %s." format m)
 
       if (existingInputStreams.contains(m)) {
-        throw new SamzaException("Regex '%s' matches existing, statically defined input %s." format (regex, m))
+        warn("Regex '%s' matches existing, statically defined input %s. " +
+          "Please ensure regex-defined and statically-defined inputs are exclusive." format (regex, m))
       }
 
       newInputStreams.add(m)