You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2021/04/03 03:14:28 UTC

[tomee] branch master updated: Passes com.sun.ts.tests.jaxrs.ee.rs.pathparam.locator

This is an automated email from the ASF dual-hosted git repository.

dblevins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee.git


The following commit(s) were added to refs/heads/master by this push:
     new 0cb3eac  Passes com.sun.ts.tests.jaxrs.ee.rs.pathparam.locator
0cb3eac is described below

commit 0cb3eac77127a50dc8d38a2e99ac3b698209c7f8
Author: David Blevins <da...@gmail.com>
AuthorDate: Fri Apr 2 20:13:33 2021 -0700

    Passes com.sun.ts.tests.jaxrs.ee.rs.pathparam.locator
---
 docs/contrib/debug/jaxrs.adoc                        | 20 ++++++++++++++++++++
 .../java/org/apache/openejb/server/cxf/rs/Logs.java  |  9 +++++++++
 .../server/cxf/transport/HttpDestination.java        | 17 +++++++++++++++++
 .../org/apache/openejb/server/rest/RESTService.java  |  6 ++++++
 4 files changed, 52 insertions(+)

diff --git a/docs/contrib/debug/jaxrs.adoc b/docs/contrib/debug/jaxrs.adoc
new file mode 100644
index 0000000..ad15b18
--- /dev/null
+++ b/docs/contrib/debug/jaxrs.adoc
@@ -0,0 +1,20 @@
+:index-group: Debugging
+:jbake-date: 2021-04-02
+:jbake-type: page
+:jbake-status: published
+
+= Debugging JAX-RS Services
+
+Key classes:
+
+ - org.apache.cxf.jaxrs.model.OperationResourceInfo
+
+Key breakpoints for deployment
+
+ - org.apache.openejb.server.rest.RESTService#afterApplicationCreated
+ - org.apache.openejb.server.rest.RESTService#deployApplication
+
+Key breakpoints for runtime
+
+ - org.apache.cxf.jaxrs.utils.JAXRSUtils#findTargetMethod
+ - 
\ No newline at end of file
diff --git a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Logs.java b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Logs.java
index e061547..6697cd0 100644
--- a/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Logs.java
+++ b/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/Logs.java
@@ -155,6 +155,15 @@ public class Logs {
 
             return method.compareTo(o.method);
         }
+
+        @Override
+        public String toString() {
+            return "LogOperationEndpointInfo{" +
+                    "http='" + http + '\'' +
+                    ", address='" + address + '\'' +
+                    ", method='" + method + '\'' +
+                    '}';
+        }
     }
 
     public static class LogResourceEndpointInfo implements Comparable<LogResourceEndpointInfo> {
diff --git a/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java b/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
index 152434d..3a5f096 100644
--- a/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
+++ b/server/openejb-cxf-transport/src/main/java/org/apache/openejb/server/cxf/transport/HttpDestination.java
@@ -18,10 +18,15 @@
 package org.apache.openejb.server.cxf.transport;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.message.Message;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 import org.apache.cxf.transport.http.DestinationRegistry;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.logging.Logger;
 
@@ -38,4 +43,16 @@ public class HttpDestination extends AbstractHTTPDestination {
     public Logger getLogger() {
         return Logger.getLogger(HttpDestination.class.getName());
     }
+
+    @Override
+    protected void setupMessage(final Message inMessage, final ServletConfig config, final ServletContext context, final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
+        super.setupMessage(inMessage, config, context, req, resp);
+
+        /*
+         * This parameter is needed to pass these tests of the Jakarta EE TCK
+         *
+         * com.sun.ts.tests.jaxrs.ee.rs.pathparam.locator
+         */
+        inMessage.put("keep.subresource.candidates", true);
+    }
 }
diff --git a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
index ad13728..9fb42a9 100644
--- a/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
+++ b/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
@@ -109,6 +109,12 @@ public abstract class RESTService implements ServerService, SelfManaging {
     protected boolean enabled = true;
     private final String wildcard = SystemInstance.get().getProperty("openejb.rest.wildcard", ".*"); // embedded = regex, tomee = servlet
 
+    /**
+     * Deployment of JAX-RS services starts in response to a AfterApplicationCreated event
+     * after normal deployment is done
+     * @param appInfo the ear (real or auto-created) in which the webapp is contained
+     * @param webApp the webapp containing EJB or Pojo rest services to deploy
+     */
     public void afterApplicationCreated(final AppInfo appInfo, final WebAppInfo webApp) {
         if ("false".equalsIgnoreCase(appInfo.properties.getProperty("openejb.jaxrs.on", "true"))) {
             return;