* NIFI-11443 Routed Python Framework Logging to SLF4J
- Changed Python logging to use standard output stream
- Adjusted Python logging format for simplified processing
- Updated PythonProcess to pipe standard error and standard output streams to reader
- Added Log Reader command with Virtual Thread for each Python Process
- Removed Python log properties from NiFi Properties configuration
Fixed issue in NiFiPythonGateway that stems from the fact that the thread adding an object to the JavaObjectBindings was not necessarily the thread removing them. The algorithm that was in place assumed that the same thread would be used, in order to ensure that an object could be unbound before being accessed. The new algorithm binds each new object to all active method invocations and only unbinds the objects after all method invocations complete, regardless of thread. Additionally, found that many method calls could create new proxies on the Python side, just for getter methods whose values don't change. This is very expensive, so introduced a new @Idempotent annotation that can be added to interface methods such that we can cache the value and avoid the expensive overhead.
This closes#8456
Signed-off-by: David Handermann <exceptionfactory@apache.org>
* [NIFI-12537] - Summary screen cluster-related features
* common component status table
* cluster summary dialogs
* address review feedback
* ellisis for node columns in cluster dialogs, cluster node dropdown panel no longer wraps, shorted the dropdown width as well.
* prettier
This closes#8454
- Moved StandardValidators to nifi-api
- Moved URL creation method from UriUtils to URLValidator
- Separated FormatUtils into FormatUtils and DurationFormat classes
- Added DurationFormat to nifi-api
This closes#8442
Signed-off-by: David Handermann <exceptionfactory@apache.org>
Additional assertion removals which assumed ordering that isn't guaranteed or enforced by the tests
This closes#8438
Signed-off-by: David Handermann <exceptionfactory@apache.org>
Ensured that if a Process Group doesn't have a Versioned Component ID we use the ComponentIdLookup to create one based on its Instance ID in the same way that is done when serializing the flow; this ensures matching ID's when we synchronize flows across the cluster. Also included some code cleanup around failure handling on startup
This closes#8406
Signed-off-by: David Handermann <exceptionfactory@apache.org>
Use Jackson's internal implementations for parsing big integers and floating-point numbers more efficiently
Addressed case where JSON Writer configured to not allow scientific notation, but receives a record that already has a SerializedForm using scientific notation.
This closes#8319
Signed-off-by: David Handermann <exceptionfactory@apache.org>
This closes#8428.
- Upgraded from Java Mail 1.4.7 to Jakarta Mail API 2.1.2
- Upgraded Spring Integration from 5.5.20 to 6.2.1
- Upgraded SubEtha SMTP from 3.1.7 to 7.0.1
- Upgraded Greenmail from 1.6.15 to 2.0.1
- Removed usage of Commons Lang3
- Removed usage of Commons IO
Signed-off-by: Joseph Witt <joewitt@apache.org>
- Upgraded Spring Security from 6.2.0 to 6.2.2
- Upgraded Registry version of Spring Framework from 6.1.3 to 6.1.4
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes#8422.
- Corrected Jetty AuthenticationState interface reference for authenticated user attribute mapping
- Added unit test verifying expected attribute values
Signed-off-by: Pierre Villard <pierre.villard.fr@gmail.com>
This closes#8423.