Author: sergeyb
Date: Tue May 7 16:01:12 2013
New Revision: 1479957
URL: http://svn.apache.org/r1479957
Log:
Merged revisions 1479952 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1479952 | sergeyb | 2013-05-07 16:52:34 +0100 (Tue, 07 May 2013) | 1 line
Custom ResourceComparators can extend OperationResourceInfoComparator so the
old constructor needs to be restored
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
svn:mergeinfo = /cxf/trunk:1479952
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java?rev=1479957&r1=1479956&r2=1479957&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java
(original)
+++
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java
Tue May 7 16:01:12 2013
@@ -19,6 +19,7 @@
package org.apache.cxf.jaxrs.model;
+import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@@ -36,14 +37,10 @@ public class OperationResourceInfoCompar
private boolean getMethod;
private Message message;
private ResourceComparator rc;
- private MediaType contentType;
- private List<MediaType> acceptTypes;
+ private MediaType contentType = MediaType.WILDCARD_TYPE;
+ private List<MediaType> acceptTypes =
Collections.singletonList(MediaType.WILDCARD_TYPE);
- public OperationResourceInfoComparator(Message m,
- String httpMethod,
- boolean getMethod,
- MediaType contentType,
- List<MediaType> acceptTypes) {
+ public OperationResourceInfoComparator(Message m, String method) {
this.message = m;
if (message != null) {
Object o =
m.getExchange().get(Endpoint.class).get("org.apache.cxf.jaxrs.comparator");
@@ -51,9 +48,17 @@ public class OperationResourceInfoCompar
rc = (ResourceComparator)o;
}
}
+ this.httpMethod = method;
+ }
+
+ public OperationResourceInfoComparator(Message m,
+ String httpMethod,
+ boolean getMethod,
+ MediaType contentType,
+ List<MediaType> acceptTypes) {
+ this(m, httpMethod);
this.contentType = contentType;
this.acceptTypes = acceptTypes;
- this.httpMethod = httpMethod;
this.getMethod = getMethod;
}
@@ -85,7 +90,6 @@ public class OperationResourceInfoCompar
}
if (result == 0 && !getMethod) {
-
result = JAXRSUtils.compareSortedConsumesMediaTypes(
e1.getConsumeTypes(),
e2.getConsumeTypes(),
Modified:
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java?rev=1479957&r1=1479956&r2=1479957&view=diff
==============================================================================
---
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
(original)
+++
cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
Tue May 7 16:01:12 2013
@@ -19,12 +19,20 @@
package org.apache.cxf.jaxrs.model;
+import java.util.Collections;
import java.util.List;
import javax.ws.rs.Consumes;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
+import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.message.Exchange;
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageImpl;
+import org.easymock.EasyMock;
+
import org.junit.Assert;
import org.junit.Test;
@@ -85,4 +93,60 @@ public class OperationResourceInfoTest e
"text/xml", ctypes.get(0).toString());
}
+ @Test
+ public void testComparator1() throws Exception {
+ OperationResourceInfo ori1 = new OperationResourceInfo(
+
TestClass.class.getMethod("doIt", new Class[]{}),
+ new
ClassResourceInfo(TestClass.class));
+ ori1.setURITemplate(new URITemplate("/"));
+
+ OperationResourceInfo ori2 = new OperationResourceInfo(
+
TestClass.class.getMethod("doThat", new Class[]{}),
+ new
ClassResourceInfo(TestClass.class));
+
+ ori2.setURITemplate(new URITemplate("/"));
+
+ OperationResourceInfoComparator cmp = new
OperationResourceInfoComparator(null, null);
+
+
+ int result = cmp.compare(ori1, ori2);
+ assertEquals(0, result);
+ }
+
+ @Test
+ public void testComparator2() throws Exception {
+ Message m = createMessage();
+
+ OperationResourceInfo ori1 = new OperationResourceInfo(
+
TestClass.class.getMethod("doIt", new Class[]{}),
+ new
ClassResourceInfo(TestClass.class));
+ ori1.setURITemplate(new URITemplate("/"));
+
+ OperationResourceInfo ori2 = new OperationResourceInfo(
+
TestClass.class.getMethod("doThat", new Class[]{}),
+ new
ClassResourceInfo(TestClass.class));
+
+ ori2.setURITemplate(new URITemplate("/"));
+
+ OperationResourceInfoComparator cmp = new
OperationResourceInfoComparator(m, "POST", false,
+ MediaType.WILDCARD_TYPE,
Collections.singletonList(MediaType.WILDCARD_TYPE));
+
+
+ int result = cmp.compare(ori1, ori2);
+ assertEquals(0, result);
+ }
+
+
+ private Message createMessage() {
+ Message m = new MessageImpl();
+ Exchange e = new ExchangeImpl();
+ m.setExchange(e);
+ e.setInMessage(m);
+ Endpoint endpoint = EasyMock.createMock(Endpoint.class);
+ endpoint.get("org.apache.cxf.jaxrs.comparator");
+ EasyMock.expectLastCall().andReturn(null);
+ EasyMock.replay(endpoint);
+ e.put(Endpoint.class, endpoint);
+ return m;
+ }
}