-
-
Notifications
You must be signed in to change notification settings - Fork 6.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cli error message improvements (#172)
* Errors in Generate/Validate print to stderr/exit 1 Generate and Validate exposed exceptions rather than user-friendly messages when an error occurred. In generate, this could happen for numerous reasons, but the most likely is a user typing (or guessing) an invalid generator name. In Validate, an error was exposed if there were any validation errors in a spec. New behavior: * Generate now exposes a typed exception when a generator cannot be loaded by name. This allows consistent messaging for load failures. * Generate now presents guidance on failure (check the spelling and try again). This is purely a usability improvement. * Validate now writes validation errors to stderr and exits with code 1. * Improve err messages: config-help/required opts. config-help now presents same error for invalid generator names as the 'generate' command. Options which are required, and those which require a value, now present a user-friendly hint at the error and exit with code 1 (rather than an uncaught exception). * Log missing -g error to stderr rather than LOGGER
- Loading branch information
1 parent
5a87fe6
commit f042132
Showing
7 changed files
with
126 additions
and
44 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 0 additions & 24 deletions
24
...s/openapi-generator-cli/src/main/java/org/openapitools/codegen/cmd/ValidateException.java
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
80 changes: 80 additions & 0 deletions
80
.../openapi-generator/src/main/java/org/openapitools/codegen/GeneratorNotFoundException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
package org.openapitools.codegen; | ||
|
||
/** | ||
* Typed exception exposing issues with loading generators (e.g. by name). | ||
*/ | ||
@SuppressWarnings("unused") | ||
public class GeneratorNotFoundException extends RuntimeException { | ||
/** | ||
* Constructs a new runtime exception with {@code null} as its | ||
* detail message. The cause is not initialized, and may subsequently be | ||
* initialized by a call to {@link #initCause}. | ||
*/ | ||
public GeneratorNotFoundException() { | ||
} | ||
|
||
/** | ||
* Constructs a new runtime exception with the specified detail message. | ||
* The cause is not initialized, and may subsequently be initialized by a | ||
* call to {@link #initCause}. | ||
* | ||
* @param message the detail message. The detail message is saved for | ||
* later retrieval by the {@link #getMessage()} method. | ||
*/ | ||
public GeneratorNotFoundException(String message) { | ||
super(message); | ||
} | ||
|
||
/** | ||
* Constructs a new runtime exception with the specified detail message and | ||
* cause. <p>Note that the detail message associated with | ||
* {@code cause} is <i>not</i> automatically incorporated in | ||
* this runtime exception's detail message. | ||
* | ||
* @param message the detail message (which is saved for later retrieval | ||
* by the {@link #getMessage()} method). | ||
* @param cause the cause (which is saved for later retrieval by the | ||
* {@link #getCause()} method). (A <tt>null</tt> value is | ||
* permitted, and indicates that the cause is nonexistent or | ||
* unknown.) | ||
* @since 1.4 | ||
*/ | ||
public GeneratorNotFoundException(String message, Throwable cause) { | ||
super(message, cause); | ||
} | ||
|
||
/** | ||
* Constructs a new runtime exception with the specified cause and a | ||
* detail message of <tt>(cause==null ? null : cause.toString())</tt> | ||
* (which typically contains the class and detail message of | ||
* <tt>cause</tt>). This constructor is useful for runtime exceptions | ||
* that are little more than wrappers for other throwables. | ||
* | ||
* @param cause the cause (which is saved for later retrieval by the | ||
* {@link #getCause()} method). (A <tt>null</tt> value is | ||
* permitted, and indicates that the cause is nonexistent or | ||
* unknown.) | ||
* @since 1.4 | ||
*/ | ||
public GeneratorNotFoundException(Throwable cause) { | ||
super(cause); | ||
} | ||
|
||
/** | ||
* Constructs a new runtime exception with the specified detail | ||
* message, cause, suppression enabled or disabled, and writable | ||
* stack trace enabled or disabled. | ||
* | ||
* @param message the detail message. | ||
* @param cause the cause. (A {@code null} value is permitted, | ||
* and indicates that the cause is nonexistent or unknown.) | ||
* @param enableSuppression whether or not suppression is enabled | ||
* or disabled | ||
* @param writableStackTrace whether or not the stack trace should | ||
* be writable | ||
* @since 1.7 | ||
*/ | ||
public GeneratorNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { | ||
super(message, cause, enableSuppression, writableStackTrace); | ||
} | ||
} |