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]

Reply via email to