[ https://issues.apache.org/jira/browse/NIFI-10047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17763898#comment-17763898 ]
Daniel Stieglitz edited comment on NIFI-10047 at 9/11/23 7:59 PM: ------------------------------------------------------------------ [~exceptionfactory] It seems the main class in nifi-toolkit-encrypt-config is {code:java} ConfigEncryptionTool.groovy{code} which is already Groovy itself. Would it's corresponding unit test {code:java} ConfigEncryptionToolTest.groovy{code} have to be refactored to Java? I noticed there are many cases in that unit test where access to properties are exceeding its rights. It would necessitate many changes to give properties private package scope. I know this was an issue when working NIFI-11873. Please advise. Thanks! was (Author: JIRAUSER294662): [~exceptionfactory] It seems the main class in nifi-toolkit-encrypt-config is {code:java} ConfigEncryptionTool.groovy{code} which is already Groovy itself. Would it's corresponding unit test {code:java} ConfigEncryptionToolTest.groovy{code} have to be refactored to Java? I noticed there are many cases in that unit test where access to properties are exceeding its rights. It would necessitate many changes to give properties private package scope. I know this was an issue when working NIFI-11873. Please advise. Thanks! > Refactor Groovy Tests to Java > ----------------------------- > > Key: NIFI-10047 > URL: https://issues.apache.org/jira/browse/NIFI-10047 > Project: Apache NiFi > Issue Type: Epic > Components: Core Framework, Extensions, NiFi Registry > Reporter: David Handermann > Assignee: David Handermann > Priority: Minor > > A number of component modules include unit tests written in Groovy, while the > majority of tests are written in Java. Although Groovy has some advantages > for testing in particular, the lack of consistency across the framework > presents several maintenance challenges. > Groovy is similar enough to Java that it is possible to read with minimal > effort, but writing idiomatic Groovy requires a greater understanding of the > language. Some unit tests have leveraged Groovy to bypass method visibility > constraints, which violates standard class and method contracts. Compiling > and running tests in Groovy requires additional Maven configuration and > plugin execution, which contributes to the overall runtime of continuous > integration workflows. Using Java as the standard language for both > implementation and tests also makes it easier for contributors to maintain > and review changes. > For these reasons, existing Groovy test classes should be rewritten in Java, > with the exception of scripting components. > Refactoring and rewriting tests should be done in logical groups of work to > avoid missing important test functions in the conversion process. Some of the > modules with larger numbers of Groovy tests include the following: > * nifi-toolkit-encrypt-config > * nifi-toolkit-admin > * nifi-registry-core > * nifi-security-utils > * nifi-elasticsearch-restapi-processors > * nifi-elasticsearch-client-service > * nifi-framework-cluster > * nifi-framework-core > * nifi-web-api > * nifi-lookup-services > * nifi-standard-processors -- This message was sent by Atlassian Jira (v8.20.10#820010)