[GitHub] nifi issue #3165: NIFI-5318 Implement NiFi test harness

2018-12-12 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3165
  
@peter-gergely-horvath Tried your latest change and still get these results:

```
[INFO] ---
[INFO] Running org.apache.nifi.testharness.samples.NiFiFlowTest
[INFO] Running org.apache.nifi.testharness.samples.NiFiMockFlowTest
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 

[INFO] BUILD FAILURE
[INFO] 

[INFO] Total time: 01:46 min
[INFO] Finished at: 2018-12-12T11:20:20-05:00
[INFO] Final Memory: 36M/602M
[INFO] 

[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-surefire-plugin:2.20.1:test (default-test) on 
project nifi-testharness: There are test failures.
[ERROR] 
[ERROR] Please refer to 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire-reports 
for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, 
[date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] ExecutionException The forked VM terminated without properly saying 
goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/nifi_testharness_nifi_home
 && 
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/bin/java 
-Xmx1G -Djava.net.preferIPv4Stack=true -jar 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire/surefirebooter5354893279908884469.jar
 /Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire 
2018-12-12T11-18-44_222-jvmRun1 surefire377069077642032tmp 
surefire_03864170411723641611tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] Crashed tests:
[ERROR] org.apache.nifi.testharness.samples.NiFiFlowTest
[ERROR] ExecutionException The forked VM terminated without properly saying 
goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/nifi_testharness_nifi_home
 && 
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/bin/java 
-Xmx1G -Djava.net.preferIPv4Stack=true -jar 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire/surefirebooter8415059538712188018.jar
 /Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire 
2018-12-12T11-18-44_222-jvmRun1 surefire7043843761330522886tmp 
surefire_12826311853280960897tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] Crashed tests:
[ERROR] org.apache.nifi.testharness.samples.NiFiMockFlowTest
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: 
ExecutionException The forked VM terminated without properly saying goodbye. VM 
crash or System.exit called?
[ERROR] Command was /bin/sh -c cd 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/nifi_testharness_nifi_home
 && 
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/bin/java 
-Xmx1G -Djava.net.preferIPv4Stack=true -jar 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire/surefirebooter5354893279908884469.jar
 /Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire 
2018-12-12T11-18-44_222-jvmRun1 surefire377069077642032tmp 
surefire_03864170411723641611tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] Crashed tests:
[ERROR] org.apache.nifi.testharness.samples.NiFiFlowTest
[ERROR] ExecutionException The forked VM terminated without properly saying 
goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/nifi_testharness_nifi_home
 && 
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/bin/java 
-Xmx1G -Djava.net.preferIPv4Stack=true -jar 
/Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire/surefirebooter8415059538712188018.jar
 /Users/michaelthomsen/workspace/nifi/nifi-testharness/target/surefire 
2018-12-12T11-18-44_222-jvmRun1 surefire7043843761330522886tmp 
surefire_12826311853280960897tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 1
[ERROR] Crashed tests:
[ERROR] org.apache.nifi.testharness.samples.NiFiMockFlowTest
[ERROR] at 
org.apache.maven.plugin.surefire.booterclient.ForkStarter.awaitResultsDone(ForkStarter.java:496)
[ERROR] at 
org.apache.maven.plugin.surefire.booterclient.For

[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-12-12 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
Merged, thanks @zenfenan 


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-12 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r241047229
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/LICENSE
 ---
@@ -0,0 +1,369 @@
+
+ Apache License
+   Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+  "License" shall mean the terms and conditions for use, reproduction,
+  and distribution as defined by Sections 1 through 9 of this document.
+
+  "Licensor" shall mean the copyright owner or entity authorized by
+  the copyright owner that is granting the License.
+
+  "Legal Entity" shall mean the union of the acting entity and all
+  other entities that control, are controlled by, or are under common
+  control with that entity. For the purposes of this definition,
+  "control" means (i) the power, direct or indirect, to cause the
+  direction or management of such entity, whether by contract or
+  otherwise, or (ii) ownership of fifty percent (50%) or more of the
+  outstanding shares, or (iii) beneficial ownership of such entity.
+
+  "You" (or "Your") shall mean an individual or Legal Entity
+  exercising permissions granted by this License.
+
+  "Source" form shall mean the preferred form for making modifications,
+  including but not limited to software source code, documentation
+  source, and configuration files.
+
+  "Object" form shall mean any form resulting from mechanical
+  transformation or translation of a Source form, including but
+  not limited to compiled object code, generated documentation,
+  and conversions to other media types.
+
+  "Work" shall mean the work of authorship, whether in Source or
+  Object form, made available under the License, as indicated by a
+  copyright notice that is included in or attached to the work
+  (an example is provided in the Appendix below).
+
+  "Derivative Works" shall mean any work, whether in Source or Object
+  form, that is based on (or derived from) the Work and for which the
+  editorial revisions, annotations, elaborations, or other 
modifications
+  represent, as a whole, an original work of authorship. For the 
purposes
+  of this License, Derivative Works shall not include works that remain
+  separable from, or merely link (or bind by name) to the interfaces 
of,
+  the Work and Derivative Works thereof.
+
+  "Contribution" shall mean any work of authorship, including
+  the original version of the Work and any modifications or additions
+  to that Work or Derivative Works thereof, that is intentionally
+  submitted to Licensor for inclusion in the Work by the copyright 
owner
+  or by an individual or Legal Entity authorized to submit on behalf of
+  the copyright owner. For the purposes of this definition, "submitted"
+  means any form of electronic, verbal, or written communication sent
+  to the Licensor or its representatives, including but not limited to
+  communication on electronic mailing lists, source code control 
systems,
+  and issue tracking systems that are managed by, or on behalf of, the
+  Licensor for the purpose of discussing and improving the Work, but
+  excluding communication that is conspicuously marked or otherwise
+  designated in writing by the copyright owner as "Not a Contribution."
+
+  "Contributor" shall mean Licensor and any individual or Legal Entity
+  on behalf of whom a Contribution has been received by Licensor and
+  subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+  this License, each Contributor hereby grants to You a perpetual,
+  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+  copyright license to reproduce, prepare Derivative Works of,
+  publicly display, publicly perform, sublicense, and distribute the
+  Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+  this License, each Contributor hereby grants to You a perpetual,
+  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+  (except as stated in this section) patent license 

[GitHub] nifi pull request #3214: NIFI-5890 Added a unit test that proves that 1.9 fi...

2018-12-12 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3214#discussion_r240980560
  
--- Diff: 
nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearchHttpRecord.java
 ---
@@ -404,7 +404,7 @@ public void onTrigger(final ProcessContext context, 
final ProcessSession session
 reason = 
itemNode.findPath("reason").asText();
 }
 errorReason = reason;
-logger.error("Failed to process {} 
due to {}, transferring to failure",
+talogger.error("Failed to process 
{} due to {}, transferring to failure",
--- End diff --

Yeah, definitely not. Thanks!


---


[GitHub] nifi pull request #3214: NIFI-5890 Added a unit test that proves that 1.9 fi...

2018-12-11 Thread MikeThomsen
GitHub user MikeThomsen opened a pull request:

https://github.com/apache/nifi/pull/3214

NIFI-5890 Added a unit test that proves that 1.9 fixes a bug in the d…

…ate conversion behavior in 1.8.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [ ] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [ ] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MikeThomsen/nifi NIFI-5890

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3214.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3214


commit ef8bac12ba38d6eaeae6ccb45238c2046126a8d4
Author: Mike Thomsen 
Date:   2018-12-11T16:18:52Z

NIFI-5890 Added a unit test that proves that 1.9 fixes a bug in the date 
conversion behavior in 1.8.




---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240660225
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,291 @@
+nifi-cassandra-services-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+The following binary components are provided under the Apache Software 
License v2
+
+  (ASLv2) DataStax Java Driver for Apache Cassandra - Core
+  The following NOTICE information applies:
+DataStax Java Driver for Apache Cassandra - Core
+Copyright (C) 2012-2017 DataStax Inc.
+
+  (ASLv2) Jackson JSON processor
+The following NOTICE information applies:
+  # Jackson JSON processor
+
+  Jackson is a high-performance, Free/Open Source JSON processing 
library.
+  It was originally written by Tatu Saloranta (tatu.salora...@iki.fi), 
and has
+  been in development since 2007.
+  It is currently developed by a community of developers, as well as 
supported
+  commercially by FasterXML.com.
+
+  ## Licensing
+
+  Jackson core and extension components may licensed under different 
licenses.
+  To find the details that apply to this artifact see the accompanying 
LICENSE file.
+  For more information, including possible other licensing options, 
contact
+  FasterXML.com (http://fasterxml.com).
+
+  ## Credits
+
+  A list of contributors may be found from CREDITS file, which is 
included
+  in some artifacts (usually source distributions); but is always 
available
+  from the source code management (SCM) system project uses.
+
+  (ASLv2) Apache Commons Codec
+The following NOTICE information applies:
+  Apache Commons Codec
+  Copyright 2002-2014 The Apache Software Foundation
+
+  src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java
+  contains test data from http://aspell.net/test/orig/batch0.tab.
+  Copyright (C) 2002 Kevin Atkinson (kev...@gnu.org)
+
+  
===
+
+  The content of package org.apache.commons.codec.language.bm has been 
translated
+  from the original php source code available at 
http://stevemorse.org/phoneticinfo.htm
+  with permission from the original authors.
+  Original source copyright:
+  Copyright (c) 2008 Alexander Beider & Stephen P. Morse.
+
+  (ASLv2) Apache Commons Lang
+The following NOTICE information applies:
+  Apache Commons Lang
+  Copyright 2001-2017 The Apache Software Foundation
+
+  This product includes software from the Spring Framework,
+  under the Apache License 2.0 (see: StringUtils.containsWhitespace())
+
+  (ASLv2) Guava
+The following NOTICE information applies:
+  Guava
+  Copyright 2015 The Guava Authors
+
+  (ASLv2) JSON-SMART
+The following NOTICE information applies:
+Copyright 2011 JSON-SMART authors
+
+  (ASLv2) Dropwizard Metrics
+The following NOTICE information applies:
+   Copyright (c) 2010-2013 Coda Hale, Yammer.com
+
+  (ASLv2) The Netty Project
+  The following NOTICE information applies:
+   Copyright 2014 The Netty Project
+   
---
+   This product contains the extensions to Java Collections Framework 
which has
+   been derived from the works by JSR-166 EG, Doug Lea, and Jason T. 
Greene:
+
+ * LICENSE:
+   * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+   * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+   * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+   This product contains a modified version of Robert Harder's Public 
Domain
+   Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+   * http://iharder.sourceforge.net/current/java/base64/
+
+   This product contains a modified portion of 'Webbit', an event based
+   WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+   * https://github.com/joewalnes/webbit
+
+   This product contains a modified portion of 'SLF4J', a simple logging
+   fa

[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240659974
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/LICENSE
 ---
@@ -0,0 +1,369 @@
+
+ Apache License
+   Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+  "License" shall mean the terms and conditions for use, reproduction,
+  and distribution as defined by Sections 1 through 9 of this document.
+
+  "Licensor" shall mean the copyright owner or entity authorized by
+  the copyright owner that is granting the License.
+
+  "Legal Entity" shall mean the union of the acting entity and all
+  other entities that control, are controlled by, or are under common
+  control with that entity. For the purposes of this definition,
+  "control" means (i) the power, direct or indirect, to cause the
+  direction or management of such entity, whether by contract or
+  otherwise, or (ii) ownership of fifty percent (50%) or more of the
+  outstanding shares, or (iii) beneficial ownership of such entity.
+
+  "You" (or "Your") shall mean an individual or Legal Entity
+  exercising permissions granted by this License.
+
+  "Source" form shall mean the preferred form for making modifications,
+  including but not limited to software source code, documentation
+  source, and configuration files.
+
+  "Object" form shall mean any form resulting from mechanical
+  transformation or translation of a Source form, including but
+  not limited to compiled object code, generated documentation,
+  and conversions to other media types.
+
+  "Work" shall mean the work of authorship, whether in Source or
+  Object form, made available under the License, as indicated by a
+  copyright notice that is included in or attached to the work
+  (an example is provided in the Appendix below).
+
+  "Derivative Works" shall mean any work, whether in Source or Object
+  form, that is based on (or derived from) the Work and for which the
+  editorial revisions, annotations, elaborations, or other 
modifications
+  represent, as a whole, an original work of authorship. For the 
purposes
+  of this License, Derivative Works shall not include works that remain
+  separable from, or merely link (or bind by name) to the interfaces 
of,
+  the Work and Derivative Works thereof.
+
+  "Contribution" shall mean any work of authorship, including
+  the original version of the Work and any modifications or additions
+  to that Work or Derivative Works thereof, that is intentionally
+  submitted to Licensor for inclusion in the Work by the copyright 
owner
+  or by an individual or Legal Entity authorized to submit on behalf of
+  the copyright owner. For the purposes of this definition, "submitted"
+  means any form of electronic, verbal, or written communication sent
+  to the Licensor or its representatives, including but not limited to
+  communication on electronic mailing lists, source code control 
systems,
+  and issue tracking systems that are managed by, or on behalf of, the
+  Licensor for the purpose of discussing and improving the Work, but
+  excluding communication that is conspicuously marked or otherwise
+  designated in writing by the copyright owner as "Not a Contribution."
+
+  "Contributor" shall mean Licensor and any individual or Legal Entity
+  on behalf of whom a Contribution has been received by Licensor and
+  subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+  this License, each Contributor hereby grants to You a perpetual,
+  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+  copyright license to reproduce, prepare Derivative Works of,
+  publicly display, publicly perform, sublicense, and distribute the
+  Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+  this License, each Contributor hereby grants to You a perpetual,
+  worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+  (except as stated in this section) patent license 

[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240587144
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-api-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,226 @@
+nifi-cassandra-services-api-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+  (ASLv2) The Netty Project
+The following NOTICE information applies:
+   Copyright 2014 The Netty Project
+   
---
+   This product contains the extensions to Java Collections 
Framework which has
+   been derived from the works by JSR-166 EG, Doug Lea, and Jason 
T. Greene:
+
+ * LICENSE:
+   * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+   * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+   * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+   This product contains a modified version of Robert Harder's 
Public Domain
+   Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+   * http://iharder.sourceforge.net/current/java/base64/
+
+   This product contains a modified portion of 'Webbit', an event 
based
+   WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+   * https://github.com/joewalnes/webbit
+
+   This product contains a modified portion of 'SLF4J', a simple 
logging
+   facade for Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+   * http://www.slf4j.org/
+
+   This product contains a modified portion of 'Apache Harmony', 
an open source
+   Java SE, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * http://archive.apache.org/dist/harmony/
+
+   This product contains a modified portion of 'jbzip2', a Java 
bzip2 compression
+   and decompression library written by Matthew J. Francis. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+   * https://code.google.com/p/jbzip2/
+
+   This product contains a modified portion of 'libdivsufsort', a 
C API library to construct
+   the suffix array and the Burrows-Wheeler transformed string for 
any input string of
+   a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+   * https://github.com/y-256/libdivsufsort
+
+   This product contains a modified portion of Nitsan Wakart's 
'JCTools', Java Concurrency Tools for the JVM,
+which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+   * https://github.com/JCTools/JCTools
+
+   This product optionally depends on 'JZlib', a re-implementation 
of zlib in
+   pure Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+   * http://www.jcraft.com/jzlib/
+
+   This product optionally depends on 'Compress-LZF', a Java 
library for encoding and
+   decoding data in LZF format, written by Tatu Saloranta. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * https://github.com/ning/compress
+
+   This product optionally depends on 'lz4', a LZ4 Java compression
+   and decompression library written by Adrien Grand. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE

[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240587170
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-api-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,226 @@
+nifi-cassandra-services-api-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+  (ASLv2) The Netty Project
+The following NOTICE information applies:
+   Copyright 2014 The Netty Project
+   
---
+   This product contains the extensions to Java Collections 
Framework which has
+   been derived from the works by JSR-166 EG, Doug Lea, and Jason 
T. Greene:
+
+ * LICENSE:
+   * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+   * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+   * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+   This product contains a modified version of Robert Harder's 
Public Domain
+   Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+   * http://iharder.sourceforge.net/current/java/base64/
+
+   This product contains a modified portion of 'Webbit', an event 
based
+   WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+   * https://github.com/joewalnes/webbit
+
+   This product contains a modified portion of 'SLF4J', a simple 
logging
+   facade for Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+   * http://www.slf4j.org/
+
+   This product contains a modified portion of 'Apache Harmony', 
an open source
+   Java SE, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * http://archive.apache.org/dist/harmony/
+
+   This product contains a modified portion of 'jbzip2', a Java 
bzip2 compression
+   and decompression library written by Matthew J. Francis. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+   * https://code.google.com/p/jbzip2/
+
+   This product contains a modified portion of 'libdivsufsort', a 
C API library to construct
+   the suffix array and the Burrows-Wheeler transformed string for 
any input string of
+   a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+   * https://github.com/y-256/libdivsufsort
+
+   This product contains a modified portion of Nitsan Wakart's 
'JCTools', Java Concurrency Tools for the JVM,
+which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+   * https://github.com/JCTools/JCTools
+
+   This product optionally depends on 'JZlib', a re-implementation 
of zlib in
+   pure Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+   * http://www.jcraft.com/jzlib/
+
+   This product optionally depends on 'Compress-LZF', a Java 
library for encoding and
+   decoding data in LZF format, written by Tatu Saloranta. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * https://github.com/ning/compress
+
+   This product optionally depends on 'lz4', a LZ4 Java compression
+   and decompression library written by Adrien Grand. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE

[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240584516
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-api-nar/src/main/resources/META-INF/LICENSE
 ---
@@ -0,0 +1,266 @@
+
--- End diff --

+1 LGTM


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240587016
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-api-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,226 @@
+nifi-cassandra-services-api-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+  (ASLv2) The Netty Project
+The following NOTICE information applies:
+   Copyright 2014 The Netty Project
+   
---
+   This product contains the extensions to Java Collections 
Framework which has
+   been derived from the works by JSR-166 EG, Doug Lea, and Jason 
T. Greene:
+
+ * LICENSE:
+   * license/LICENSE.jsr166y.txt (Public Domain)
+ * HOMEPAGE:
+   * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
+   * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
+
+   This product contains a modified version of Robert Harder's 
Public Domain
+   Base64 Encoder and Decoder, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.base64.txt (Public Domain)
+ * HOMEPAGE:
+   * http://iharder.sourceforge.net/current/java/base64/
+
+   This product contains a modified portion of 'Webbit', an event 
based
+   WebSocket and HTTP server, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.webbit.txt (BSD License)
+ * HOMEPAGE:
+   * https://github.com/joewalnes/webbit
+
+   This product contains a modified portion of 'SLF4J', a simple 
logging
+   facade for Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.slf4j.txt (MIT License)
+ * HOMEPAGE:
+   * http://www.slf4j.org/
+
+   This product contains a modified portion of 'Apache Harmony', 
an open source
+   Java SE, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.harmony.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * http://archive.apache.org/dist/harmony/
+
+   This product contains a modified portion of 'jbzip2', a Java 
bzip2 compression
+   and decompression library written by Matthew J. Francis. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jbzip2.txt (MIT License)
+ * HOMEPAGE:
+   * https://code.google.com/p/jbzip2/
+
+   This product contains a modified portion of 'libdivsufsort', a 
C API library to construct
+   the suffix array and the Burrows-Wheeler transformed string for 
any input string of
+   a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.libdivsufsort.txt (MIT License)
+ * HOMEPAGE:
+   * https://github.com/y-256/libdivsufsort
+
+   This product contains a modified portion of Nitsan Wakart's 
'JCTools', Java Concurrency Tools for the JVM,
+which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jctools.txt (ASL2 License)
+ * HOMEPAGE:
+   * https://github.com/JCTools/JCTools
+
+   This product optionally depends on 'JZlib', a re-implementation 
of zlib in
+   pure Java, which can be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.jzlib.txt (BSD style License)
+ * HOMEPAGE:
+   * http://www.jcraft.com/jzlib/
+
+   This product optionally depends on 'Compress-LZF', a Java 
library for encoding and
+   decoding data in LZF format, written by Tatu Saloranta. It can 
be obtained at:
+
+ * LICENSE:
+   * license/LICENSE.compress-lzf.txt (Apache License 2.0)
+ * HOMEPAGE:
+   * https://github.com/ning/compress
+
+   This product optionally depends on 'lz4', a LZ4 Java compression
+   and decompression library written by Adrien Grand. It can be 
obtained at:
+
+ * LICENSE:
+   * license/LICENSE.lz4.txt (Apache License 2.0)
+ * HOMEPAGE

[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-12-11 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r240586483
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-api-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,226 @@
+nifi-cassandra-services-api-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+  (ASLv2) The Netty Project
--- End diff --

Netty looks good.


---


[GitHub] nifi issue #3203: NIFI-5871 ignore UUID attribute when copying flow file att...

2018-12-05 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3203
  
AFAIK, there is no reason why uuid should be inherited by a flowfile even 
in a parent-child scenario since the child is a new flowfile branched off.


---


[GitHub] nifi issue #3203: NIFI-5871 ignore UUID attribute when copying flow file att...

2018-12-05 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3203
  
Approval still stands. Will wait to see what Travis does.


---


[GitHub] nifi pull request #3203: NIFI-5871 ignore UUID attribute when copying flow f...

2018-12-05 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3203#discussion_r239160879
  
--- Diff: 
nifi-mock/src/main/java/org/apache/nifi/util/MockProcessSession.java ---
@@ -496,7 +496,10 @@ public MockFlowFile putAllAttributes(FlowFile 
flowFile, final Map attrCopy = new HashMap<>();
+attrCopy.putAll(attrs);
--- End diff --

Only change I'd make here is putting that into the constructor. Other than 
that LGTM.


---


[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-12-02 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
@zenfenan you still working this?


---


[GitHub] nifi pull request #3165: NIFI-5318 Implement NiFi test harness

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3165#discussion_r236045789
  
--- Diff: nifi-testharness/src/test/resources/sample_technology_rss.xml ---
@@ -0,0 +1,28 @@
+
+
--- End diff --

Yes, it absolutely must be changed because the BBC is asserting its IP 
rights here:

```

