From 7370e5a7add3229558faaac18dbe09e4fd886b63 Mon Sep 17 00:00:00 2001 From: kliushnichenko Date: Tue, 2 Apr 2024 19:14:15 +0300 Subject: [PATCH 1/2] closes https://github.com/jooby-project/jooby/issues/3400 --- .../java/io/jooby/internal/RouterImpl.java | 3 +- .../test/java/io/jooby/i3400/Issue3400.java | 39 +++++++++++++++++++ tests/src/test/java/io/jooby/i3400/Pet.java | 27 +++++++++++++ 3 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 tests/src/test/java/io/jooby/i3400/Issue3400.java create mode 100644 tests/src/test/java/io/jooby/i3400/Pet.java diff --git a/jooby/src/main/java/io/jooby/internal/RouterImpl.java b/jooby/src/main/java/io/jooby/internal/RouterImpl.java index fba5ac1d39..c2e3704ca3 100644 --- a/jooby/src/main/java/io/jooby/internal/RouterImpl.java +++ b/jooby/src/main/java/io/jooby/internal/RouterImpl.java @@ -908,8 +908,7 @@ private void copy(Route src, Route it) { it.setExecutorKey(src.getExecutorKey()); it.setTags(src.getTags()); it.setDescription(src.getDescription()); - it.setDecoders(src.getDecoders()); - it.setMvcMethod(it.getMvcMethod()); + it.setMvcMethod(src.getMvcMethod()); it.setNonBlocking(src.isNonBlocking()); it.setSummary(src.getSummary()); } diff --git a/tests/src/test/java/io/jooby/i3400/Issue3400.java b/tests/src/test/java/io/jooby/i3400/Issue3400.java new file mode 100644 index 0000000000..bc944a6606 --- /dev/null +++ b/tests/src/test/java/io/jooby/i3400/Issue3400.java @@ -0,0 +1,39 @@ +package io.jooby.i3400; + +import io.jooby.Jooby; +import io.jooby.jackson.JacksonModule; +import io.jooby.junit.ServerTest; +import io.jooby.junit.ServerTestRunner; +import okhttp3.MediaType; +import okhttp3.RequestBody; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class Issue3400 { + + static class AppA extends Jooby { + { + post("/pets", ctx -> ctx.body(Pet.class)); + } + } + + @ServerTest + public void shouldShareDecodersOnMountedResources(ServerTestRunner runner) { + runner + .define( + app -> { + app.install(new JacksonModule()); + app.mount(new AppA()); + }) + .ready( + http -> { + http.post( + "/pets", + RequestBody.create("{\"id\": 1, \"name\": \"Cheddar\"}", MediaType.parse("application/json")), + rsp -> { + assertEquals("{\"id\":1,\"name\":\"Cheddar\"}", rsp.body().string()); + assertEquals("application/json;charset=UTF-8", rsp.header("Content-Type")); + }); + }); + } +} diff --git a/tests/src/test/java/io/jooby/i3400/Pet.java b/tests/src/test/java/io/jooby/i3400/Pet.java new file mode 100644 index 0000000000..0aca6c76c8 --- /dev/null +++ b/tests/src/test/java/io/jooby/i3400/Pet.java @@ -0,0 +1,27 @@ +package io.jooby.i3400; + +class Pet { + private int id; + private String name; + + public Pet(int id, String name) { + this.id = id; + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} From 70e86e34430b1dadf3db5460a195b7a6974daa97 Mon Sep 17 00:00:00 2001 From: kliushnichenko Date: Tue, 2 Apr 2024 19:25:43 +0300 Subject: [PATCH 2/2] fix typo --- .../java/io/jooby/internal/RouterImpl.java | 1 + .../test/java/io/jooby/i3400/Issue3400.java | 39 ------------------- tests/src/test/java/io/jooby/i3400/Pet.java | 27 ------------- 3 files changed, 1 insertion(+), 66 deletions(-) delete mode 100644 tests/src/test/java/io/jooby/i3400/Issue3400.java delete mode 100644 tests/src/test/java/io/jooby/i3400/Pet.java diff --git a/jooby/src/main/java/io/jooby/internal/RouterImpl.java b/jooby/src/main/java/io/jooby/internal/RouterImpl.java index c2e3704ca3..2422e66d95 100644 --- a/jooby/src/main/java/io/jooby/internal/RouterImpl.java +++ b/jooby/src/main/java/io/jooby/internal/RouterImpl.java @@ -908,6 +908,7 @@ private void copy(Route src, Route it) { it.setExecutorKey(src.getExecutorKey()); it.setTags(src.getTags()); it.setDescription(src.getDescription()); + it.setDecoders(src.getDecoders()); it.setMvcMethod(src.getMvcMethod()); it.setNonBlocking(src.isNonBlocking()); it.setSummary(src.getSummary()); diff --git a/tests/src/test/java/io/jooby/i3400/Issue3400.java b/tests/src/test/java/io/jooby/i3400/Issue3400.java deleted file mode 100644 index bc944a6606..0000000000 --- a/tests/src/test/java/io/jooby/i3400/Issue3400.java +++ /dev/null @@ -1,39 +0,0 @@ -package io.jooby.i3400; - -import io.jooby.Jooby; -import io.jooby.jackson.JacksonModule; -import io.jooby.junit.ServerTest; -import io.jooby.junit.ServerTestRunner; -import okhttp3.MediaType; -import okhttp3.RequestBody; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -public class Issue3400 { - - static class AppA extends Jooby { - { - post("/pets", ctx -> ctx.body(Pet.class)); - } - } - - @ServerTest - public void shouldShareDecodersOnMountedResources(ServerTestRunner runner) { - runner - .define( - app -> { - app.install(new JacksonModule()); - app.mount(new AppA()); - }) - .ready( - http -> { - http.post( - "/pets", - RequestBody.create("{\"id\": 1, \"name\": \"Cheddar\"}", MediaType.parse("application/json")), - rsp -> { - assertEquals("{\"id\":1,\"name\":\"Cheddar\"}", rsp.body().string()); - assertEquals("application/json;charset=UTF-8", rsp.header("Content-Type")); - }); - }); - } -} diff --git a/tests/src/test/java/io/jooby/i3400/Pet.java b/tests/src/test/java/io/jooby/i3400/Pet.java deleted file mode 100644 index 0aca6c76c8..0000000000 --- a/tests/src/test/java/io/jooby/i3400/Pet.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.jooby.i3400; - -class Pet { - private int id; - private String name; - - public Pet(int id, String name) { - this.id = id; - this.name = name; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -}