-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[#1381] enh: Build on JDK 22 #1530
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-1 for adding a dependency for a simple reflection check, but otherwise good from a coding logic PoV
tools/hasher/pom.xml
Outdated
<artifactId>shiro-core</artifactId> | ||
<exclusions> | ||
<!-- BeanUtils is for ini config - this simple command line program | ||
does not init a shiro environment, so we don't need it: --> | ||
<exclusion> | ||
<groupId>commons-beanutils</groupId> | ||
<artifactId>commons-beanutils</artifactId> | ||
</exclusion> | ||
</exclusions> | ||
</dependency> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you really want to introduce one extra dependency for just one invocation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was able to make reflection a one-liner, so that works just as well as PropertyUtils
Thanks!
private static boolean isTerminal(java.io.Console console) throws IOException { | ||
try { | ||
// isTerminal is only available in Java 22 or later | ||
return console != null && (Boolean) PropertyUtils.getProperty(console, "terminal"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use standard reflection here? I dont want to introduce a dependency just for one line.
Also, newer JDKs will bring better Reflection tools iirc.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
if (!isTerminal(console)) { | ||
throw new IllegalStateException("Cannot confirm password when console is not available."); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe on non-Terminals, just use one input instead of to (i.e. do not throw an exception and just go for it).
Otherwise this might break script invocations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
great idea, done
Added
isTerminal()
check to Hasher tool, as JDK 22 changed console functionalityRun JDK 22 in CI
fixes #1381
Following this checklist to help us incorporate your contribution quickly and easily:
for the change (usually before you start working on it). Trivial changes like typos do not
require a GitHub issue. Your pull request should address just this issue, without pulling in other changes.
[#XXX] - Fixes bug in SessionManager
,where you replace
#XXX
with the appropriate GitHub issue. Best practiceis to use the GitHub issue title in the pull request title and in the first line of the commit message.
fixes #XXX
if merging the PR should close a related issue.mvn verify
to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.git rebase -i
.Trivial changes like typos do not require a GitHub issue (javadoc, comments...).
In this case, just format the pull request title like
[DOC] - Add javadoc in SessionManager
.If this is your first contribution, you have to read the Contribution Guidelines
If your pull request is about ~20 lines of code you don't need to sign an Individual Contributor License Agreement
if you are unsure please ask on the developers list.
To make clear that you license your contribution under the Apache License Version 2.0, January 2004
you have to acknowledge this by using the following check-box.