```


---


[GitHub] nifi issue #3165: NIFI-5318 Implement NiFi test harness

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3165
  
Will try to get back into it soon. BTW, thanks for putting it all back onto 
a branch.


---


[GitHub] nifi issue #3038: [NIFI-5646] Dockerfile.alpine: Added.

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3038
  
@apiri What do you think?

> An alternative would be to put the Dockerfiles into subdirectories if the 
above is a limitation in the plugin.

I think an alpine build would be a nice thing to have.


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041500
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing logback dependency reference


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041495
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+The following binary components are provided under the Apache Software 
License v2
+
+  (ASLv2) DataStax Java Driver for Apache Cassandra - Core
+  The following NOTICE information applies:
+DataStax Java Driver for Apache Cassandra - Core
+Copyright (C) 2012-2017 DataStax Inc.
+
+  (ASLv2) Apache Avro
--- End diff --

It can be removed.


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041589
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing notices for this entire branch:

```
[INFO] | |  +- org.antlr:antlr-runtime:jar:3.5.2:compile
[INFO] | |  +- com.jayway.jsonpath:json-path:jar:2.4.0:compile
[INFO] | |  |  \- net.minidev:json-smart:jar:2.3:compile
[INFO] | |  | \- net.minidev:accessors-smart:jar:1.2:compile
```


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041556
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing notice for Netty


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041536
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing notice for groupId `org.ow2.asm`


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041568
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing notice for `de.svenkubiak:jBCrypt`


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041602
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
+Copyright 2016 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+
+**
+Apache Software License v2
+**
+
+The following binary components are provided under the Apache Software 
License v2
+
+  (ASLv2) DataStax Java Driver for Apache Cassandra - Core
+  The following NOTICE information applies:
+DataStax Java Driver for Apache Cassandra - Core
+Copyright (C) 2012-2017 DataStax Inc.
+
+  (ASLv2) Apache Avro
+  The following NOTICE information applies:
+Apache Avro
+Copyright 2009-2017 The Apache Software Foundation
+
+  (ASLv2) Jackson JSON processor
--- End diff --

It is referenced in `mvn dependency:tree` on your services NAR.


---


[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
You also need to verify the LICENSE as well.


---


[GitHub] nifi pull request #3105: NIFI-5621: Added Cassandra connection provider serv...

2018-11-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3105#discussion_r236041517
  
--- Diff: 
nifi-nar-bundles/nifi-cassandra-bundle/nifi-cassandra-services-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -0,0 +1,327 @@
+nifi-cassandra-services-nar
--- End diff --

Missing notice for `io.dropwizard.metrics:metrics-core:jar:3.2.2:compile`


---


[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-11-23 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
@zenfenan I have a table with uuid primary key. How do I set a value for an 
insert in our processors for that field type (if you don't know can you 
recommend a schema for testing)?


---


[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-11-23 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
Reviewing...


---


[GitHub] nifi issue #3167: NIFI-5812: Marked Database processors as 'PrimaryNodeOnly'

2018-11-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3167
  
@zenfenan If you're too busy, I can make that change and merge.


---


[GitHub] nifi pull request #3167: NIFI-5812: Marked Database processors as 'PrimaryNo...

2018-11-20 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3167#discussion_r234999192
  
--- Diff: 
nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/GenerateTableFetch.java
 ---
@@ -114,6 +114,7 @@
 + "max value for max value columns. Properties should be added in 
the format `initial.maxvalue.`. This value is only used the 
first time "
 + "the table is accessed (when a Maximum Value Column is 
specified). In the case of incoming connections, the value is only used the 
first time for each table "
 + "specified in the flow files.")
+@PrimaryNodeOnly
--- End diff --

Agreed


---


[GitHub] nifi pull request #3011: NIFI-5333 Added GetMongoRecord.

2018-11-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3011#discussion_r234461028
  
--- Diff: 
nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
 ---
@@ -0,0 +1,213 @@
+/*
+ * 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.nifi.processors.mongodb;
+
+import com.mongodb.client.FindIterable;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoCursor;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+import org.apache.nifi.annotation.behavior.WritesAttributes;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.mongodb.MongoDBClientService;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.apache.nifi.schema.access.SchemaNotFoundException;
+import org.apache.nifi.serialization.RecordSetWriter;
+import org.apache.nifi.serialization.RecordSetWriterFactory;
+import org.apache.nifi.serialization.record.MapRecord;
+import org.apache.nifi.serialization.record.Record;
+import org.apache.nifi.serialization.record.RecordSchema;
+import org.bson.Document;
+import org.bson.types.ObjectId;
+
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@CapabilityDescription("A record-based version of GetMongo that uses the 
Record writers to write the MongoDB result set.")
+@Tags({"mongo", "mongodb", "get", "fetch", "record", "json"})
+@InputRequirement(InputRequirement.Requirement.INPUT_ALLOWED)
+@WritesAttributes({
+@WritesAttribute(attribute = GetMongo.DB_NAME, description = "The 
database where the results came from."),
+@WritesAttribute(attribute = GetMongo.COL_NAME, description = "The 
collection where the results came from.")
+})
+public class GetMongoRecord extends AbstractMongoQueryProcessor {
+public static final PropertyDescriptor CLIENT = new 
PropertyDescriptor.Builder()
--- End diff --

Just pushed an update that fixed some bad behavior. Ran the whole IT suite 
against dockerized Mongo and no issues.


---


[GitHub] nifi pull request #3011: NIFI-5333 Added GetMongoRecord.

2018-11-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3011#discussion_r234457340
  
--- Diff: 
nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/GetMongoRecord.java
 ---
@@ -0,0 +1,213 @@
+/*
+ * 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.nifi.processors.mongodb;
+
+import com.mongodb.client.FindIterable;
+import com.mongodb.client.MongoCollection;
+import com.mongodb.client.MongoCursor;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+import org.apache.nifi.annotation.behavior.WritesAttributes;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.mongodb.MongoDBClientService;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.apache.nifi.schema.access.SchemaNotFoundException;
+import org.apache.nifi.serialization.RecordSetWriter;
+import org.apache.nifi.serialization.RecordSetWriterFactory;
+import org.apache.nifi.serialization.record.MapRecord;
+import org.apache.nifi.serialization.record.Record;
+import org.apache.nifi.serialization.record.RecordSchema;
+import org.bson.Document;
+import org.bson.types.ObjectId;
+
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+@CapabilityDescription("A record-based version of GetMongo that uses the 
Record writers to write the MongoDB result set.")
+@Tags({"mongo", "mongodb", "get", "fetch", "record", "json"})
+@InputRequirement(InputRequirement.Requirement.INPUT_ALLOWED)
+@WritesAttributes({
+@WritesAttribute(attribute = GetMongo.DB_NAME, description = "The 
database where the results came from."),
+@WritesAttribute(attribute = GetMongo.COL_NAME, description = "The 
collection where the results came from.")
+})
+public class GetMongoRecord extends AbstractMongoQueryProcessor {
+public static final PropertyDescriptor CLIENT = new 
PropertyDescriptor.Builder()
--- End diff --

Fixed. Couldn't test locally because I'm having connectivity issues for one 
of the maven dependencies in nifi-hdfs-processors.


---


[GitHub] nifi issue #3011: NIFI-5333 Added GetMongoRecord.

2018-11-13 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3011
  
Thanks @zenfenan. Could you and/or @mattyb149 take a look at 4975 as well 
sometime? That's the GridFS support. Would really like to give NiFi the ability 
to work natively with that.


---


[GitHub] nifi pull request #3011: NIFI-5333 Added GetMongoRecord.

2018-11-10 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3011#discussion_r232453403
  
--- Diff: 
nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/pom.xml ---
@@ -101,6 +101,7 @@
 
 org.apache.nifi
 nifi-mongodb-client-service-api
+1.8.0-SNAPSHOT
--- End diff --

Done.


---


[GitHub] nifi pull request #2861: NIFI-5248 Added new Elasticsearch json and record p...

2018-10-30 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2861#discussion_r229396964
  
--- Diff: 
nifi-nar-bundles/nifi-elasticsearch-bundle/nifi-elasticsearch-restapi-processors/src/main/java/org/apache/nifi/processors/elasticsearch/PutElasticsearchRecord.java
 ---
@@ -0,0 +1,264 @@
+/*
+ * 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.nifi.processors.elasticsearch;
+
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.elasticsearch.ElasticSearchClientService;
+import org.apache.nifi.elasticsearch.ElasticSearchError;
+import org.apache.nifi.elasticsearch.IndexOperationRequest;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.record.path.FieldValue;
+import org.apache.nifi.record.path.RecordPath;
+import org.apache.nifi.record.path.RecordPathResult;
+import org.apache.nifi.record.path.util.RecordPathCache;
+import org.apache.nifi.record.path.validation.RecordPathValidator;
+import org.apache.nifi.serialization.RecordReader;
+import org.apache.nifi.serialization.RecordReaderFactory;
+import org.apache.nifi.serialization.record.Record;
+import org.apache.nifi.serialization.record.RecordFieldType;
+import org.apache.nifi.serialization.record.util.DataTypeUtils;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+
+@InputRequirement(InputRequirement.Requirement.INPUT_REQUIRED)
+@Tags({"json", "elasticsearch", "elasticsearch5", "elasticsearch6", "put", 
"index", "record"})
+@CapabilityDescription("A record-aware ElasticSearch put processor that 
uses the official Elastic REST client libraries.")
+public class PutElasticsearchRecord extends AbstractProcessor implements 
ElasticSearchRestProcessor {
+static final PropertyDescriptor RECORD_READER = new 
PropertyDescriptor.Builder()
+.name("put-es-record-reader")
+.displayName("Record Reader")
+.description("The record reader to use for reading incoming 
records from flowfiles.")
+.identifiesControllerService(RecordReaderFactory.class)
+.required(true)
+.build();
+
+static final PropertyDescriptor OPERATION_RECORD_PATH = new 
PropertyDescriptor.Builder()
--- End diff --

Sorry, early morning and coffee didn't kick in.

Yeah, those values should be removed and they are now. I moved to just 
purge nulls and empty strings because they're semantically meaningless AFAICT 
in Lucene and ES since they are truthy-false whether they don't exist, are null 
or empty. So all gone now if you specify the record path.


---


[GitHub] nifi issue #2861: NIFI-5248 Added new Elasticsearch json and record processo...

2018-10-30 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2861
  
@mattyb149 review changes are in.


---


[GitHub] nifi issue #3041: NIFI-5224 Added SolrClientService.

2018-10-30 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3041
  
@mattyb149 changes made.


---


[GitHub] nifi pull request #2872: NIFI-5318 Implement NiFi test harness: initial comm...

2018-10-26 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2872#discussion_r228689270
  
--- Diff: 
nifi-testharness/src/test/java/org/apache/nifi/testharness/samples/Constants.java
 ---
@@ -0,0 +1,32 @@
+/*
+ * 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.nifi.testharness.samples;
+
+import java.io.File;
+
+public final class Constants {
+
+static final File OUTPUT_DIR = new File("./NiFiTest/NiFiReadTest");
+
+// NOTE: you will have to have the NiFi distribution ZIP placed into 
this directory.
+// Its version must be the same as the one referenced in the flow.xml, 
otherwise it will not work!
+static final File NIFI_ZIP_DIR = new 
File(System.getProperty("user.home"), "Downloads");
--- End diff --

That folder evaluated to `$HOME/Downloads` for my user account when I ran 
it. Are you expecting the user to sudo or something?


---


[GitHub] nifi pull request #3041: NIFI-5224 Added SolrClientService.

2018-10-26 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3041#discussion_r228537197
  
--- Diff: nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/pom.xml ---
@@ -147,6 +147,12 @@
 2.2.1
 test
 
+
+org.apache.nifi
+nifi-solr-client-api
+1.8.0-SNAPSHOT
+provided
--- End diff --

> The solr-bundle NAR pom also needs to be updated to have a parent of the 
client API NAR.

Could you explain? I added the client api nar to the assemble, rebuilt and 
was able to bring in a new client service just fine.


---


[GitHub] nifi pull request #2872: NIFI-5318 Implement NiFi test harness: initial comm...

2018-10-26 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2872#discussion_r228511342
  
--- Diff: 
nifi-testharness/src/test/java/org/apache/nifi/testharness/samples/Constants.java
 ---
@@ -0,0 +1,32 @@
+/*
+ * 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.nifi.testharness.samples;
+
+import java.io.File;
+
+public final class Constants {
+
+static final File OUTPUT_DIR = new File("./NiFiTest/NiFiReadTest");
+
+// NOTE: you will have to have the NiFi distribution ZIP placed into 
this directory.
+// Its version must be the same as the one referenced in the flow.xml, 
otherwise it will not work!
+static final File NIFI_ZIP_DIR = new 
File(System.getProperty("user.home"), "Downloads");
--- End diff --

Since this is an internal unit test, it should be pointing to the build 
output of nifi-assembly.


---


[GitHub] nifi pull request #3041: NIFI-5224 Added SolrClientService.

2018-10-26 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3041#discussion_r228507330
  
--- Diff: 
nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/SolrProcessor.java
 ---
@@ -176,70 +172,11 @@ protected final KeytabUser getKerberosKeytabUser() {
 final protected Collection 
customValidate(ValidationContext context) {
 final List problems = new ArrayList<>();
 
-if 
(SOLR_TYPE_CLOUD.equals(context.getProperty(SOLR_TYPE).getValue())) {
-final String collection = 
context.getProperty(COLLECTION).getValue();
-if (collection == null || collection.trim().isEmpty()) {
-problems.add(new ValidationResult.Builder()
-.subject(COLLECTION.getName())
-.input(collection).valid(false)
-.explanation("A collection must specified for Solr 
Type of Cloud")
-.build());
-}
-}
-
-// For solr cloud the location will be the ZooKeeper host:port so 
we can't validate the SSLContext, but for standard solr
-// we can validate if the url starts with https we need an 
SSLContextService, if it starts with http we can't have an SSLContextService
-if 
(SOLR_TYPE_STANDARD.equals(context.getProperty(SOLR_TYPE).getValue())) {
-final String solrLocation = 
context.getProperty(SOLR_LOCATION).evaluateAttributeExpressions().getValue();
-if (solrLocation != null) {
-final SSLContextService sslContextService = 
context.getProperty(SSL_CONTEXT_SERVICE).asControllerService(SSLContextService.class);
-if (solrLocation.startsWith("https:") && sslContextService 
== null) {
-problems.add(new ValidationResult.Builder()
-.subject(SSL_CONTEXT_SERVICE.getDisplayName())
-.valid(false)
-.explanation("an SSLContextService must be 
provided when using https")
-.build());
-} else if (solrLocation.startsWith("http:") && 
sslContextService != null) {
-problems.add(new ValidationResult.Builder()
-.subject(SSL_CONTEXT_SERVICE.getDisplayName())
-.valid(false)
-.explanation("an SSLContextService can not be 
provided when using http")
-.build());
-}
-}
-}
-
-// Validate that we username and password are provided together, 
or that neither are provided
-final String username = 
context.getProperty(BASIC_USERNAME).evaluateAttributeExpressions().getValue();
-final String password = 
context.getProperty(BASIC_PASSWORD).evaluateAttributeExpressions().getValue();
-
-final boolean basicUsernameProvided = 
!StringUtils.isBlank(username);
-final boolean basicPasswordProvided = 
!StringUtils.isBlank(password);
-
-if (basicUsernameProvided && !basicPasswordProvided) {
-problems.add(new ValidationResult.Builder()
-.subject(BASIC_PASSWORD.getDisplayName())
-.valid(false)
-.explanation("a password must be provided for the 
given username")
-.build());
-}
-
-if (basicPasswordProvided && !basicUsernameProvided) {
-problems.add(new ValidationResult.Builder()
-.subject(BASIC_USERNAME.getDisplayName())
-.valid(false)
-.explanation("a username must be provided for the 
given password")
-.build());
-}
-
-// Validate that only kerberos or basic auth can be set, but not 
both
-final KerberosCredentialsService kerberosCredentialsService = 
context.getProperty(KERBEROS_CREDENTIALS_SERVICE).asControllerService(KerberosCredentialsService.class);
-if (kerberosCredentialsService != null && basicUsernameProvided && 
basicPasswordProvided) {
-problems.add(new ValidationResult.Builder()
-.subject(KERBEROS_CREDENTIALS_SERVICE.getDisplayName())
-.valid(false)
-.explanation("basic auth and kerberos cannot be 
configured at the same time")
-.build());
+List _temp = new 
ArrayList<>(validateConnectionDetails(context));
+if (_temp.size() == 0 && 
context.getProperty(CLIENT_SERVICE).isSet()) {
--- End diff --

Fixed that too.


---


[GitHub] nifi issue #3105: NIFI-5621: Added Cassandra connection provider service

2018-10-25 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3105
  
Easiest way to do the L for your NAR here is this:

`mvn dependency:tree | grep -i compile`

Provided and test dependencies aren't part of the NAR, so only focus on 
compile.


---


[GitHub] nifi issue #2872: NIFI-5318 Implement NiFi test harness: initial commit of n...

2018-10-21 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2872
  
> Hi @MikeThomsen sorry for the delay, I have been just very busy. 

Thanks. I've got a lot on my plate as well, but will try to find some time 
early this week to review.


---


[GitHub] nifi issue #3079: NIFI-5706 : Added ConvertAvroToParquet processor

2018-10-17 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3079
  
From Jira:

> PutParquet support is limited to HDFS. 

It's actually not. You can write it to the local file system by supplying a 
Hadoop configuration that tells it to use that.

It's not clear to me that this differs fundamentally from PutParquet other 
than the output target. Am I missing something?


---


[GitHub] nifi issue #2861: NIFI-5248 Added new Elasticsearch json and record processo...

2018-10-15 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2861
  
@mattyb149 anything?


---


[GitHub] nifi pull request #3025: NIFI-5605 Added UpdateCassandra.

2018-10-15 Thread MikeThomsen
Github user MikeThomsen closed the pull request at:

https://github.com/apache/nifi/pull/3025


---


[GitHub] nifi issue #3025: NIFI-5605 Added UpdateCassandra.

2018-10-15 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3025
  
Going to close this because I think the consensus is that it should be 
folded into an existing processor.


---


[GitHub] nifi issue #2856: NIFI-4811 Added two missing entries to the nifi-redis-serv...

2018-10-12 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2856
  
@joewitt we should be good to go now.


---


[GitHub] nifi issue #3049: NIFI-5664 Support List in DataTypeUtils#toArray

2018-10-12 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3049
  
Cool. FYI, the long term goal is to make controller services the exclusive 
source of configurations for configurations. That's because a single 
`MongoClient` is really a connection pool and is--according to Mongo 
Inc.--thread-safe and intended to be used across an entire app. That should 
help Mongo users tighten up on how many connections they have open from NiFi, 
especially a cluster (since each node has N number of MongoClients where N = # 
of mongo processors).


---


[GitHub] nifi issue #3049: NIFI-5664 Support List in DataTypeUtils#toArray

2018-10-12 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3049
  
@snagacarl since this was for the Mongo lookup service, wanted to make sure 
that you're aware that in 1.8 there will be a slight breaking change. The 
"configuration" controller service and the lookup service are now cleanly 
separated so that the lookup service can be cheerfully ignorant of connection 
details like the URL, SSL and authentication details. That way plugging in a 
new cluster or something will be faster and easier for Mongo users.


---


[GitHub] nifi issue #3049: NIFI-5664 Support List in DataTypeUtils#toArray

2018-10-09 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3049
  
I'll try to review tonight. Been pretty sick. Thanks for the updates 
@snagacarl 


---


[GitHub] nifi pull request #3049: NIFI-5664 Support ArrayList in DataTypeUtils#toArra...

2018-10-06 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3049#discussion_r223181352
  
--- Diff: 
nifi-commons/nifi-record/src/test/java/org/apache/nifi/serialization/record/TestDataTypeUtils.java
 ---
@@ -168,6 +168,21 @@ public void testConvertRecordFieldToObject() {
 
 }
 
+@Test
+public void testToArray() {
+final ArrayList arrayList = new ArrayList<>();
+arrayList.add("Seven");
--- End diff --

This could also be reduced to `final list arrayList = 
Arrays.asList("Seven", "Eleven", "Thirteen");`


---


[GitHub] nifi pull request #3049: NIFI-5664 Support ArrayList in DataTypeUtils#toArra...

2018-10-06 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3049#discussion_r223181320
  
--- Diff: 
nifi-commons/nifi-record/src/main/java/org/apache/nifi/serialization/record/util/DataTypeUtils.java
 ---
@@ -339,6 +339,11 @@ public static boolean isRecordTypeCompatible(final 
Object value) {
 return dest;
 }
 
+if (value instanceof ArrayList) {
--- End diff --

I agree with @ottobackwards. It really should not be a specific 
implementation.


---


[GitHub] nifi pull request #3049: NIFI-5664 Support ArrayList in DataTypeUtils#toArra...

2018-10-06 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3049#discussion_r223181332
  
--- Diff: 
nifi-commons/nifi-record/src/test/java/org/apache/nifi/serialization/record/TestDataTypeUtils.java
 ---
@@ -168,6 +168,21 @@ public void testConvertRecordFieldToObject() {
 
 }
 
+@Test
+public void testToArray() {
+final ArrayList arrayList = new ArrayList<>();
--- End diff --

Should be `final List`


---


[GitHub] nifi issue #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-10-05 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2956
  
@mans2singh before we continue, do you mind joining in [this 
discussion](http://apache-nifi-developer-list.39713.n7.nabble.com/Graph-database-support-w-NiFi-tp18680p19706.html)
 that I reopened on the mailing list?


---


[GitHub] nifi issue #3025: NIFI-5605 Added UpdateCassandra.

2018-10-04 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3025
  
@zenfenan do you have any opinion on where to put this functionality?


---


[GitHub] nifi issue #3045: Support/nifi 1.7.x

2018-10-04 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3045
  
@swatinarvekar if you need support, please subscribe to [one of the mailing 
lists](http://nifi.apache.org/mailing_lists.html). If this is an attempted code 
submission, let us know what you're trying to do and we can help you through 
the process. If not, please close this PR.


---


[GitHub] nifi issue #2420: NIFI-4731

2018-10-04 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2420
  
> May I ask what is currently blocking it?

@nologic appears to have not addressed all of the review feedback.

@joewitt I can rebase and address the author tags. If the tests run, I can 
merge myself. You want to do that?


---


[GitHub] nifi issue #2546: NIFI-4975 Add GridFS processors

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2546
  
@zenfenan @mattyb149 any chance we could get a review going for this before 
1.8?


---


[GitHub] nifi issue #3041: NIFI-5224 Added SolrClientService.

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3041
  
Thanks, @bbende I'll look into those.


---


[GitHub] nifi issue #3015: NIFI-5254 [WIP] Updated to Groovy 2.5.2

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3015
  
@mattyb149 @joewitt Removed the following as compile dependencies because I 
can't see any valid use for them in our scripting scenarios:

* groovy-cli*
* groovy-groovydoc
* groovy-docgenerator
* groovy-swing
* groovy-test
* groovy-test-junit5
* groovy-testng

Think that's it. We might want to release an unofficial test build of NiFi 
w/ 2.5.X because I'm not 100% sure there's a full guarantee of compatibility 
between 2.4 and 2.5


---


[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r66870
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
+.name("neo4j-password")
+.displayName("Password")
+.description("Password for Neo4J user")
+.required(true)
+.sensitive(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_ROUND_ROBIN = new 
AllowableValue(LoadBalancingStrategy.ROUND_ROBIN.name(), "Round Robin", "Round 
Robin Strategy");
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_LEAST_CONNECTED = 
new AllowableValue(LoadBalancingStrategy.LEAST_CONNECTED.n

[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r65949
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
+.name("neo4j-password")
+.displayName("Password")
+.description("Password for Neo4J user")
+.required(true)
+.sensitive(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_ROUND_ROBIN = new 
AllowableValue(LoadBalancingStrategy.ROUND_ROBIN.name(), "Round Robin", "Round 
Robin Strategy");
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_LEAST_CONNECTED = 
new AllowableValue(LoadBalancingStrategy.LEAST_CONNECTED.n

[GitHub] nifi issue #3011: NIFI-5333 Added GetMongoRecord.

2018-10-03 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3011
  
@zenfenan any chance we can get a review underway?


---


[GitHub] nifi issue #3015: NIFI-5254 [WIP] Updated to Groovy 2.5.2

2018-10-02 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3015
  
@mattyb149 @joewitt while I'm doing L validation on their dependencies, I 
can also cut out some of the fat by dropping Groovy modules like the CLI one 
that have no bearing on NiFi scripting. Thoughts?


---


[GitHub] nifi issue #3015: NIFI-5254 [WIP] Updated to Groovy 2.5.2

2018-10-02 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3015
  
Thanks, that's what I thought, but need a second opinion because we gotta 
cross our `T`s and dot our `I`s on this stuff. Will fix.


---


[GitHub] nifi issue #2861: NIFI-5248 Added new Elasticsearch json and record processo...

2018-10-02 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2861
  
@mattyb149 should be good to go now. Found the bug and pushed a fix that 
worked locally.


---


[GitHub] nifi issue #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2956
  
> @MikeThomsen - Regarding your graph output questions - It looks correct 
but can you please let me know what are the commands/files that were ingested 
for above output ?

I'll try to find some time to replay and get back to you on that.


---


[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r221723913
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
+.name("neo4j-password")
+.displayName("Password")
+.description("Password for Neo4J user")
+.required(true)
+.sensitive(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_ROUND_ROBIN = new 
AllowableValue(LoadBalancingStrategy.ROUND_ROBIN.name(), "Round Robin", "Round 
Robin Strategy");
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_LEAST_CONNECTED = 
new AllowableValue(LoadBalancingStrategy.LEAST_CONNECTED.n

[GitHub] nifi issue #2861: NIFI-5248 Added new Elasticsearch json and record processo...

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2861
  
One of the lookup integration tests is failing. I need to figure out why.


---


[GitHub] nifi issue #3042: NIFI-5650: Added Xerces to scripting bundle for Jython 2.7...

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3042
  
Merged.


---


[GitHub] nifi issue #3042: NIFI-5650: Added Xerces to scripting bundle for Jython 2.7...

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3042
  
@mattyb149 I'll merge when Travis is done and at least one build passes.


---


[GitHub] nifi pull request #3042: NIFI-5650: Added Xerces to scripting bundle for Jyt...

2018-10-01 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/3042#discussion_r221630928
  
--- Diff: 
nifi-nar-bundles/nifi-scripting-bundle/nifi-scripting-nar/src/main/resources/META-INF/NOTICE
 ---
@@ -73,6 +73,20 @@ The following binary components are provided under the 
Apache Software License v
  The original software and related information is available
  at http://www.jcraft.com/jsch/.
 
+  (ASLv2) Apache Xerces Java
--- End diff --

L looks good.


---


[GitHub] nifi pull request #3041: NIFI-5224 Added SolrClientService.

2018-10-01 Thread MikeThomsen
GitHub user MikeThomsen opened a pull request:

https://github.com/apache/nifi/pull/3041

NIFI-5224 Added SolrClientService.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [ ] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [ ] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MikeThomsen/nifi NIFI-5224

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3041.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3041


commit ca5c881b1d2ceee82bb7d6700191eb209612adbc
Author: Mike Thomsen 
Date:   2018-10-01T13:53:16Z

NIFI-5224 Added SolrClientService.




---


[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-09-29 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r221426131
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
+.name("neo4j-password")
+.displayName("Password")
+.description("Password for Neo4J user")
+.required(true)
+.sensitive(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_ROUND_ROBIN = new 
AllowableValue(LoadBalancingStrategy.ROUND_ROBIN.name(), "Round Robin", "Round 
Robin Strategy");
+
+public static AllowableValue LOAD_BALANCING_STRATEGY_LEAST_CONNECTED = 
new AllowableValue(LoadBalancingStrategy.LEAST_CONNECTED.n

[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-09-29 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r221425925
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
--- End diff --

You should put something in there saying that if authentication is 
disabled, you still need to supply a dummy password.


---


[GitHub] nifi issue #2872: NIFI-5318 Implement NiFi test harness: initial commit of n...

2018-09-25 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2872
  
@peter-gergely-horvath ok. I'm pretty sure that the surefire plugin can be 
disabled in the POM, but manually activated, so we'll need to look at that 
because those tests should be runnable if someone wants to modify the test 
harness and not roll their own test case.


---


[GitHub] nifi pull request #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-09-24 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2956#discussion_r219939777
  
--- Diff: 
nifi-nar-bundles/nifi-neo4j-bundle/nifi-neo4j-processors/src/main/java/org/apache/nifi/processors/neo4j/AbstractNeo4JCypherExecutor.java
 ---
@@ -0,0 +1,281 @@
+/*
+ * 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.nifi.processors.neo4j;
+
+import java.io.File;
+import java.util.concurrent.TimeUnit;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.annotation.lifecycle.OnStopped;
+import org.apache.nifi.components.AllowableValue;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.components.PropertyValue;
+import org.apache.nifi.expression.ExpressionLanguageScope;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.util.StandardValidators;
+import org.neo4j.driver.v1.AuthTokens;
+import org.neo4j.driver.v1.Config;
+import org.neo4j.driver.v1.Config.ConfigBuilder;
+import org.neo4j.driver.v1.Config.LoadBalancingStrategy;
+import org.neo4j.driver.v1.Config.TrustStrategy;
+import org.neo4j.driver.v1.Driver;
+import org.neo4j.driver.v1.GraphDatabase;
+
+/**
+ * Abstract base class for Neo4JCypherExecutor processors
+ */
+abstract class AbstractNeo4JCypherExecutor extends AbstractProcessor {
+
+protected static final PropertyDescriptor QUERY = new 
PropertyDescriptor.Builder()
+.name("neo4J-query")
+.displayName("Neo4J Query")
+.description("Specifies the Neo4j Query.")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.FLOWFILE_ATTRIBUTES)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor CONNECTION_URL = new 
PropertyDescriptor.Builder()
+.name("neo4j-connection-url")
+.displayName("Neo4j Connection URL")
+.description("Neo4J endpoing to connect to.")
+.required(true)
+.defaultValue("bolt://localhost:7687")
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor USERNAME = new 
PropertyDescriptor.Builder()
+.name("neo4j-username")
+.displayName("Username")
+.description("Username for accessing Neo4J")
+.required(true)
+
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
+.addValidator(StandardValidators.NON_BLANK_VALIDATOR)
+.build();
+
+public static final PropertyDescriptor PASSWORD = new 
PropertyDescriptor.Builder()
--- End diff --

Needs a notice on how to use it if authentication is disabled.


---


[GitHub] nifi issue #3025: NIFI-5605 Added UpdateCassandra.

2018-09-24 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3025
  
@zenfenan this is geared toward delete/update operations.


---


[GitHub] nifi pull request #3025: NIFI-5605 Added UpdateCassandra.

2018-09-24 Thread MikeThomsen
GitHub user MikeThomsen opened a pull request:

https://github.com/apache/nifi/pull/3025

NIFI-5605 Added UpdateCassandra.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [ ] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [ ] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MikeThomsen/nifi NIFI-5605

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3025.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3025


commit d9cb1ba54e672952e172241324f895c8dbf0f7f1
Author: Mike Thomsen 
Date:   2018-09-19T01:14:29Z

NIFI-5605 Added UpdateCassandra.




---


[GitHub] nifi issue #3011: NIFI-5333 Added GetMongoRecord.

2018-09-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3011
  
@zenfenan @mattyb149  it's back.


---


[GitHub] nifi issue #3014: NIFI-5614: Update commons-dbcp to commons-dbcp2 for DBCPCo...

2018-09-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3014
  
Checked against postgres 10.5 and worked fine. Merging. Thanks @mattyb149 


---


[GitHub] nifi issue #3014: NIFI-5614: Update commons-dbcp to commons-dbcp2 for DBCPCo...

2018-09-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3014
  
Reviewing...


---


[GitHub] nifi issue #2956: NIFI-5537 Create Neo4J cypher execution processor

2018-09-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2956
  
@mans2singh you're going to need to do a rebase off of master.


---


[GitHub] nifi issue #3015: NIFI-5254 [WIP] Updated to Groovy 2.5.2

2018-09-20 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/3015
  
@joewitt In 2.5.0 they removed the groovy-all fat jar in favor of doing a 
pom import that brings in all of the individual groovy components. Should I 
change the `NOTICE` to say "groovy-all pom and associated Groovy modules" 
(where it currently reads something like "groovy-all 2.4.X jar") or should I 
remove that completely in favor of enumerating each Groovy component?


---


[GitHub] nifi pull request #3015: NIFI-5254 [WIP] Updated to Groovy 2.5.2

2018-09-19 Thread MikeThomsen
GitHub user MikeThomsen opened a pull request:

https://github.com/apache/nifi/pull/3015

NIFI-5254 [WIP] Updated to Groovy 2.5.2

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [ ] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [ ] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MikeThomsen/nifi NIFI-5254

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3015.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3015


commit 248e2656f2216156fe59fcde0a93f6157140dab8
Author: Mike Thomsen 
Date:   2018-09-20T00:06:29Z

NIFI-5254 [WIP] Updated to Groovy 2.5.2




---


[GitHub] nifi issue #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-19 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2820
  
@PrashanthVenkatesan if any of the builds passed, don't worry about it. 
It's the same test, just localized to different locale settings.


---


[GitHub] nifi pull request #3011: NIFI-5333 Added GetMongoRecord.

2018-09-19 Thread MikeThomsen
GitHub user MikeThomsen opened a pull request:

https://github.com/apache/nifi/pull/3011

NIFI-5333 Added GetMongoRecord.

Thank you for submitting a contribution to Apache NiFi.

In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:

### For all changes:
- [ ] Is there a JIRA ticket associated with this PR? Is it referenced 
 in the commit message?

- [ ] Does your PR title start with NIFI- where  is the JIRA number 
you are trying to resolve? Pay particular attention to the hyphen "-" character.

- [ ] Has your PR been rebased against the latest commit within the target 
branch (typically master)?

- [ ] Is your initial contribution a single, squashed commit?

### For code changes:
- [ ] Have you ensured that the full suite of tests is executed via mvn 
-Pcontrib-check clean install at the root nifi folder?
- [ ] Have you written or updated unit tests to verify your changes?
- [ ] If adding new dependencies to the code, are these dependencies 
licensed in a way that is compatible for inclusion under [ASF 
2.0](http://www.apache.org/legal/resolved.html#category-a)? 
- [ ] If applicable, have you updated the LICENSE file, including the main 
LICENSE file under nifi-assembly?
- [ ] If applicable, have you updated the NOTICE file, including the main 
NOTICE file found under nifi-assembly?
- [ ] If adding new Properties, have you added .displayName in addition to 
.name (programmatic access) for each of the new properties?

### For documentation related changes:
- [ ] Have you ensured that format looks appropriate for the output in 
which it is rendered?

### Note:
Please ensure that once the PR is submitted, you check travis-ci for build 
issues and submit an update to your PR as soon as possible.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/MikeThomsen/nifi NIFI-5333

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/nifi/pull/3011.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #3011


commit d9fbe281b2a01c66cea9c4a6523c84c84c303be7
Author: Mike Thomsen 
Date:   2018-09-02T19:58:33Z

NIFI-5333 Added GetMongoRecord.




---


[GitHub] nifi issue #2813: NIFI-5084 Added GenerateRecord processor.

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2813
  
NP.


---


[GitHub] nifi issue #2813: NIFI-5084 Added GenerateRecord processor.

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2813
  
I don't think it's compatible with your use case. What I built, based on 
how I read the ticket, was a processor that uses a Confluent library to 
generate random data based on an Avro schema. So maybe I'm missing something, 
but I think that's different from what you need.


---


[GitHub] nifi issue #2813: NIFI-5084 Added GenerateRecord processor.

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2813
  
Also, the space issue is becoming a serious concern for our binary 
distributions. So now things that aren't really important for core have to be 
weighed against that consideration if you want normal users to have an easy 
time getting to them.


---


[GitHub] nifi issue #2813: NIFI-5084 Added GenerateRecord processor.

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2813
  
@JPercivall 

Here you go:


http://apache-nifi-developer-list.39713.n7.nabble.com/Should-I-withdraw-this-PR-td19475.html

I'm fine with reopening this if you want to take over the code review. 
Folks have been pretty busy and it was starting to get to stale, so I pulled 
the trigger to include it in a larger bundle of testing tools for users.


---


[GitHub] nifi pull request #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2820#discussion_r218569285
  
--- Diff: 
nifi-nar-bundles/nifi-network-bundle/nifi-network-utils/src/main/java/org/apache/nifi/processors/network/parser/Netflowv5Parser.java
 ---
@@ -0,0 +1,141 @@
+/*
+ * 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.nifi.processors.network.parser;
+
+import java.util.OptionalInt;
+import static 
org.apache.nifi.processors.network.parser.util.ConversionUtil.toShort;
+import static 
org.apache.nifi.processors.network.parser.util.ConversionUtil.toInt;
+import static 
org.apache.nifi.processors.network.parser.util.ConversionUtil.toLong;
+import static 
org.apache.nifi.processors.network.parser.util.ConversionUtil.toIPV4;
+
+/**
+ * Networkv5 is Cisco data export format which contains one header and one 
or more flow records. This Parser parses the netflowv5 format. More 
information: @see
+ * https://www.cisco.com/c/en/us/td/docs/net_mgmt/netflow_collection_engine/3-6/user/guide/format.html;>Netflowv5
+ */
+public final class Netflowv5Parser {
+private static final int HEADER_SIZE = 24;
+private static final int RECORD_SIZE = 48;
+
+private static final int SHORT_TYPE = 0;
+private static final int INTEGER_TYPE = 1;
+private static final int LONG_TYPE = 2;
+private static final int IPV4_TYPE = 3;
+
+private static final String headerField[] = { "version", "count", 
"sys_uptime", "unix_secs", "unix_nsecs", "flow_sequence", "engine_type", 
"engine_id", "sampling_interval" };
+private static final String recordField[] = { "srcaddr", "dstaddr", 
"nexthop", "input", "output", "dPkts", "dOctets", "first", "last", "srcport", 
"dstport", "pad1", "tcp_flags", "prot", "tos",
+"src_as", "dst_as", "src_mask", "dst_mask", "pad2" };
+
+private final int portNumber;
+
+private Object headerData[];
+private Object recordData[][];
+
+public Netflowv5Parser(final OptionalInt portNumber) {
+this.portNumber = (portNumber.isPresent()) ? portNumber.getAsInt() 
: 0;
+}
+
+public final int parse(final byte[] buffer) throws Throwable {
+if( !isValid(buffer.length) )
--- End diff --

Curly brackets are missing here. and below with the version check.


---


[GitHub] nifi pull request #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2820#discussion_r218567833
  
--- Diff: 
nifi-nar-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
 ---
@@ -178,7 +178,7 @@ private void generateJSON(final List 
multipleRecords, final ProcessSes
 results.set("port", 
mapper.valueToTree(parser.getPortNumber()));
 results.set("format", mapper.valueToTree("netflowv5"));
 
-recordFlowFile = session.clone(flowFile);
+recordFlowFile = session.create(flowFile);
--- End diff --

Not related to this PR, but for future reference if you choose 
`INPUT_ALLOWED` you'll need to do something like this: `flowFile != null ? 
session.create(flowFile) : session.create()` because `ProcessSession`'s impl 
doesn't handle a null input.


---


[GitHub] nifi pull request #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2820#discussion_r218566840
  
--- Diff: 
nifi-nar-bundles/nifi-network-bundle/nifi-network-processors/pom.xml ---
@@ -0,0 +1,67 @@
+
+
+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.nifi
+   nifi-network-bundle
+   1.8.0-SNAPSHOT
+   
+
+   nifi-network-processors
+   jar
+
+   
+   
+   org.apache.nifi
+   nifi-api
+   
+   
+   org.apache.nifi
+   nifi-utils
+   1.8.0-SNAPSHOT
--- End diff --

No, you should be able to safely remove the version number.


---


[GitHub] nifi issue #2992: NIFI-5510: Introducing PutCassandraRecord processor

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on the issue:

https://github.com/apache/nifi/pull/2992
  
Merged. Thanks for the contribution.


---


[GitHub] nifi pull request #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2820#discussion_r218401785
  
--- Diff: 
nifi-nar-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
 ---
@@ -0,0 +1,258 @@
+/*
+ * 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.nifi.processors.network;
+
+import static 
org.apache.nifi.processors.network.parser.Netflowv5Parser.getHeaderFields;
+import static 
org.apache.nifi.processors.network.parser.Netflowv5Parser.getRecordFields;
+
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.OptionalInt;
+import java.util.Set;
+
+import org.apache.nifi.annotation.behavior.EventDriven;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
+import org.apache.nifi.annotation.behavior.ReadsAttribute;
+import org.apache.nifi.annotation.behavior.ReadsAttributes;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+import org.apache.nifi.annotation.behavior.WritesAttributes;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.io.InputStreamCallback;
+import org.apache.nifi.processor.io.OutputStreamCallback;
+import org.apache.nifi.processors.network.parser.Netflowv5Parser;
+import org.apache.nifi.stream.io.StreamUtils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+@EventDriven
+@SideEffectFree
+@SupportsBatching
+@InputRequirement(Requirement.INPUT_REQUIRED)
+@Tags({ "network", "netflow", "attributes", "datagram", "v5", "packet", 
"byte" })
+@CapabilityDescription("Parses netflowv5 byte ingest and add to NiFi 
flowfile as attributes or JSON content.")
+@ReadsAttributes({ @ReadsAttribute(attribute = "udp.port", description = 
"Optionally read if packets are received from UDP datagrams.") })
+@WritesAttributes({ @WritesAttribute(attribute = "netflowv5.header.*", 
description = "The key and value generated by the parsing of the header 
fields."),
+@WritesAttribute(attribute = "netflowv5.record.*", description = 
"The key and value generated by the parsing of the record fields.") })
+
+public class ParseNetflowv5 extends AbstractProcessor {
+private String destination;
+// Add mapper
+private static final ObjectMapper mapper = new ObjectMapper();
+
+public static final String DESTINATION_CONTENT = "flowfile-content";
+public static final String DESTINATION_ATTRIBUTES = 
"flowfile-attribute";
+public static final PropertyDescriptor FIELDS_DESTINATION = new 
PropertyDescriptor.Builder().name("FIELDS_DESTINATION").di

[GitHub] nifi pull request #2820: NIFI-5327 Adding Netflowv5 protocol parser

2018-09-18 Thread MikeThomsen
Github user MikeThomsen commented on a diff in the pull request:

https://github.com/apache/nifi/pull/2820#discussion_r218401389
  
--- Diff: 
nifi-nar-bundles/nifi-network-bundle/nifi-network-processors/src/main/java/org/apache/nifi/processors/network/ParseNetflowv5.java
 ---
@@ -0,0 +1,258 @@
+/*
+ * 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.nifi.processors.network;
+
+import static 
org.apache.nifi.processors.network.parser.Netflowv5Parser.getHeaderFields;
+import static 
org.apache.nifi.processors.network.parser.Netflowv5Parser.getRecordFields;
+
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.OptionalInt;
+import java.util.Set;
+
+import org.apache.nifi.annotation.behavior.EventDriven;
+import org.apache.nifi.annotation.behavior.InputRequirement;
+import org.apache.nifi.annotation.behavior.InputRequirement.Requirement;
+import org.apache.nifi.annotation.behavior.ReadsAttribute;
+import org.apache.nifi.annotation.behavior.ReadsAttributes;
+import org.apache.nifi.annotation.behavior.SideEffectFree;
+import org.apache.nifi.annotation.behavior.SupportsBatching;
+import org.apache.nifi.annotation.behavior.WritesAttribute;
+import org.apache.nifi.annotation.behavior.WritesAttributes;
+import org.apache.nifi.annotation.documentation.CapabilityDescription;
+import org.apache.nifi.annotation.documentation.Tags;
+import org.apache.nifi.annotation.lifecycle.OnScheduled;
+import org.apache.nifi.components.PropertyDescriptor;
+import org.apache.nifi.flowfile.FlowFile;
+import org.apache.nifi.flowfile.attributes.CoreAttributes;
+import org.apache.nifi.processor.AbstractProcessor;
+import org.apache.nifi.processor.ProcessContext;
+import org.apache.nifi.processor.ProcessSession;
+import org.apache.nifi.processor.Relationship;
+import org.apache.nifi.processor.exception.ProcessException;
+import org.apache.nifi.processor.io.InputStreamCallback;
+import org.apache.nifi.processor.io.OutputStreamCallback;
+import org.apache.nifi.processors.network.parser.Netflowv5Parser;
+import org.apache.nifi.stream.io.StreamUtils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+@EventDriven
+@SideEffectFree
+@SupportsBatching
+@InputRequirement(Requirement.INPUT_REQUIRED)
+@Tags({ "network", "netflow", "attributes", "datagram", "v5", "packet", 
"byte" })
+@CapabilityDescription("Parses netflowv5 byte ingest and add to NiFi 
flowfile as attributes or JSON content.")
+@ReadsAttributes({ @ReadsAttribute(attribute = "udp.port", description = 
"Optionally read if packets are received from UDP datagrams.") })
+@WritesAttributes({ @WritesAttribute(attribute = "netflowv5.header.*", 
description = "The key and value generated by the parsing of the header 
fields."),
+@WritesAttribute(attribute = "netflowv5.record.*", description = 
"The key and value generated by the parsing of the record fields.") })
+
+public class ParseNetflowv5 extends AbstractProcessor {
+private String destination;
+// Add mapper
+private static final ObjectMapper mapper = new ObjectMapper();
+
+public static final String DESTINATION_CONTENT = "flowfile-content";
+public static final String DESTINATION_ATTRIBUTES = 
"flowfile-attribute";
+public static final PropertyDescriptor FIELDS_DESTINATION = new 
PropertyDescriptor.Builder().name("FIELDS_DESTINATION").di

  1   2   3   4   5   6   7   8   9   10   >