[nifi-minifi] Git Push Summary

2018-01-23 Thread aldrin
Repository: nifi-minifi
Updated Tags:  refs/tags/rel/minifi-0.4.0 [created] c8920b5aa


[nifi-minifi] Git Push Summary

2018-01-23 Thread aldrin
Repository: nifi-minifi
Updated Tags:  refs/tags/minifi-0.4.0-RC2 [created] fc7904daf


[nifi-minifi-cpp] Git Push Summary

2018-01-23 Thread aldrin
Repository: nifi-minifi-cpp
Updated Tags:  refs/tags/minifi-cpp-0.4.0-RC1 [created] c05d46775


[nifi-minifi-cpp] Git Push Summary

2018-01-23 Thread aldrin
Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/MINIFICPP-379-RC1 [created] c05d46775


svn commit: r24404 - /dev/nifi/nifi-minifi-cpp/0.4.0/

2018-01-23 Thread aldrin
Author: aldrin
Date: Wed Jan 24 06:01:21 2018
New Revision: 24404

Log:
MINIFICPP-379 Providing RC1 artifacts for release vote.

Added:
dev/nifi/nifi-minifi-cpp/0.4.0/
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz   
(with props)
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.asc
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.md5
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha1

dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha256
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz   
(with props)
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz.asc
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz.md5
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz.sha1

dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz.sha256
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-rhel-bin.tar.gz   
(with props)
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-rhel-bin.tar.gz.asc
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-rhel-bin.tar.gz.md5
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-rhel-bin.tar.gz.sha1
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-rhel-bin.tar.gz.sha256
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-source.tar.gz   (with 
props)
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-source.tar.gz.asc
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-source.tar.gz.md5
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-source.tar.gz.sha1
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-source.tar.gz.sha256

Added: dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz
==
Binary file - no diff available.

Propchange: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz
--
svn:mime-type = application/octet-stream

Added: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.asc
==
--- dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.asc 
(added)
+++ dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.asc 
Wed Jan 24 06:01:21 2018
@@ -0,0 +1,16 @@
+-BEGIN PGP SIGNATURE-
+
+iQIzBAABCgAdFiEEIA27yI4RAA3o53OaUxrrqkz+XQAFAlpoIJ8ACgkQUxrrqkz+
+XQAebg/9HCtNxmQ/uLz2b8D9mgHoVC1PsjMhuoRwC1jC/gUCHm9CQfyZDW2zr4IV
+i4YvTJDPXmgLt8l9yuPFZZXfiXFV0RAtx7gDAfRLR9OP1F5AvnRrsrmokFZBhpe9
+Gcb07Ixd/3JjTZXuG27IHxUpalqksuu/5i9pH3PZgCOI6aJ3hNnp8U7lvzITJ6qL
+lom9MxoovV21z04ycfU5OcpbbMIUDXYX6AZbJ3OKUGSs4Msww6m1VyJ3AnwAtb9S
+ssYkwZjfYk4W2vWt3CiodbVGQLWl29AukYoIWHx9TIkbjejKXzUXt3gy42jjBCnB
+tkfpfGkIhSbVLx0Iqa12ToQwLwYTHzvp/7eDVP6A5MC8GL+/17PeZb+UGj2E0B+S
+EY6oXvN6IyXDLeTT7WYP0EQRyfupQkk3LSk0tITytE1CldVcd44Hxn5e7CnwzCOs
+koVh+ZLstxv/ZfodkwSBBTOXU5QdLjvSwiy6P2L9FqZghUTM5QQjodqN90xOopPe
+mjwxSD2d17k0L0vSZvpsszZFMv2YkzVWenMxqslbKYMig+y4wmba8P4npJym/ku6
+PwA1U65FMIl0AkZmbb8AlZ/WHwDo7e0lrguTX1vWrJP7+tZM2Cpc0rQsXOb2nnpC
+cR9+1/JK1+Fbedhm4HyU0hvaFvS/jdwicr30VBnBdyeZ+CzdI0k=
+=rkri
+-END PGP SIGNATURE-

Added: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.md5
==
--- dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.md5 
(added)
+++ dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.md5 
Wed Jan 24 06:01:21 2018
@@ -0,0 +1 @@
+2f0e41bdae7616428219d34494d6ec6d

Added: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha1
==
--- dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha1 
(added)
+++ dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha1 
Wed Jan 24 06:01:21 2018
@@ -0,0 +1 @@
+47f0c3f71e3a8974d59ca19de6eb840ea9d65963

Added: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha256
==
--- 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha256 
(added)
+++ 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-darwin-bin.tar.gz.sha256 
Wed Jan 24 06:01:21 2018
@@ -0,0 +1 @@
+48f1e58edbb9e137a708a7c8c0a8e470fea6b5736c419adfcb01b0479ba3c25f

Added: dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz
==
Binary file - no diff available.

