Author: rmannibucau
Date: Wed Jan 16 08:10:37 2013
New Revision: 1433847
URL: http://svn.apache.org/viewvc?rev=1433847&view=rev
Log:
TOMEE-739 resource comparator mapping for rest endpoints
Modified:
tomee/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Modified:
tomee/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
URL:
http://svn.apache.org/viewvc/tomee/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java?rev=1433847&r1=1433846&r2=1433847&view=diff
==============================================================================
---
tomee/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
(original)
+++
tomee/trunk/openejb/server/openejb-cxf-rs/src/main/java/org/apache/openejb/server/cxf/rs/CxfRsHttpListener.java
Wed Jan 16 08:10:37 2013
@@ -20,6 +20,7 @@ import org.apache.cxf.endpoint.Server;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
import org.apache.cxf.jaxrs.JAXRSServiceImpl;
+import org.apache.cxf.jaxrs.ext.ResourceComparator;
import org.apache.cxf.jaxrs.lifecycle.ResourceProvider;
import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider;
import org.apache.cxf.jaxrs.model.ClassResourceInfo;
@@ -83,6 +84,7 @@ public class CxfRsHttpListener implement
public static final String PROVIDERS_KEY = CXF_JAXRS_PREFIX + "providers";
public static final String STATIC_RESOURCE_KEY = CXF_JAXRS_PREFIX +
"static-resources-list";
public static final String STATIC_SUB_RESOURCE_RESOLUTION_KEY =
"staticSubresourceResolution";
+ public static final String RESOURCE_COMPARATOR_KEY = CXF_JAXRS_PREFIX +
"resourceComparator";
private static final Map<String, String> STATIC_CONTENT_TYPES;
@@ -466,6 +468,21 @@ public class CxfRsHttpListener implement
factory.setStaticSubresourceResolution("true".equalsIgnoreCase(staticSubresourceResolution));
}
+ // resource comparator
+ final String resourceComparator =
serviceConfiguration.getProperties().getProperty(RESOURCE_COMPARATOR_KEY);
+ if (resourceComparator != null) {
+ try {
+ ResourceComparator instance = (ResourceComparator)
ServiceInfos.resolve(services, resourceComparator);
+ if (instance == null) {
+ instance = (ResourceComparator)
Thread.currentThread().getContextClassLoader()
+ .loadClass(resourceComparator).newInstance();
+ }
+ factory.setResourceComparator(instance);
+ } catch (Exception e) {
+ LOGGER.error("Can't create the resource comparator " +
resourceComparator, e);
+ }
+ }
+
// static resources
final String staticResources =
serviceConfiguration.getProperties().getProperty(STATIC_RESOURCE_KEY);
if (staticResources != null) {