From c228b72921b41a05cf0ac9a66991a37e9198b051 Mon Sep 17 00:00:00 2001 From: Simon Date: Thu, 26 Oct 2023 11:01:52 +0200 Subject: [PATCH 1/2] 9 fix duplicate / in path --- .../main/java/unknow/server/http/jaxrs/JaxrsContext.java | 1 + .../unknow/server/maven/jaxrs/JaxRsServletBuilder.java | 5 ++++- .../main/java/unknow/server/maven/jaxrs/JaxrsModel.java | 8 ++++---- .../java/unknow/server/maven/jaxrs/OpenApiBuilder.java | 4 ++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/unknow-http-jaxrs/src/main/java/unknow/server/http/jaxrs/JaxrsContext.java b/unknow-http-jaxrs/src/main/java/unknow/server/http/jaxrs/JaxrsContext.java index 7ed535e8..71f0e584 100644 --- a/unknow-http-jaxrs/src/main/java/unknow/server/http/jaxrs/JaxrsContext.java +++ b/unknow-http-jaxrs/src/main/java/unknow/server/http/jaxrs/JaxrsContext.java @@ -265,6 +265,7 @@ private static class WebAppExceptionMapping implements ExceptionMapper produce) JaxrsMapping def = produce.remove("*/*"); Statement stmt = new ThrowStmt(new ObjectCreationExpr(null, types.getClass(NotAcceptableException.class), Utils.list())); + if (def != null) stmt = new ExpressionStmt(new MethodCallExpr(def.var + "$call", new NameExpr("req"), new NameExpr("res"))); if (produce.isEmpty()) return b.addStatement(accept).addStatement(stmt); - b.addStatement(Utils.assign(types.getClass(MediaType.class), "accept", accept)); + b.addStatement(Utils.assign(types.getClass(MediaType.class), "accept", accept)) + .addStatement(new IfStmt(new BinaryExpr(new NameExpr("accept"), new NullLiteralExpr(), BinaryExpr.Operator.EQUALS), + new ThrowStmt(new ObjectCreationExpr(null, types.getClass(NotAcceptableException.class), Utils.list())), null)); List k = new ArrayList<>(produce.keySet()); k.sort(MIME); diff --git a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/JaxrsModel.java b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/JaxrsModel.java index 2941c0e2..58dae67f 100644 --- a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/JaxrsModel.java +++ b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/JaxrsModel.java @@ -264,8 +264,8 @@ public void process(ClassModel clazz) { } if (basePath == null || basePath.isEmpty()) basePath = "/"; - if (basePath.length() > 1 && basePath.endsWith("/")) - basePath = basePath.substring(0, basePath.length() - 1); + if (!basePath.endsWith("/")) + basePath = basePath + "/"; if (basePath.charAt(0) != '/') basePath = '/' + basePath; if (baseConsume == null) @@ -287,8 +287,8 @@ private void process(String defaultMethod, String path, String[] consume, String if (a.isPresent()) { String s = a.flatMap(v -> v.value()).map(v -> v.asLiteral()).orElse(""); - if (s.charAt(0) != '/') - path += "/"; + if (s.charAt(0) == '/') + s = s.substring(1); path += s; } diff --git a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java index 798d42be..bf38b8b5 100644 --- a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java +++ b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java @@ -74,9 +74,9 @@ private static Schema getDefault(String n) { case "java.lang.Byte": return new Schema<>().type("integer").minimum(BigDecimal.valueOf(Byte.MIN_VALUE)).maximum(BigDecimal.valueOf(Byte.MAX_VALUE)); case "char": - return new Schema<>().type("integer").minimum(BigDecimal.valueOf(Character.MIN_VALUE)).maximum(BigDecimal.valueOf(Character.MAX_VALUE)).nullable(false); + return new Schema<>().type("string").maxLength(1).minLength(1).nullable(false); case "java.lang.Character": - return new Schema<>().type("integer").minimum(BigDecimal.valueOf(Character.MIN_VALUE)).maximum(BigDecimal.valueOf(Character.MAX_VALUE)); + return new Schema<>().type("string").maxLength(1).minLength(1); case "short": return new Schema<>().type("integer").minimum(BigDecimal.valueOf(Short.MIN_VALUE)).maximum(BigDecimal.valueOf(Short.MAX_VALUE)).nullable(false); case "java.lang.Short": From 8f7c2dee7319ddeebb15d21b5d6f1e3cace99f7d Mon Sep 17 00:00:00 2001 From: Unknow0 Date: Thu, 26 Oct 2023 23:44:09 +0200 Subject: [PATCH 2/2] 9 fix code smell --- .../main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java index 423cd0cc..19df28a1 100644 --- a/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java +++ b/unknow-server-maven/src/main/java/unknow/server/maven/jaxrs/OpenApiBuilder.java @@ -70,9 +70,9 @@ private static Schema getDefault(String n) { case "java.lang.Byte": return new Schema<>().type(INTEGER).minimum(BigDecimal.valueOf(Byte.MIN_VALUE)).maximum(BigDecimal.valueOf(Byte.MAX_VALUE)); case "char": - return new Schema<>().type("string").maxLength(1).minLength(1).nullable(false); + return new Schema<>().type(STRING).maxLength(1).minLength(1).nullable(false); case "java.lang.Character": - return new Schema<>().type("string").maxLength(1).minLength(1); + return new Schema<>().type(STRING).maxLength(1).minLength(1); case "short": return new Schema<>().type(INTEGER).minimum(BigDecimal.valueOf(Short.MIN_VALUE)).maximum(BigDecimal.valueOf(Short.MAX_VALUE)).nullable(false); case "java.lang.Short":