From 63f786fd8c84118c789af139389a30ab22dffd56 Mon Sep 17 00:00:00 2001 From: Joao Ferreira Date: Tue, 15 Jan 2019 18:14:52 +0000 Subject: [PATCH] Update JCommander version This commit updates the JCommander version to 1.81. The update also takes into account an issue that was introduced in new versions of the JCommander, namely, https://github.com/cbeust/jcommander/issues/377. --- pom.xml | 2 +- .../shell/jcommander/JCommanderParameterResolver.java | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 5a9a2f07..b89abf45 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 3.4.0 3.8.0 1.8 - 1.48 + 1.81 diff --git a/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java index c70c4dfe..9f802dc4 100644 --- a/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java +++ b/spring-shell-jcommander-adapter/src/main/java/org/springframework/shell/jcommander/JCommanderParameterResolver.java @@ -104,9 +104,7 @@ public class JCommanderParameterResolver implements ParameterResolver { private JCommander createJCommander(MethodParameter methodParameter) { Object pojo = BeanUtils.instantiateClass(methodParameter.getParameterType()); - JCommander jCommander = new JCommander(pojo); - jCommander.setAcceptUnknownOptions(true); - return jCommander; + return new JCommander(pojo); } @Override @@ -122,7 +120,7 @@ public class JCommanderParameterResolver implements ParameterResolver { unCamelify(j.getParameterized().getType().getSimpleName())) .keys(Arrays.asList(j.getParameter().names())) .help(j.getDescription()) - .mandatoryKey(!j.equals(jCommander.getMainParameter())) + .mandatoryKey(!j.equals(jCommander.getMainParameterValue())) // Not ideal as this does not take reverse-conversion into account, but just toString() .defaultValue(j.getDefault() == null ? "" : String.valueOf(j.getDefault())) .elementDescriptor( @@ -136,7 +134,7 @@ public class JCommanderParameterResolver implements ParameterResolver { private Stream streamAllJCommanderDescriptions(JCommander jCommander) { return Stream.concat( jCommander.getParameters().stream(), - jCommander.getMainParameter() != null ? Stream.of(jCommander.getMainParameter()) : Stream.empty()); + jCommander.getMainParameterValue() != null ? Stream.of(jCommander.getMainParameterValue()) : Stream.empty()); } // Java 9+ warn if you try to reflect on JDK types