FISH-8259 Improve Dev Mode Fail-Safe Mechanism #293
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request addresses the challenges faced in the Payara Micro Maven Plugin's dev mode, specifically when deployment fails after a successful build. The proposed solution introduces a fail-safe mechanism that involves the addition of a
dev-mode
flag for persistent deployment.Introduction of Dev Mode Flag in
.reload
file:Added a new dev mode flag that can be passed to Payara Micro. This flag instructs Payara Micro to persistently monitor for changes after the failure of application deployment.
Testing Scenarios:
Implemented test cases to cover various scenarios:
Steps to create the deployment failure scenario:
Deploy the web application in dev mode with the provided CircleResource class containing a sample REST endpoint.
The
CircleResource
class initially has a@GET
annotation on thecalculateCircleArea
function.Start the application and verify the correct functioning of the REST endpoint.
Scenario Leading to Deployment Failure:
After starting the application, dynamically modify the calculateCircleArea function by adding a
@POST
annotation to it.Save the modified source file with both
@GET
and@POST
annotations in the same function.Observe that this modification results in a deployment failure and the Payara instance stops looking at the .reload file.
Notice that, in response to the deployment failure, the Payara Micro instance stops monitoring the .reload file, preventing subsequent deployments even after addressing the error.
Related PRs:
payara/Payara#6542
https://github.com/payara/Payara-Enterprise/pull/1087