You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by cs...@apache.org on 2018/12/05 08:47:15 UTC
[aries-jax-rs-whiteboard] 01/02: [ARIES-1866] Delegate to JAX-RS
ordering
This is an automated email from the ASF dual-hosted git repository.
csierra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/aries-jax-rs-whiteboard.git
commit 03ef7192ee840b8d82c88509de888a701c8d7e94
Author: Carlos Sierra <cs...@apache.org>
AuthorDate: Wed Dec 5 09:21:03 2018 +0100
[ARIES-1866] Delegate to JAX-RS ordering
when both service.rankings are missing or equal
---
jax-rs.itests/src/main/java/test/JaxrsTest.java | 22 ++++++++++++++++++----
.../internal/cxf/ComparableResourceComparator.java | 8 ++++++--
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/jax-rs.itests/src/main/java/test/JaxrsTest.java b/jax-rs.itests/src/main/java/test/JaxrsTest.java
index 4625e7d..bb765b9 100644
--- a/jax-rs.itests/src/main/java/test/JaxrsTest.java
+++ b/jax-rs.itests/src/main/java/test/JaxrsTest.java
@@ -1563,7 +1563,8 @@ public class JaxrsTest extends TestHelper {
path("a").
path("b");
- registerAddon(new TestResourceTie());
+ ServiceRegistration<?> serviceRegistration1 = registerAddon(
+ new TestResourceTie());
Response response = webTarget.request().get();
@@ -1571,7 +1572,7 @@ public class JaxrsTest extends TestHelper {
"This should say tie/a/b 1", "tie/a/b 1",
response.readEntity(String.class));
- ServiceRegistration<?> serviceRegistration = registerAddon(
+ ServiceRegistration<?> serviceRegistration2 = registerAddon(
new TestResourceTie2());
response = webTarget.request().get();
@@ -1580,7 +1581,7 @@ public class JaxrsTest extends TestHelper {
"This should say tie/a/b 2", "tie/a/b 2",
response.readEntity(String.class));
- serviceRegistration.unregister();
+ serviceRegistration2.unregister();
response = webTarget.request().get();
@@ -1588,13 +1589,26 @@ public class JaxrsTest extends TestHelper {
"This should say tie/a/b 1", "tie/a/b 1",
response.readEntity(String.class));
- registerAddon(new TestResourceTie2(), "service.ranking", -1);
+ serviceRegistration2 = registerAddon(
+ new TestResourceTie2(), "service.ranking", -1);
response = webTarget.request().get();
assertEquals(
"This should say tie/a/b 1", "tie/a/b 1",
response.readEntity(String.class));
+
+ serviceRegistration2.unregister();
+ serviceRegistration1.unregister();
+
+ registerAddon(new TestResourceTie(), "service.ranking", 1);
+ registerAddon(new TestResourceTie2(), "service.ranking", 1);
+
+ response = webTarget.request().get();
+
+ assertEquals(
+ "This should say tie/a/b 2", "tie/a/b 2",
+ response.readEntity(String.class));
}
@Test
diff --git a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/ComparableResourceComparator.java b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/ComparableResourceComparator.java
index db815af..be1f003 100644
--- a/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/ComparableResourceComparator.java
+++ b/jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/cxf/ComparableResourceComparator.java
@@ -26,6 +26,7 @@ import org.apache.cxf.jaxrs.model.OperationResourceInfo;
import org.apache.cxf.message.Message;
import java.util.Comparator;
+import java.util.Objects;
public class ComparableResourceComparator
implements ResourceComparator {
@@ -78,8 +79,11 @@ public class ComparableResourceComparator
CachingServiceReference ref1 = rp1.getImmutableServiceReference();
CachingServiceReference ref2 = rp2.getImmutableServiceReference();
- if ((ref1.getProperty("service.ranking") == null) &&
- (ref2.getProperty("service.ranking") == null)) {
+ Object serviceRanking1 = ref1.getProperty("service.ranking");
+ Object serviceRanking2 = ref2.getProperty("service.ranking");
+
+ if ((serviceRanking1 == null && serviceRanking2 == null) ||
+ Objects.equals(serviceRanking1, serviceRanking2)) {
return 0;
}