diff --git a/README.md b/README.md
index f25029d..1c0f527 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,15 @@ The design philosophy is; make command line argument parsing simple so you can s
## Usage
Include it as a dependency.
+
+```
+
+ com.github.codemonstur
+ jcli
+ 1.0.0
+
+```
+
Use the builder to parse a class you decorated with the proper annotations.
```
diff --git a/pom.xml b/pom.xml
index c20e71e..17a112d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
com.github.codemonstur
jcli
- 1.0.0
+ 1.1.0
${project.groupId}:${project.artifactId}
A command line parser
diff --git a/src/docs/releases/release-1.1.0.txt b/src/docs/releases/release-1.1.0.txt
new file mode 100644
index 0000000..9da3f58
--- /dev/null
+++ b/src/docs/releases/release-1.1.0.txt
@@ -0,0 +1,4 @@
+1.1.0
+
+Updated license
+Made the defaultValue configuration optional. null will be set instead
diff --git a/src/main/java/jcli/CliHelp.java b/src/main/java/jcli/CliHelp.java
index 355e85b..6a55354 100644
--- a/src/main/java/jcli/CliHelp.java
+++ b/src/main/java/jcli/CliHelp.java
@@ -15,7 +15,6 @@
import static jcli.Reflection.*;
import static jcli.Util.isNullOrEmpty;
import static jcli.Util.padRight;
-import static jcli.annotations.Constants.FAKE_NULL;
public enum CliHelp {;
@@ -26,8 +25,11 @@ public static void printHelp(final String name, final Class> clazz) {
System.out.println(getHelp(name, clazz));
}
- public static String getHelp(final String builderName, final Class> clazz) throws InvalidOptionConfiguration {
- return getHelp(builderName, " ", clazz);
+ public static String getHelp(final Class> clazz) throws InvalidOptionConfiguration {
+ return getHelp(null, clazz);
+ }
+ public static String getHelp(final String name, final Class> clazz) throws InvalidOptionConfiguration {
+ return getHelp(name, " ", clazz);
}
public static String getHelp(final String builderName, final String indent, final Class> clazz) throws InvalidOptionConfiguration {
@@ -50,8 +52,8 @@ public static String getHelp(final String builderName, final String indent, fina
throw new InvalidOptionType(option);
if (option.name() == ' ' && option.longName().isEmpty())
throw new InvalidOptionName(field.getName());
- if (hasMissingDefault(option, field))
- throw new MissingDefaultForOption(option);
+// if (hasMissingDefault(option, field))
+// throw new MissingDefaultForOption(option);
final String optionName = toName(option);
final String optionNeed = option.isMandatory() ? "mandatory" : "optional";
@@ -103,11 +105,11 @@ private static String processCliCommandAnnotation(final StringBuilder builder, f
private static void printUsage(final StringBuilder builder, final String name, final Class> clazz) {
builder.append("Usage: ")
- .append(name)
- .append(" [options] ")
- .append(join(" ", toPositionalNames(clazz)))
- .append("\n\n")
- .append("Options:\n");
+ .append(name)
+ .append(" [options] ")
+ .append(join(" ", toPositionalNames(clazz)))
+ .append("\n\n")
+ .append("Options:\n");
}
private static boolean hasExamples(String[] examples) {
@@ -133,4 +135,5 @@ private static String toName(final CliOption option) {
if (!option.longName().isEmpty()) builder.add("--"+option.longName());
return join(" ", builder);
}
+
}
diff --git a/src/main/java/jcli/CliParser.java b/src/main/java/jcli/CliParser.java
index ec4afc4..9dd61f1 100644
--- a/src/main/java/jcli/CliParser.java
+++ b/src/main/java/jcli/CliParser.java
@@ -81,7 +81,7 @@ private static Map toFieldAndOptionMap(final Class clazz
throw new HelpTypeNotBoolean(field);
// TODO test if this is really desired, maybe better to just leave the field alone with whatever was defined in the class
- if (hasMissingDefault(option, field)) throw new MissingDefaultForOption(option);
+ // if (hasMissingDefault(option, field)) throw new MissingDefaultForOption(option);
addFieldAndOption(map, field, option);
}
@@ -142,8 +142,7 @@ private static T applyArgumentsToInstance(final String[] args, final Map {
@@ -146,9 +143,9 @@ public static Class> toParameterType(final Field field) {
return (Class>) ((ParameterizedType)field.getGenericType()).getActualTypeArguments()[0];
}
- public static boolean hasMissingDefault(final CliOption option, final Field field) {
- if (field.getType().equals(List.class)) return false;
- return !option.isMandatory() && !isBooleanType(field) && !option.isHelp() && option.defaultValue().equals(FAKE_NULL);
- }
+// public static boolean hasMissingDefault(final CliOption option, final Field field) {
+// if (field.getType().equals(List.class)) return false;
+// return !option.isMandatory() && !isBooleanType(field) && !option.isHelp() && option.defaultValue().equals(FAKE_NULL);
+// }
}
diff --git a/src/test/java/unittests/TestInvalidOptions.java b/src/test/java/unittests/TestInvalidOptions.java
index ad753a9..770469f 100644
--- a/src/test/java/unittests/TestInvalidOptions.java
+++ b/src/test/java/unittests/TestInvalidOptions.java
@@ -54,11 +54,11 @@ public void optionWithoutName() throws InvalidCommandLine {
fail("Parser failed to throw exception InvalidOptionName");
}
- @Test(expected = MissingDefaultForOption.class)
- public void optionMissingDefault() throws InvalidCommandLine {
- final String[] args = {};
- parseCommandLineArguments(args, MissingDefault::new);
-
- fail("Parser failed to throw exception MissingDefaultForOption");
- }
+// @Test(expected = MissingDefaultForOption.class)
+// public void optionMissingDefault() throws InvalidCommandLine {
+// final String[] args = {};
+// parseCommandLineArguments(args, MissingDefault::new);
+//
+// fail("Parser failed to throw exception MissingDefaultForOption");
+// }
}