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;
+ }
}