GitHub user alopresto opened a pull request: https://github.com/apache/nifi/pull/2983
NIFI-5566 Improve HashContent processor and standardize HashAttribute processor ### This PR should not be merged before [PR 2980](https://github.com/apache/nifi/pull/2980) This PR introduces two new processors `CryptographicHashContent` and `CryptographicHashAttribute` (renamed from `CalculateAttributeHash` in PR 2980), deprecates `HashContent`, and adds documentation to `HashAttribute` indicating the new processor performs the expected behavior. 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: - [x] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message? - [x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character. - [x] 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: - [x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder? - [x] 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: - [x] 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/alopresto/nifi NIFI-5566 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/nifi/pull/2983.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 #2983 ---- commit e2cf56994edd3c72baa346c46c4fab2c03a654fa Author: Otto Fowler <ottobackwards@...> Date: 2018-06-18T15:00:38Z NIFI-5147 Add CalculateAttributeHash processor commit 81d7e794e11855b0d44521c55baaae0771c9de44 Author: Otto Fowler <ottobackwards@...> Date: 2018-06-26T18:51:06Z add warning and recommendation link commit 808b9b22e4137ce26e7361015a4953dacc0296a1 Author: Otto Fowler <ottobackwards@...> Date: 2018-07-01T16:18:08Z per review - added properties to control behavior when attributes that are configured are partially or completely missing - set charset with a property - added tests commit a05de1c62710acf7f91855d5492f01e2ed46e155 Author: Otto Fowler <ottobackwards@...> Date: 2018-07-01T16:25:24Z fix assert parameter order commit 66577ddb57ae4fff198608d29ed4490b1543e424 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T02:26:53Z NIFI-5147 Added HashAlgorithm enum for CalculateHashAlgorithm and HashContent. Added unit tests. commit 8a594e5b1ec9f189a14d933e7e586e9bc1e04432 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:07:18Z NIFI-5147 [WIP] Used HashAlgorithm enum in CalculateHashAttribute. Cleaned up typos and descriptions. Added unit test demonstrating missing Blake2 algorithm. commit 39e9cd2325f5f2312daa19d1ccb66664128de384 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:18:44Z NIFI-5147 [WIP] Added logic for Blake2 algorithms (needs refactoring). commit 68db917487c009eb9a3b75ed50d174f809c51e3a Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:31:27Z NIFI-5147 Blake2b limited to 160, 256, 384, and 512 in Bouncy Castle implementation. Updated unit test. commit 5165a41bdb90e32e0e81ae402cbff8a61669dd8b Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:34:28Z NIFI-5147 Finished implementing Blake2 logic. Unit test for all default test vectors passes. commit 6f91e6f9ec3cbbceac5609ca9d495ec259dbc517 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:44:10Z NIFI-5147 Added unit test demonstrating empty values fail. commit afd6a0cbf4d1b09f8109150051bd28a90d4fda6a Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T03:45:08Z NIFI-5147 Implemented logic for empty input values. commit 9a47353adc439ca6c6ed4976dfb8327450400f74 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T04:17:54Z NIFI-5147 Implemented HashService. Added unit tests. commit 82a213904bcf81845b21ef35a41849b7564d2475 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T04:31:46Z NIFI-5147 Implemented unit tests for test vectors, convenience methods, character encoding, and defaults. commit b0f8f23d7b4e79d7aa9c635f7f5e6e61f6dade6a Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T04:33:01Z NIFI-5147 Refactored CalculateAttributeHash to use HashService. All unit tests pass. commit e0847fb6e09d494536f7fef83fe75656a977144e Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T05:01:14Z NIFI-5147 Added #clearProperties() to TestRunner, StandardProcessorTestRunner, and MockProcessContext. commit 040f14ebac33501e5f4b630dca9f007d93adcfef Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T05:46:59Z NIFI-5147 Added HashAttribute#fromName() method to be more generous on name matching. Added unit test. commit 73e7142d4d1693c9aba7eed59469c6c495a9538f Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T06:19:21Z NIFI-5147 Handled edge cases. Added unit tests. commit 1d45d68952b41224b194733fa47ea75bf417340b Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T06:19:51Z NIFI-5147 Removed old unit tests. commit f0281aa94fa41b419cafe1e94fe60a1ba71f2696 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T06:59:02Z NIFI-5147 Fixed checkstyle issues. commit 4dd248f579a4eaea9f45e9c7fb7ba15cd0113a01 Author: Andy LoPresto <alopresto@...> Date: 2018-08-31T07:16:16Z NIFI-5147 Added full algorithm description to AllowableValue. commit 36acaaffeb359d07d8ae234248a4755d982620e4 Author: Andy LoPresto <alopresto@...> Date: 2018-09-01T02:28:49Z NIFI-5147 Added buildHashAlgorithmAllowableValues() and hashValueStreaming() methods to HashService. Added unit tests. commit 8d882c9713ddcb24f89aee8f9f8b78412f6d3b9b Author: Andy LoPresto <alopresto@...> Date: 2018-09-01T03:30:05Z NIFI-5566 Moved HashContent to HashContentLegacy. Moved TestHashContent to TestHashContentLegacy. Implemented "modern" HashContent. Added unit tests as HashContentTest. Updated processor manifest. Updated Javadoc. commit b4471c7a5ed658f9e542e62747c656f8cdec9e65 Author: Andy LoPresto <alopresto@...> Date: 2018-09-01T04:12:48Z NIFI-5147 Moved HashAttribute to HashAttributeLegacy. Moved TestHashAttribute to TestHashAttributeLegacy. Moved CalculateAttributeHash to HashAttribute. Moved CalculateAttributeHashTest to HashAttributeTest. Updated processor manifest. Updated Javadoc. commit 9d243e9db6e11e3507b50fc241c6883c4f18bc54 Author: Andy LoPresto <alopresto@...> Date: 2018-09-04T01:34:30Z NIFI-5566 Renamed new components to CryptographicHashAttribute and CryptographicHashContent. Added documentation about deprecated/renamed components. Fixed unit test resource path. ---- ---