Propchange: 
dev/nifi/nifi-minifi-cpp/0.4.0/nifi-minifi-cpp-0.4.0-debian-bin.tar.gz

nifi-minifi-cpp git commit: MINIFICPP-366 Added docs for expression language

2018-01-23 Thread aldrin
Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 19881b63b -> c05d46775


MINIFICPP-366 Added docs for expression language

This closes #249.

Signed-off-by: Aldrin Piri 


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/c05d4677
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/c05d4677
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/c05d4677

Branch: refs/heads/master
Commit: c05d467758c861f38a00c6ac5f64f75d6ca0ce05
Parents: 19881b6
Author: Andrew I. Christianson 
Authored: Mon Jan 22 11:44:53 2018 -0500
Committer: Aldrin Piri 
Committed: Tue Jan 23 20:43:31 2018 -0500

--
 EXPRESSIONS.md | 754 
 README.md  |   6 +-
 2 files changed, 759 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/c05d4677/EXPRESSIONS.md
--
diff --git a/EXPRESSIONS.md b/EXPRESSIONS.md
new file mode 100644
index 000..a0a7df4
--- /dev/null
+++ b/EXPRESSIONS.md
@@ -0,0 +1,754 @@
+
+# MiNiFi - C++ Expression Language
+
+Apache NiFi - MiNiFi - C++ supports a subset of the [Apache NiFi Expression
+Language](https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html)
+(EL).  EL is a tiny DSL enabling processor property values to be computed
+dynamically according to contextual information such as FlowFile attributes.
+Dynamic values may be manipulated by a number of functions supported by EL,
+including boolean logic, string manipulation, encoding/decoding, searching,
+mathematical operators, date manipulation, type coercion, and more.
+Processors/properties supporting EL are marked in the [processors
+documentation](PROCESSORS.md).
+
+## Overview
+
+All data in Apache NiFi is represented by an abstraction called a FlowFile. A
+FlowFile comprises two major pieces: content and attributes. The content
+portion of the FlowFile represents the data on which to operate. For instance,
+if a file is picked up from a local file system using the GetFile Processor,
+the contents of the file will become the contents of the FlowFile.
+
+The attributes portion of the FlowFile represents information about the data
+itself, or metadata. Attributes are key-value pairs that represent what is
+known about the data as well as information that is useful for routing and
+processing the data appropriately. Keeping with the example of a file that is
+picked up from a local file system, the FlowFile would have an attribute called
+`filename` that reflected the name of the file on the file system.
+Additionally, the FlowFile will have a `path` attribute that reflects the
+directory on the file system that this file lived in. The FlowFile will also
+have an attribute named `uuid`, which is a unique identifier for this FlowFile.
+For complete listing of the core attributes check out the FlowFile section of
+the Apache NiFi Developer’s Guide.
+
+However, placing these attributes on a FlowFile do not provide much benefit if
+the user is unable to make use of them. The NiFi Expression Language provides
+the ability to reference these attributes, compare them to other values, and
+manipulate their values.
+
+## Structure of a NiFi Expression
+
+The NiFi Expression Language always begins with the start delimiter `${` and
+ends with the end delimiter `}`. Between the start and end delimiters is the
+text of the Expression itself. In its most basic form, the Expression can
+consist of just an attribute name. For example, `${filename}` will return the
+value of the `filename` attribute.
+
+In a slightly more complex example, we can instead return a manipulation of
+this value. We can, for example, return an all upper-case version of the
+filename by calling the `toUpper` function: `${filename:toUpper()}`. In this
+case, we reference the `filename` attribute and then manipulate this value by
+using the `toUpper` function. A function call consists of 5 elements. First,
+there is a function call delimiter `:`. Second is the name of the function --in
+this case, `toUpper`. Next is an open parenthesis (`(`), followed by the
+function arguments.  The arguments necessary are dependent upon which function
+is being called. In this example, we are using the `toUpper` function, which
+does not have any arguments, so this element is omitted. Finally, the closing
+parenthesis (`)`) indicates the end of the function call. There are many
+different functions that are supported by the Expression Language to achieve
+many different goals. Some functions provide String (text) manipulation, such
+as the `toUpper` function.  Others, such as the equals and matches functions,

nifi-minifi-cpp git commit: MINIFICPP-380 Added missing toLower EL function

2018-01-23 Thread phrocker
Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 465ae42d8 -> 19881b63b


MINIFICPP-380 Added missing toLower EL function

This closes #250.

Signed-off-by: Marc Parisi 


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/19881b63
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/19881b63
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/19881b63

Branch: refs/heads/master
Commit: 19881b63b570331dfb93cdec47db263df0dc62c3
Parents: 465ae42
Author: Andrew I. Christianson 
Authored: Tue Jan 23 15:12:38 2018 -0500
Committer: Marc Parisi 
Committed: Tue Jan 23 16:47:08 2018 -0500

