Author: rmannibucau
Date: Sun Jan  6 21:04:42 2013
New Revision: 1429597

URL: http://svn.apache.org/viewvc?rev=1429597&view=rev
Log:
better rest logging

Modified:
    
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
    
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
    
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java

Modified: 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java?rev=1429597&r1=1429596&r2=1429597&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRSService.java
 Sun Jan  6 21:04:42 2013
@@ -75,6 +75,6 @@ public class CxfRSService extends RESTSe
 
     @Override
     protected RsHttpListener createHttpListener() {
-        return new CxfRsHttpListener(httpTransportFactory);
+        return new CxfRsHttpListener(httpTransportFactory, getWildcard());
     }
 }

Modified: 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1429597&r1=1429596&r2=1429597&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
 Sun Jan  6 21:04:42 2013
@@ -18,8 +18,12 @@ package org.apache.openejb.server.cxf.rs
 
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.JAXRSServiceImpl;
 import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
 import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
+import org.apache.cxf.jaxrs.model.ClassResourceInfo;
+import org.apache.cxf.jaxrs.model.MethodDispatcher;
+import org.apache.cxf.jaxrs.model.OperationResourceInfo;
 import org.apache.cxf.jaxrs.provider.JAXBElementProvider;
 import org.apache.cxf.jaxrs.provider.json.JSONProvider;
 import org.apache.cxf.service.invoker.Invoker;
@@ -67,13 +71,16 @@ public class CxfRsHttpListener implement
     public static final String PROVIDERS_KEY = CXF_JAXRS_PREFIX + "providers";
     private static final String STATIC_SUB_RESOURCE_RESOLUTION_KEY = 
"staticSubresourceResolution";
 
-    private HTTPTransportFactory transportFactory;
+    private final HTTPTransportFactory transportFactory;
+    private final String wildcard;
     private AbstractHTTPDestination destination;
     private Server server;
     private String context = "";
 
-    public CxfRsHttpListener(HTTPTransportFactory httpTransportFactory) {
+    public CxfRsHttpListener(final HTTPTransportFactory httpTransportFactory, 
final String star) {
         transportFactory = httpTransportFactory;
+        wildcard = star;
+
     }
 
     @Override
@@ -250,6 +257,40 @@ public class CxfRsHttpListener implement
             this.context = "/" + webContext;
         }
         destination = (AbstractHTTPDestination) server.getDestination();
+
+        final JAXRSServiceImpl service = (JAXRSServiceImpl) 
factory.getServiceFactory().getService();
+        final List<ClassResourceInfo> resources = 
service.getClassResourceInfos();
+        for (final ClassResourceInfo info : resources) {
+            if (info.getResourceClass() == null) { // possible?
+                continue;
+            }
+
+            final String address = singleSlash(prefix.substring(0, 
prefix.length() - wildcard.length()), info.getURITemplate().getValue());
+
+            String clazz = info.getResourceClass().getName();
+            if (restEjbs.containsKey(clazz)) {
+                LOGGER.info("REST EJB[" + clazz + "]  -> " + address);
+            } else {
+                LOGGER.info("REST Pojo[" + clazz + "]  -> " + address);
+            }
+
+            clazz = info.getResourceClass().getSimpleName(); // the qualified 
name is already printed just make it clearer
+            final MethodDispatcher md = info.getMethodDispatcher();
+            for (OperationResourceInfo ori : md.getOperationResourceInfos()) {
+                LOGGER.info("     -> Method[" + clazz + "#" + 
ori.getMethodToInvoke().getName() + "]"
+                        + "  -> " + ori.getHttpMethod() + " " + 
singleSlash(address, ori.getURITemplate().getValue()));
+            }
+        }
+    }
+
+    private static String singleSlash(final String address, final String 
value) {
+        if (address.endsWith("/") && value.startsWith("/")) {
+            return address + value.substring(1);
+        }
+        if (!address.endsWith("/") && !value.startsWith("/")) {
+            return address + '/' + value;
+        }
+        return address + value;
     }
 
     private JAXRSServerFactoryBean newFactory(String prefix) {

Modified: 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java?rev=1429597&r1=1429596&r2=1429597&view=diff
==============================================================================
--- 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
 (original)
+++ 
openejb/trunk/openejb/server/openejb-rest/src/main/java/org/apache/openejb/server/rest/RESTService.java
 Sun Jan  6 21:04:42 2013
@@ -386,11 +386,7 @@ public abstract class RESTService implem
                 classLoader, injections, context, owbCtx, // injection/webapp 
context
                 new ServiceConfiguration(configuration, appInfo.services)); // 
deployment config
 
-        if (!application.getClass().equals(InternalApplication.class)) {
-            LOGGER.info("REST Application: " + address.complete + "  -> " + 
application.getClass().getName());
-        } else {
-            LOGGER.info("REST Application: " + address.complete + "  -> " + 
contextRoot);
-        }
+        LOGGER.info("REST Application: " + address.complete + "  -> " + 
application.getClass().getName());
     }
 
     private static String appPrefix(final WebAppInfo info, final Class<?> 
appClazz) {
@@ -892,4 +888,8 @@ public abstract class RESTService implem
     public List<DeployedService> getServices() {
         return services;
     }
+
+    public String getWildcard() {
+        return wildcard;
+    }
 }


Reply via email to