diff --git a/.gitignore b/.gitignore index 1ce248f..fd6ede1 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,9 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* /target/ +/.classpath +/.project +/.settings # IntelliJ IDEA .idea diff --git a/pom.xml b/pom.xml index b35a410..2f29208 100644 --- a/pom.xml +++ b/pom.xml @@ -48,19 +48,24 @@ - UTF-8 - UTF-8 - + 2.17 + 7.8.2 + 3.0.4 + 1.0.4 + 1.0.34 1.5.16 - 1.0.29 + 0.7.9 + 2.3.0 4.12 + 2.5 2.11.0 - 1.7.25 3.5 3.5.0 - 1.0.4 + 1.7.25 3.3.0 - 2.3.0 + 3.8 + UTF-8 + UTF-8 @@ -147,6 +152,33 @@ + + org.apache.maven.plugins + maven-checkstyle-plugin + ${checkstyle.plugin.version} + + ${project.build.sourceDirectory} + **/io/openapitools/**/*.java + https://raw.githubusercontent.com/openapi-tools/code-style/master/checkstyle/rules.xml + false + + + + checkstyle + package + + checkstyle + + + + + + com.puppycrawl.tools + checkstyle + ${checkstyle.version} + + + org.apache.maven.plugins maven-plugin-plugin @@ -222,6 +254,74 @@ + + org.jacoco + jacoco-maven-plugin + ${jacoco.version} + + + + + + + default-prepare-agent + + prepare-agent + + + + report + test + + report + + + + + + org.apache.maven.plugins + maven-pmd-plugin + ${pmd.plugin.version} + + + https://raw.githubusercontent.com/openapi-tools/code-style/master/pmd/rules.xml + + ${jdk.version} + + **/io/openapitools/**/*.java + + + + + + + + + pmd + package + + pmd + + + + + + org.codehaus.mojo + findbugs-maven-plugin + ${findbugs.version} + + io.openapitools.- + + + + findbugs + package + + findbugs + + + + org.apache.maven.plugins maven-release-plugin @@ -232,5 +332,14 @@ + + + + org.apache.maven.plugins + maven-jxr-plugin + ${maven.jxr.version} + + + diff --git a/src/main/java/io/openapitools/api/pp/APIPostProcessorMojo.java b/src/main/java/io/openapitools/api/pp/APIPostProcessorMojo.java index a99fbc2..016e7aa 100644 --- a/src/main/java/io/openapitools/api/pp/APIPostProcessorMojo.java +++ b/src/main/java/io/openapitools/api/pp/APIPostProcessorMojo.java @@ -15,7 +15,6 @@ import io.swagger.models.Path; import io.swagger.models.Swagger; import io.swagger.parser.SwaggerParser; - import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; @@ -87,10 +86,10 @@ public class APIPostProcessorMojo extends AbstractMojo { @Component private MavenProjectHelper projectHelper; - String[] minimum = {"200", "202", "204", "301", "400", "404", "415", "500"}; - String[] standard = {"200", "201", "202", "203", "204", "301", "304", "307", + private final String[] MINIMUM = {"200", "202", "204", "301", "400", "404", "415", "500"}; + private final String[] STANDARD = {"200", "201", "202", "203", "204", "301", "304", "307", "400", "401", "403", "404", "406", "409", "410", "412", "415", "422", "429", - "500", "501", "503", "505"}; + "500", "501", "503", "505"}; @Override @@ -98,13 +97,7 @@ public void execute() throws MojoExecutionException, MojoFailureException { SwaggerParser swaggerParser = new SwaggerParser(); String fileAndPathName = inputDirectory + "/" + inputFilename; - if (Files.exists(Paths.get(fileAndPathName + ".json"))) { - fileAndPathName = fileAndPathName + ".json"; - } else if (Files.exists(Paths.get(fileAndPathName + ".yaml"))) { - fileAndPathName = fileAndPathName + ".yaml"; - } else if (Files.exists(Paths.get(fileAndPathName + ".yml"))) { - fileAndPathName = fileAndPathName + ".yml"; - } + fileAndPathName = findFileFormat(fileAndPathName); Swagger api = swaggerParser.read(fileAndPathName); if (api == null) { @@ -113,14 +106,14 @@ public void execute() throws MojoExecutionException, MojoFailureException { } if (null == packages && null == codes) { - ApplySpecificHeadersAndResponses(api, new HashSet(Arrays.asList(standard))); + applySpecificHeadersAndResponses(api, new HashSet<>(Arrays.asList(STANDARD))); } else { - if (packages.contains("standard")) { - ApplySpecificHeadersAndResponses(api, new HashSet(Arrays.asList(standard))); - } else if (packages.contains("minimal")) { - ApplySpecificHeadersAndResponses(api, new HashSet(Arrays.asList(minimum))); - } else if (codes.size() > 0) { - ApplySpecificHeadersAndResponses(api, codes); + if (null != packages && packages.contains("standard")) { + applySpecificHeadersAndResponses(api, new HashSet<>(Arrays.asList(STANDARD))); + } else if (null != packages && packages.contains("minimal")) { + applySpecificHeadersAndResponses(api, new HashSet<>(Arrays.asList(MINIMUM))); + } else if (null != codes && codes.size() > 0) { + applySpecificHeadersAndResponses(api, codes); } } @@ -143,7 +136,14 @@ public void execute() throws MojoExecutionException, MojoFailureException { ); } - private void ApplySpecificHeadersAndResponses(Swagger api, Set codes) { + private String findFileFormat(final String fileAndPathName) { + return Arrays.asList(fileAndPathName + ".json", fileAndPathName + ".yaml", fileAndPathName + ".yml").stream() + .filter(ffn -> Files.exists(Paths.get(ffn))) + .findAny() + .orElse(fileAndPathName); + } + + private void applySpecificHeadersAndResponses(Swagger api, Set codes) { Map paths = api.getPaths(); paths.forEach((k, p) -> { List operations = p.getOperations(); diff --git a/src/main/java/io/openapitools/api/pp/Responses.java b/src/main/java/io/openapitools/api/pp/Responses.java index 59db192..e477407 100644 --- a/src/main/java/io/openapitools/api/pp/Responses.java +++ b/src/main/java/io/openapitools/api/pp/Responses.java @@ -18,8 +18,7 @@ private Responses() { // intentionally empty } - - public static void addResponseCodes(Operation operation, Set codes ) { + public static void addResponseCodes(Operation operation, Set codes) { if (codes.contains("200")) addOKResponse200(operation); if (codes.contains("400")) addBadRequestResponse400(operation); if (codes.contains("401")) addNotAuthorizedResponse401(operation); @@ -44,7 +43,7 @@ public static void addVerbSpecificHeaders(Path p, Set codes) { if (null != p.getDelete()) addDeleteResponses(p.getDelete(), codes); } - private static void addGetResponses(Operation getOperation, Set codes ) { + private static void addGetResponses(Operation getOperation, Set codes) { if (codes.contains("202")) addAcceptedResponse202(getOperation); if (codes.contains("203")) addNonAuthoritativeInformationResponse203(getOperation); if (codes.contains("301")) addPermanentlyMovedResponse301(getOperation); @@ -91,7 +90,7 @@ private static void addDeleteResponses(Operation deleteOperation, Set co private static void addPatchResponses(Operation patchOperation, Set codes) { Headers.addPatchHeaders(patchOperation); - if (codes.contains("422")) addUnprocessableRequestResponse422(patchOperation); + if (codes.contains("422")) addUnprocessableRequestResponse422(patchOperation); } private static void addOKResponse200(Operation operation) {