--
 extensions/expression-language/Expression.cpp   | 8 
 .../expression-language-tests/ExpressionLanguageTests.cpp   | 9 +
 2 files changed, 17 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/19881b63/extensions/expression-language/Expression.cpp
--
diff --git a/extensions/expression-language/Expression.cpp 
b/extensions/expression-language/Expression.cpp
index 2fdc541..de737ed 100644
--- a/extensions/expression-language/Expression.cpp
+++ b/extensions/expression-language/Expression.cpp
@@ -67,6 +67,12 @@ std::string expr_toUpper(const std::vector 
) {
   return result;
 }
 
+std::string expr_toLower(const std::vector ) {
+  std::string result = args[0];
+  std::transform(result.begin(), result.end(), result.begin(), ::tolower);
+  return result;
+}
+
 std::string expr_substring(const std::vector ) {
   if (args.size() < 3) {
 return args[0].substr(std::stoul(args[1]));
@@ -306,6 +312,8 @@ Expression make_dynamic_function(const std::string 
_name,
 return make_dynamic_function_incomplete(function_name, 
args, 0);
   } else if (function_name == "toUpper") {
 return make_dynamic_function_incomplete(function_name, args, 
1);
+  } else if (function_name == "toLower") {
+return make_dynamic_function_incomplete(function_name, args, 
1);
   } else if (function_name == "substring") {
 return make_dynamic_function_incomplete(function_name, 
args, 2);
   } else if (function_name == "substringBefore") {

http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/19881b63/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
--
diff --git 
a/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp 
b/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
index 27d3304..d6ab607 100644
--- a/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
+++ b/libminifi/test/expression-language-tests/ExpressionLanguageTests.cpp
@@ -150,6 +150,15 @@ TEST_CASE("ToUpper function w/o whitespace", 
"[expressionLanguageTestToUpperFunc
   REQUIRE("text_before__FLOW_A_ATTR_VALUE_A__text_after" == 
expr({flow_file_a}));
 }
 
+TEST_CASE("ToLower function", "[expressionLanguageTestToLowerFunction]") {  // 
NOLINT
+  auto expr = expression::compile(R"(text_before${
+   attr_a : toLower()
+ }text_after)");
+  auto flow_file_a = std::make_shared();
+  flow_file_a->addAttribute("attr_a", "__FLOW_A_ATTR_VALUE_A__");
+  REQUIRE("text_before__flow_a_attr_value_a__text_after" == 
expr({flow_file_a}));
+}
+
 TEST_CASE("GetFile PutFile dynamic attribute", 
"[expressionLanguageTestGetFilePutFileDynamicAttribute]") {  // NOLINT
   TestController testController;
 



nifi-minifi-cpp git commit: MINIFICPP-378: Detach new threads if daemon threads is true

2018-01-23 Thread aldrin
Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 994ab3d29 -> 465ae42d8


MINIFICPP-378: Detach new threads if daemon threads is true

Resolve issue with starving single tasks on reduced thread pool

This closes #247.

Signed-off-by: Aldrin Piri 


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/465ae42d
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/465ae42d
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/465ae42d

Branch: refs/heads/master
Commit: 465ae42d8dbce74dc9d4de85b220ed56fe6180c3
Parents: 994ab3d
Author: Marc Parisi 
Authored: Mon Jan 22 11:45:54 2018 -0500
Committer: Aldrin Piri 
Committed: Tue Jan 23 16:41:44 2018 -0500

--
 libminifi/include/utils/ThreadPool.h | 100 +-
 1 file changed, 57 insertions(+), 43 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/465ae42d/libminifi/include/utils/ThreadPool.h
--
diff --git a/libminifi/include/utils/ThreadPool.h 
b/libminifi/include/utils/ThreadPool.h
index f04e319..9fc47f5 100644
--- a/libminifi/include/utils/ThreadPool.h
+++ b/libminifi/include/utils/ThreadPool.h
@@ -220,6 +220,7 @@ class ThreadPool {
 running_(false),
 controller_service_provider_(controller_service_provider) {
 current_workers_ = 0;
+task_count_ = 0;
 thread_manager_ = nullptr;
   }
 
@@ -232,6 +233,7 @@ class ThreadPool {
 
controller_service_provider_(std::move(other.controller_service_provider_)),
 thread_manager_(std::move(other.thread_manager_)) {
 current_workers_ = 0;
+task_count_ = 0;
   }
 
   ~ThreadPool() {
@@ -339,6 +341,7 @@ class ThreadPool {
   int max_worker_threads_;
 // current worker tasks.
   std::atomic current_workers_;
+  std::atomic task_count_;
 // thread queue
   std::vector thread_queue_;
 // manager thread
@@ -383,7 +386,6 @@ class ThreadPool {
 
 template
 bool ThreadPool::execute(Worker &, std::future ) {
-
   {
 std::unique_lock lock(worker_queue_mutex_);
 task_status_[task.getIdentifier()] = true;
@@ -393,6 +395,9 @@ bool ThreadPool::execute(Worker &, 
std::future ) {
   if (running_) {
 tasks_available_.notify_one();
   }
+
+  task_count_++;
+
   return enqueued;
 }
 
@@ -428,6 +433,9 @@ void ThreadPool::manageWorkers() {
   std::unique_lock lock(worker_queue_mutex_);
   auto worker_thread = std::make_shared();
   worker_thread->thread_ = 
createThread(std::bind(::run_tasks, this, worker_thread));
+  if (daemon_threads_) {
+worker_thread->thread_.detach();
+  }
   thread_queue_.push_back(worker_thread);
   current_workers_++;
 }
@@ -456,7 +464,6 @@ void ThreadPool::run_tasks(std::shared_ptr 
thread) {
   uint64_t wait_decay_ = 0;
   uint64_t yield_backoff = 10;  // start at 10 ms
   while (running_.load()) {
-
 if (UNLIKELY(thread_reduction_count_ > 0)) {
   if (--thread_reduction_count_ >= 0) {
 deceased_thread_queue_.enqueue(thread);
@@ -493,66 +500,73 @@ void 
ThreadPool::run_tasks(std::shared_ptr thread) {
   yield_backoff = 10;
 }
 Worker task;
-if (!worker_queue_.try_dequeue(task)) {
-  std::unique_lock lock(worker_queue_mutex_);
-  if (worker_priority_queue_.size() > 0) {
-// this is safe as we are going to immediately pop the queue
-while (!worker_priority_queue_.empty()) {
-  task = 
std::move(const_cast(worker_priority_queue_.top()));
-  worker_priority_queue_.pop();
-  worker_queue_.enqueue(std::move(task));
-  continue;
-}
 
-  }
-  tasks_available_.wait_for(lock, waitperiod);
-  continue;
-} else {
-  std::unique_lock lock(worker_queue_mutex_);
-  if (!task_status_[task.getIdentifier()]) {
-continue;
-  }
-}
+bool prioritized_task = false;
 
-bool wait_to_run = false;
-if (task.getTimeSlice() > 1) {
-  double wt = (double) task.getWaitTime();
-  auto now = std::chrono::system_clock::now().time_since_epoch();
-  auto ms = 
std::chrono::duration_cast(now).count();
-  // if our differential is < 10% of the wait time we will not put the 
task into a wait state
-  // since requeuing will break the time slice contract.
-  if ((double) task.getTimeSlice() > ms && ((double) (task.getTimeSlice() 
- ms)) > (wt * .10)) {
-wait_to_run = true;
-  }
-}
-// if we have to wait we re-queue the worker.
-if (wait_to_run) {
-  {
+if (!prioritized_task) {
+  if (!worker_queue_.try_dequeue(task)) {
+std::unique_lock 

nifi-minifi-cpp git commit: MINIFICPP-377: Resolve log level of GPS Test

2018-01-23 Thread aldrin
Repository: nifi-minifi-cpp
Updated Branches:
  refs/heads/master 6a73bf616 -> 994ab3d29


MINIFICPP-377: Resolve log level of GPS Test

This closes #248.

Signed-off-by: Aldrin Piri 


Project: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/commit/994ab3d2
Tree: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/tree/994ab3d2
Diff: http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/diff/994ab3d2

Branch: refs/heads/master
Commit: 994ab3d29cab921542acc2e6cc0ddfa3dfd42acd
Parents: 6a73bf6
Author: Marc Parisi 
Authored: Tue Jan 23 06:44:56 2018 -0500
Committer: Aldrin Piri 
Committed: Tue Jan 23 13:27:04 2018 -0500

--
 libminifi/test/gps-tests/GPSTests.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-minifi-cpp/blob/994ab3d2/libminifi/test/gps-tests/GPSTests.cpp
--
diff --git a/libminifi/test/gps-tests/GPSTests.cpp 
b/libminifi/test/gps-tests/GPSTests.cpp
index db34def..185f99a 100644
--- a/libminifi/test/gps-tests/GPSTests.cpp
+++ b/libminifi/test/gps-tests/GPSTests.cpp
@@ -42,7 +42,7 @@ TEST_CASE("GPSD Create", "[gpsdtest1]") {
   TestController testController;
   core::ClassLoader::getDefaultClassLoader().registerResource("", 
"createGPSFactory");
 
-  LogTestController::getInstance().setDebug();
+  LogTestController::getInstance().setTrace();
 
   std::shared_ptr plan = testController.createPlan();
 



svn commit: r1822034 - /nifi/site/trunk/security.html

2018-01-23 Thread alopresto
Author: alopresto
Date: Tue Jan 23 18:23:21 2018
New Revision: 1822034

URL: http://svn.apache.org/viewvc?rev=1822034=rev
Log:
Added CVE-2017-12632 and CVE-2017-15697 with additional information on 
CVE-2017-12623. 

Modified:
nifi/site/trunk/security.html

Modified: nifi/site/trunk/security.html
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/security.html?rev=1822034=1822033=1822034=diff
==
--- nifi/site/trunk/security.html (original)
+++ nifi/site/trunk/security.html Tue Jan 23 18:23:21 2018
@@ -150,22 +150,58 @@
 
 
 
+Fixed in Apache NiFi 1.5.0
+
+
+
+
+CVE-2017-12632: Apache NiFi host 
header poisoning issue
+Severity: Medium
+Versions Affected:
+
+Apache NiFi 0.1.0 - 1.4.0
+
+
+Description: A malicious host header in an incoming HTTP request 
could cause NiFi to load resources from an external server. 
+Mitigation: The fix to sanitize host headers and compare to a 
controlled whitelist was applied on the Apache NiFi 1.5.0 release. Users 
running a prior 1.x release should upgrade to the appropriate release. 
+Credit: This issue was discovered by Mike Cole. 
+Released: January 12, 2018
+
+
+
+
+CVE-2017-15697: Apache NiFi XSS 
issue in context path handling
+Severity: Medium
+Versions Affected:
+
+Apache NiFi 1.0.0 - 1.4.0
+
+
+Description: A malicious X-ProxyContextPath or 
X-Forwarded-Context header containing external resources or 
embedded code could cause remote code execution. 
+Mitigation: The fix to properly handle these headers was applied on 
the Apache NiFi 1.5.0 release. Users running a prior 1.x release should upgrade 
to the appropriate release. 
+Credit: This issue was discovered by Andy LoPresto. 
+Released: January 12, 2018
+
+
+
+
+
 Fixed in Apache NiFi 1.4.0
 
 
 
 
 CVE-2017-12623: Apache NiFi XXE issue in 
template XML upload
-Severity: Medium
+Severity: Medium Important
 Versions Affected:
 
 Apache NiFi 1.0.0 - 1.3.0
 
 
-Description: An authorized user could upload a template which 
contained malicious code and accessed sensitive files via an XML External 
Entity (XXE) attack. 
+Description: An authorized user Any authenticated user 
(valid client certificate but without ACL permissions) could upload a template 
which contained malicious code and accessed sensitive files via an XML External 
Entity (XXE) attack. 
 Mitigation: The fix to properly handle XML External Entities was 
applied on the Apache NiFi 1.4.0 release. Users running a prior 1.x release 
should upgrade to the appropriate release. 
-Credit: This issue was discovered by Paweł Gocyla. 
-Released: October 2, 2017
+Credit: This issue was discovered by Paweł Gocyla and further 
information was provided by Mike Cole. 
+Released: October 2, 2017 (Updated January 23, 2018)
 
 
 




nifi-registry git commit: NIFIREG-125 Adding bucket id and item id to droplet details in grid list

2018-01-23 Thread scottyaslan
Repository: nifi-registry
Updated Branches:
  refs/heads/master f87b927e5 -> f93859a62


NIFIREG-125 Adding bucket id and item id to droplet details in grid list

Signed-off-by: Scott Aslan 

This closed #94


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

Branch: refs/heads/master
Commit: f93859a6240c232d562cac1288e9ea3f1e027ccd
Parents: f87b927
Author: Bryan Bende 
Authored: Tue Jan 23 10:19:34 2018 -0500
Committer: Scott Aslan 
Committed: Tue Jan 23 12:47:30 2018 -0500

--
 .../registry/nf-registry-grid-list-viewer.html  | 61 +++-
 .../explorer/grid-list/_structureElements.scss  | 14 -
 2 files changed, 46 insertions(+), 29 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-registry/blob/f93859a6/nifi-registry-web-ui/src/main/webapp/components/explorer/grid-list/registry/nf-registry-grid-list-viewer.html
--
diff --git 
a/nifi-registry-web-ui/src/main/webapp/components/explorer/grid-list/registry/nf-registry-grid-list-viewer.html
 
b/nifi-registry-web-ui/src/main/webapp/components/explorer/grid-list/registry/nf-registry-grid-list-viewer.html
index 65f90fe..d077016 100644
--- 
a/nifi-registry-web-ui/src/main/webapp/components/explorer/grid-list/registry/nf-registry-grid-list-viewer.html
+++ 
b/nifi-registry-web-ui/src/main/webapp/components/explorer/grid-list/registry/nf-registry-grid-list-viewer.html
@@ -71,40 +71,45 @@ limitations under the License.
 
 
 
-
-Description
+
+
+Bucket 
Identifier
+{{droplet.bucketIdentifier}}
+
+
+{{droplet.type}} 
Identifier
+{{droplet.identifier}}
+
+
+Description
+{{droplet.description}}
+No description 
specified
+
 
 
 Change Log
-
+
 
 
-
-
-
-
-{{droplet.description}}
-No description 
specified
-
-
-
-
-
-
-{{snapshotMeta.comments}}
-
-
-No comments specified
-
-
-{{(snapshotMeta.timestamp/1000 | 
amFromUnix) | amDateFormat:'MMM-DD-'}} at {{(snapshotMeta.timestamp/1000 | 
amFromUnix) | amDateFormat:'h:mm A'}}
+
+
+
+
+
+{{snapshotMeta.comments}}
+
+
+No comments specified
+
+
+{{(snapshotMeta.timestamp/1000 
| amFromUnix) | amDateFormat:'MMM-DD-'}} at {{(snapshotMeta.timestamp/1000 
| amFromUnix) | amDateFormat:'h:mm A'}}
+
 
-
-
-
+
+
+
 
 
 


nifi-registry git commit: NIFIREG-123 Made external links open in new windows

2018-01-23 Thread kdoran
Repository: nifi-registry
Updated Branches:
  refs/heads/master e3e24c10b -> f87b927e5


NIFIREG-123 Made external links open in new windows

This closes #93.

Signed-off-by: Kevin Doran 


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

Branch: refs/heads/master
Commit: f87b927e53a1e72808e0ac8dd5bff344f0beeac0
Parents: e3e24c1
Author: Andrew Lim 
Authored: Mon Jan 22 15:26:37 2018 -0500
Committer: Kevin Doran 
Committed: Tue Jan 23 11:21:25 2018 -0500

--
 .../src/main/asciidoc/administration-guide.adoc   |  5 +++--
 .../src/main/asciidoc/getting-started.adoc| 14 --
 2 files changed, 11 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-registry/blob/f87b927e/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
--
diff --git a/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc 
b/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
index bc804e1..93864af 100644
--- a/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
+++ b/nifi-registry-docs/src/main/asciidoc/administration-guide.adoc
@@ -17,6 +17,7 @@
 = Apache NiFi Registry System Administrator's Guide
 Apache NiFi Team 
 :homepage: http://nifi.apache.org
+:linkattrs:
 
 == System Requirements
 
@@ -769,9 +770,9 @@ See <> for complete documentation.
 * Kerberos is case-sensitive in many places and the error messages (or lack 
thereof) may not be sufficiently explanatory.
   Check the case sensitivity of the service principal in your configuration 
files. The convention is `HTTP/fully.qualified.domain@REALM`.
 * Browsers have varying levels of restriction when dealing with SPNEGO 
negotiations.
-  Some will provide the local Kerberos ticket to any domain that requests it, 
while others whitelist the trusted domains. See 
link:http://docs.spring.io/autorepo/docs/spring-security-kerberos/1.0.2.BUILD-SNAPSHOT/reference/htmlsingle/#browserspnegoconfig[Spring
 Security Kerberos - Reference Documentation: Appendix E. Configure browsers 
for SPNEGO Negotiation] for common browsers.
+  Some will provide the local Kerberos ticket to any domain that requests it, 
while others whitelist the trusted domains. See 
link:http://docs.spring.io/autorepo/docs/spring-security-kerberos/1.0.2.BUILD-SNAPSHOT/reference/htmlsingle/#browserspnegoconfig[Spring
 Security Kerberos - Reference Documentation: Appendix E. Configure browsers 
for SPNEGO Negotiation^] for common browsers.
 * Some browsers (legacy IE) do not support recent encryption algorithms such 
as AES, and are restricted to legacy algorithms (DES). This should be noted 
when generating keytabs.
-* The KDC must be configured and a service principal defined for NiFi and a 
keytab exported. Comprehensive instructions for Kerberos server configuration 
and administration are beyond the scope of this document (see 
link:http://web.mit.edu/kerberos/krb5-current/doc/admin/index.html[MIT Kerberos 
Admin Guide]), but an example is below:
+* The KDC must be configured and a service principal defined for NiFi and a 
keytab exported. Comprehensive instructions for Kerberos server configuration 
and administration are beyond the scope of this document (see 
link:http://web.mit.edu/kerberos/krb5-current/doc/admin/index.html[MIT Kerberos 
Admin Guide^]), but an example is below:
 * Kerberos tickets may use AES encryption with keys up to 256-bits in length, 
and therefore unlimited strength encryption policies may be required for the 
Jave Runtime Environment (JRE) used for NiFi Registry when Kerberos SPNEGO is 
configured.
 
 Adding a service principal for a server at `nifi.nifi.apache.org` and 
exporting the keytab from the KDC:

http://git-wip-us.apache.org/repos/asf/nifi-registry/blob/f87b927e/nifi-registry-docs/src/main/asciidoc/getting-started.adoc
--
diff --git a/nifi-registry-docs/src/main/asciidoc/getting-started.adoc 
b/nifi-registry-docs/src/main/asciidoc/getting-started.adoc
index fef0132..180e58a 100644
--- a/nifi-registry-docs/src/main/asciidoc/getting-started.adoc
+++ b/nifi-registry-docs/src/main/asciidoc/getting-started.adoc
@@ -17,10 +17,11 @@
 = Getting Started with Apache NiFi Registry
 Apache NiFi Team 
 :homepage: http://nifi.apache.org
+:linkattrs:
 
 
 == Who is This Guide For?
-This guide is written for users who have basic experience with NiFi but have 
little familiarity with the NiFi 

nifi-site git commit: NIFI-4751 updating downloads for NiFi 1.5.0 release.

2018-01-23 Thread aldrin
Repository: nifi-site
Updated Branches:
  refs/heads/master 3872be2bd -> 2cf8495bf


NIFI-4751 updating downloads for NiFi 1.5.0 release.


Project: http://git-wip-us.apache.org/repos/asf/nifi-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/nifi-site/commit/2cf8495b
Tree: http://git-wip-us.apache.org/repos/asf/nifi-site/tree/2cf8495b
Diff: http://git-wip-us.apache.org/repos/asf/nifi-site/diff/2cf8495b

Branch: refs/heads/master
Commit: 2cf8495bfe744bb15c59400191d7e77dce9cea54
Parents: 3872be2
Author: Aldrin Piri 
Authored: Tue Jan 23 09:44:54 2018 -0500
Committer: Aldrin Piri 
Committed: Tue Jan 23 09:44:54 2018 -0500

--
 src/pages/html/download.hbs | 28 ++--
 1 file changed, 14 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/nifi-site/blob/2cf8495b/src/pages/html/download.hbs
--
diff --git a/src/pages/html/download.hbs b/src/pages/html/download.hbs
index f026807..631031c 100644
--- a/src/pages/html/download.hbs
+++ b/src/pages/html/download.hbs
@@ -23,52 +23,52 @@ title: Apache NiFi Downloads
 
 Releases
 
-1.4.0
+1.5.0
 
 
 Sources:
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-source-release.zip;>nifi-1.4.0-source-release.zip
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-source-release.zip;>nifi-1.5.0-source-release.zip
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.asc;>asc,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.md5;>md5,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.sha256;>sha256
 )
 
 
 
 Binaries
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-bin.tar.gz;>nifi-1.4.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-bin.tar.gz;>nifi-1.5.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.sha256;>sha256
 )
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-bin.zip;>nifi-1.4.0-bin.zip
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.asc;>asc, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.md5;>md5, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.sha1;>sha1, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-bin.zip;>nifi-1.5.0-bin.zip
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.asc;>asc, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.md5;>md5, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.sha1;>sha1, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.sha256;>sha256
 )
 
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz;>nifi-toolkit-1.4.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz;>nifi-toolkit-1.5.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz.asc;>asc,
 

svn commit: r1822010 - /nifi/site/trunk/download.html

2018-01-23 Thread aldrin
Author: aldrin
Date: Tue Jan 23 14:45:52 2018
New Revision: 1822010

URL: http://svn.apache.org/viewvc?rev=1822010=rev
Log:
NIFI-4751 Adding 1.5.0 links back to downloads

Modified:
nifi/site/trunk/download.html

Modified: nifi/site/trunk/download.html
URL: 
http://svn.apache.org/viewvc/nifi/site/trunk/download.html?rev=1822010=1822009=1822010=diff
==
--- nifi/site/trunk/download.html (original)
+++ nifi/site/trunk/download.html Tue Jan 23 14:45:52 2018
@@ -126,52 +126,52 @@
 
 Releases
 
-1.4.0
+1.5.0
 
 
 Sources:
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-source-release.zip;>nifi-1.4.0-source-release.zip
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-source-release.zip.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-source-release.zip;>nifi-1.5.0-source-release.zip
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.asc;>asc,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.md5;>md5,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-source-release.zip.sha256;>sha256
 )
 
 
 
 Binaries
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-bin.tar.gz;>nifi-1.4.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.tar.gz.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-bin.tar.gz;>nifi-1.5.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.tar.gz.sha256;>sha256
 )
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-1.4.0-bin.zip;>nifi-1.4.0-bin.zip
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.asc;>asc, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.md5;>md5, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.sha1;>sha1, 
https://www.apache.org/dist/nifi/1.4.0/nifi-1.4.0-bin.zip.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-1.5.0-bin.zip;>nifi-1.5.0-bin.zip
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.asc;>asc, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.md5;>md5, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.sha1;>sha1, 
https://www.apache.org/dist/nifi/1.5.0/nifi-1.5.0-bin.zip.sha256;>sha256
 )
 
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz;>nifi-toolkit-1.4.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.tar.gz.sha256;>sha256
 )
+https://www.apache.org/dyn/closer.lua?path=/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz;>nifi-toolkit-1.5.0-bin.tar.gz
 ( https://www.apache.org/dist/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz.asc;>asc,
 https://www.apache.org/dist/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz.md5;>md5,
 https://www.apache.org/dist/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.5.0/nifi-toolkit-1.5.0-bin.tar.gz.sha256;>sha256
 )
 
-https://www.apache.org/dyn/closer.lua?path=/nifi/1.4.0/nifi-toolkit-1.4.0-bin.zip;>nifi-toolkit-1.4.0-bin.zip
 ( https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.zip.asc;>asc,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.zip.md5;>md5,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.zip.sha1;>sha1,
 https://www.apache.org/dist/nifi/1.4.0/nifi-toolkit-1.4.0-bin.zip.sha256;>sha256
 )
+

[jira] [Resolved] (MINIFI-426) Release MiNiFi 0.4.0

2018-01-23 Thread Aldrin Piri (JIRA)

 [ 
https://issues.apache.org/jira/browse/MINIFI-426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aldrin Piri resolved MINIFI-426.

Resolution: Done

> Release MiNiFi 0.4.0
> 
>
> Key: MINIFI-426
> URL: https://issues.apache.org/jira/browse/MINIFI-426
> Project: Apache NiFi MiNiFi
>  Issue Type: Task
>Reporter: Aldrin Piri
>Assignee: Aldrin Piri
>Priority: Major
>
> This is a ticket to track the release of MiNiFI 0.4.0



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


nifi git commit: NIFI-4773: Moved DB Fetch processors' connection code from setup to onTrigger

2018-01-23 Thread pvillard
Repository: nifi
Updated Branches:
  refs/heads/master 6f282c684 -> 84848f7cb


NIFI-4773: Moved DB Fetch processors' connection code from setup to onTrigger

Signed-off-by: Pierre Villard 

This closes #2422.


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

Branch: refs/heads/master
Commit: 84848f7cbb55fe6b6ad7d1c22166cef6d5a0b39c
Parents: 6f282c6
Author: Matthew Burgess 
Authored: Mon Jan 22 13:42:35 2018 -0500
Committer: Pierre Villard 
Committed: Tue Jan 23 15:10:34 2018 +0100

--
 .../AbstractDatabaseFetchProcessor.java | 85 
 .../processors/standard/GenerateTableFetch.java |  7 +-
 .../processors/standard/QueryDatabaseTable.java |  9 ++-
 3 files changed, 61 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/nifi/blob/84848f7c/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
--
diff --git 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
index fa2a86e..2145929 100644
--- 
a/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
+++ 
b/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/AbstractDatabaseFetchProcessor.java
@@ -50,6 +50,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.ServiceLoader;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import static java.sql.Types.ARRAY;
 import static java.sql.Types.BIGINT;
@@ -176,6 +177,10 @@ public abstract class AbstractDatabaseFetchProcessor 
extends AbstractSessionFact
 // pre-fetched when the processor is scheduled, rather than having to 
populate them on-the-fly.
 protected volatile boolean isDynamicMaxValues = false;
 
+// This value is cleared when the processor is scheduled, and set to true 
after setup() is called and completes successfully. This enables
+// the setup logic to be performed in onTrigger() versus OnScheduled to 
avoid any issues with DB connection when first scheduled to run.
+protected final AtomicBoolean setupComplete = new AtomicBoolean(false);
+
 private static SimpleDateFormat TIME_TYPE_FORMAT = new 
SimpleDateFormat("HH:mm:ss.SSS");
 
 // A Map (name to value) of initial maximum-value properties, filled at 
schedule-time and used at trigger-time
@@ -222,49 +227,61 @@ public abstract class AbstractDatabaseFetchProcessor 
extends AbstractSessionFact
 return super.customValidate(validationContext);
 }
 
+@Override
+public void onPropertyModified(PropertyDescriptor descriptor, String 
oldValue, String newValue) {
+// If the max-value columns have changed, we need to re-fetch the 
column info from the DB
+if (MAX_VALUE_COLUMN_NAMES.equals(descriptor) && newValue != null && 
!newValue.equals(oldValue)) {
+setupComplete.set(false);
+}
+}
+
 public void setup(final ProcessContext context) {
 setup(context,true,null);
 }
 
 public void setup(final ProcessContext context, boolean shouldCleanCache, 
FlowFile flowFile) {
-final String maxValueColumnNames = 
context.getProperty(MAX_VALUE_COLUMN_NAMES).evaluateAttributeExpressions(flowFile).getValue();
+synchronized (setupComplete) {
+setupComplete.set(false);
+final String maxValueColumnNames = 
context.getProperty(MAX_VALUE_COLUMN_NAMES).evaluateAttributeExpressions(flowFile).getValue();
 
-// If there are no max-value column names specified, we don't need to 
perform this processing
-if (StringUtils.isEmpty(maxValueColumnNames)) {
-return;
-}
+// If there are no max-value column names specified, we don't need 
to perform this processing
+if (StringUtils.isEmpty(maxValueColumnNames)) {
+return;
+}
 
-// Try to fill the columnTypeMap with the types of the desired 
max-value columns
-final DBCPService dbcpService = 
context.getProperty(DBCP_SERVICE).asControllerService(DBCPService.class);
-final String tableName =