exceptionfactory opened a new pull request, #9683: URL: https://github.com/apache/nifi/pull/9683
# Summary [NIFI-14156](https://issues.apache.org/jira/browse/NIFI-14156) Improves the application bootstrap process when running on Microsoft Windows using the Java [Attach API](https://docs.oracle.com/en/java/javase/21/docs/api/jdk.attach/com/sun/tools/attach/package-summary.html) to find the application process for status and shutdown. These changes resolve issues with the `nifi.cmd stop` and `nifi.cmd status` commands not working. The restructured bootstrap process for NiFi 2 uses the [ProcessHandle](https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ProcessHandle.html) interface added in Java 9. The OpenJDK implementation for Linux and macOS provides command arguments for the associated process, but the implementation in Windows does not provide command arguments as of Java 21. [JDK-8176725](https://bugs.openjdk.org/browse/JDK-8176725) describes the lack of support on Windows. The maintain the stateless behavior of the application bootstrap process on Windows, changes in this pull request introduce new process handle discovery classes based on the Attach API and the [VirtualMachine](https://docs.oracle.com/en/java/javase/21/docs/api/jdk.attach/com/sun/tools/attach/VirtualMachine.html) class. The `VirtualMachine.getSystemProperties()` method returns the system properties containing the information required to identify the bootstrap and application processes. This approach is implemented using feature detection when `ProcessHandle.Info.arguments()` is empty, preserving existing behavior on Linux and macOS. Additional changes include correcting the `nifi.cmd` to avoid passing the application properties argument to the bootstrap process, and adjusting the `start` command behavior to launch the application in a new minimized window. The adjusted start behavior then returns to the command prompt, enabling subsequent commands such as `status` or `stop` as needed. # Tracking Please complete the following tracking steps prior to pull request creation. ### Issue Tracking - [X] [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue created ### Pull Request Tracking - [X] Pull Request title starts with Apache NiFi Jira issue number, such as `NIFI-00000` - [X] Pull Request commit message starts with Apache NiFi Jira issue number, as such `NIFI-00000` ### Pull Request Formatting - [X] Pull Request based on current revision of the `main` branch - [X] Pull Request refers to a feature branch with one commit containing changes # Verification Please indicate the verification steps performed prior to pull request creation. ### Build - [X] Build completed using `mvn clean install -P contrib-check` - [X] JDK 21 ### Licensing - [ ] New dependencies are compatible with the [Apache License 2.0](https://apache.org/licenses/LICENSE-2.0) according to the [License Policy](https://www.apache.org/legal/resolved.html) - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` files ### Documentation - [ ] Documentation formatting appears as expected in rendered files -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
