You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by rm...@apache.org on 2020/09/22 16:09:48 UTC
[aries-jax-rs-whiteboard] 02/02: [ARIES-2002][ARIES-2003] IT for
auto unproxying and @ApplicationPath ignore logic
This is an automated email from the ASF dual-hosted git repository.
rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-jax-rs-whiteboard.git
commit eb41442bcdd4823b3ad6f023dc0d83e3718d6345
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Tue Sep 22 18:04:04 2020 +0200
[ARIES-2002][ARIES-2003] IT for auto unproxying and @ApplicationPath ignore logic
---
jax-rs.itests/src/main/java/test/JaxrsTest.java | 47 ++++++++++++++++++++++
.../test/types/TestApplicationWithAppPath.java | 44 ++++++++++++++++++++
.../test/types/TestApplicationWithSingletons.java | 45 +++++++++++++++++++++
3 files changed, 136 insertions(+)
diff --git a/jax-rs.itests/src/main/java/test/JaxrsTest.java b/jax-rs.itests/src/main/java/test/JaxrsTest.java
index 32688b8..26fc4ef 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -78,7 +78,9 @@ import test.types.TestAddonConflict;
import test.types.TestAddonConflict2;
import test.types.TestApplication;
import test.types.TestApplicationConflict;
+import test.types.TestApplicationWithAppPath;
import test.types.TestApplicationWithException;
+import test.types.TestApplicationWithSingletons;
import test.types.TestAsyncResource;
import test.types.TestCxfExtension;
import test.types.TestFilter;
@@ -110,6 +112,51 @@ import static org.junit.Assert.assertNull;
public class JaxrsTest extends TestHelper {
@Test
+ public void testApplicationWithAppPath() throws InterruptedException {
+ registerApplication(new TestApplicationWithAppPath());
+ assertEquals(1, getRuntimeDTO().applicationDTOs.length);
+
+ WebTarget webTarget = createDefaultTarget().path("/test-application/my");
+ Response response = webTarget.request().get();
+ assertEquals("ok", response.readEntity(String.class));
+
+ RuntimeDTO runtimeDTO = _runtime.getRuntimeDTO();
+ ApplicationDTO[] applicationDTOs = runtimeDTO.applicationDTOs;
+ assertEquals(1, applicationDTOs.length);
+
+ ApplicationDTO applicationDTO = applicationDTOs[0];
+ assertEquals("/test-application", applicationDTO.base);
+ }
+
+ @Test
+ public void testApplicationWithSingletonProxy() throws InterruptedException {
+ registerApplication(new TestApplicationWithSingletons());
+ assertEquals(1, getRuntimeDTO().applicationDTOs.length);
+
+ WebTarget webTarget = createDefaultTarget().path("/test-application/my");
+ Response response = webTarget.request().get();
+ assertEquals("ok", response.readEntity(String.class));
+
+ RuntimeDTO runtimeDTO = _runtime.getRuntimeDTO();
+ ApplicationDTO[] applicationDTOs = runtimeDTO.applicationDTOs;
+ assertEquals(1, applicationDTOs.length);
+
+ ApplicationDTO applicationDTO = applicationDTOs[0];
+ ResourceMethodInfoDTO[] resourceMethods =
+ applicationDTO.resourceMethods;
+ assertEquals(1, resourceMethods.length);
+
+ ResourceMethodInfoDTO resourceMethod = resourceMethods[0];
+ assertEquals(HttpMethod.GET, resourceMethod.method);
+ assertEquals("/my", resourceMethod.path);
+ assertNull(resourceMethod.consumingMimeType);
+ assertArrayEquals(
+ new String[]{MediaType.TEXT_PLAIN},
+ resourceMethod.producingMimeType);
+ assertNull(resourceMethod.nameBindings);
+ }
+
+ @Test
public void testApplication() throws InterruptedException {
assertEquals(0, getRuntimeDTO().applicationDTOs.length);
diff --git a/jax-rs.itests/src/main/java/test/types/TestApplicationWithAppPath.java b/jax-rs.itests/src/main/java/test/types/TestApplicationWithAppPath.java
new file mode 100644
index 0000000..02c9479
--- /dev/null
+++ b/jax-rs.itests/src/main/java/test/types/TestApplicationWithAppPath.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.types;
+
+import javax.ws.rs.ApplicationPath;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Application;
+import java.util.Collections;
+import java.util.Set;
+
+@ApplicationPath("foo")
+public class TestApplicationWithAppPath extends Application {
+
+ @Override
+ public Set<Object> getSingletons() {
+ return Collections.<Object>singleton(new MyResource());
+ }
+
+ @Path("my")
+ @Produces("text/plain")
+ public static class MyResource {
+ @GET
+ public String get() {
+ return "ok";
+ }
+ }
+}
diff --git a/jax-rs.itests/src/main/java/test/types/TestApplicationWithSingletons.java b/jax-rs.itests/src/main/java/test/types/TestApplicationWithSingletons.java
new file mode 100644
index 0000000..0fd34cf
--- /dev/null
+++ b/jax-rs.itests/src/main/java/test/types/TestApplicationWithSingletons.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package test.types;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Application;
+import java.util.Collections;
+import java.util.Set;
+
+public class TestApplicationWithSingletons extends Application {
+
+ @Override
+ public Set<Object> getSingletons() {
+ return Collections.<Object>singleton(new MyResource$$Proxy());
+ }
+
+ @Path("my")
+ @Produces("text/plain")
+ public static class MyResource {
+ @GET
+ public String get() {
+ return "ok";
+ }
+ }
+
+ public static class MyResource$$Proxy extends MyResource {
+ }
+}