[aries-jax-rs-whiteboard] 02/02: [ARIES-2002][ARIES-2003] IT for auto unproxying and @ApplicationPath ignore logic

2020-09-22 Thread rmannibucau
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 
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 000..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")

[aries-jax-rs-whiteboard] 02/02: [ARIES-2002][ARIES-2003] IT for auto unproxying and @ApplicationPath ignore logic

2020-09-22 Thread rmannibucau
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 
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 000..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")