This is an automated email from the ASF dual-hosted git repository. johndament pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cxf.git
commit afed71ec5f771f4c484f0b443009588a9fc4d6a3 Author: John D. Ament <[email protected]> AuthorDate: Mon Dec 18 23:26:18 2017 -0500 [CXF-7579] Fix sorting to take into account custom vs user. Remove verbose output from TCK --- .../apache/cxf/jaxrs/provider/ProviderFactory.java | 2 +- .../cxf/microprofile/client/ContractComparator.java | 21 +++++++++++++++------ .../client/MicroProfileClientFactoryBean.java | 6 ++++-- .../client/MicroProfileClientProviderFactory.java | 12 +++++++++--- systests/microprofile/client/weld/pom.xml | 3 ++- 5 files changed, 31 insertions(+), 13 deletions(-) diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java index 4fd6657..ed4ce0a 100644 --- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java +++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderFactory.java @@ -846,7 +846,7 @@ public abstract class ProviderFactory { } } - private static int compareCustomStatus(ProviderInfo<?> p1, ProviderInfo<?> p2) { + protected static int compareCustomStatus(ProviderInfo<?> p1, ProviderInfo<?> p2) { Boolean custom1 = p1.isCustom(); Boolean custom2 = p2.isCustom(); int result = custom1.compareTo(custom2) * -1; diff --git a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/ContractComparator.java b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/ContractComparator.java index 5ef4fb5..02bab65 100644 --- a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/ContractComparator.java +++ b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/ContractComparator.java @@ -20,20 +20,29 @@ package org.apache.cxf.microprofile.client; import java.util.Comparator; import java.util.Map; + +import org.apache.cxf.jaxrs.model.ProviderInfo; import org.apache.cxf.jaxrs.utils.AnnotationUtils; import static org.apache.cxf.microprofile.client.MicroProfileClientConfigurableImpl.CONTRACTS; -class ContractComparator implements Comparator<Object> { - private MicroProfileClientFactoryBean microProfileClientFactoryBean; +class ContractComparator implements Comparator<ProviderInfo<?>> { + private final MicroProfileClientFactoryBean microProfileClientFactoryBean; + private final Comparator<ProviderInfo<?>> parent; - ContractComparator(MicroProfileClientFactoryBean microProfileClientFactoryBean) { + ContractComparator(MicroProfileClientFactoryBean microProfileClientFactoryBean, + Comparator<ProviderInfo<?>> parent) { this.microProfileClientFactoryBean = microProfileClientFactoryBean; + this.parent = parent; } @Override - public int compare(Object oLeft, Object oRight) { - int left = getPriority(oLeft.getClass()); - int right = getPriority(oRight.getClass()); + public int compare(ProviderInfo<?> oLeft, ProviderInfo<?> oRight) { + int parentResult = parent.compare(oLeft, oRight); + if (parentResult != 0) { + return parentResult; + } + int left = getPriority(oLeft.getResourceClass()); + int right = getPriority(oRight.getResourceClass()); return left - right; } diff --git a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java index 6855740..e9a1767 100644 --- a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java +++ b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientFactoryBean.java @@ -20,6 +20,7 @@ package org.apache.cxf.microprofile.client; import java.net.URI; import java.util.ArrayList; +import java.util.Comparator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -35,11 +36,12 @@ import org.apache.cxf.jaxrs.client.ClientState; import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean; import org.apache.cxf.jaxrs.model.ClassResourceInfo; import org.apache.cxf.jaxrs.model.FilterProviderInfo; +import org.apache.cxf.jaxrs.model.ProviderInfo; import org.apache.cxf.microprofile.client.proxy.MicroProfileClientProxyImpl; import org.eclipse.microprofile.rest.client.RestClientBuilder; public class MicroProfileClientFactoryBean extends JAXRSClientFactoryBean { - private final ContractComparator comparator; + private final Comparator<ProviderInfo<?>> comparator; private final List<Object> registeredProviders; private Configuration configuration; private ClassLoader proxyLoader; @@ -49,7 +51,7 @@ public class MicroProfileClientFactoryBean extends JAXRSClientFactoryBean { String baseUri, Class<?> aClass) { super(); this.configuration = configuration.getConfiguration(); - this.comparator = new ContractComparator(this); + this.comparator = MicroProfileClientProviderFactory.createComparator(this); super.setAddress(baseUri); super.setServiceClass(aClass); super.setProviderComparator(comparator); diff --git a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientProviderFactory.java b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientProviderFactory.java index ec24efc..05a0457 100644 --- a/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientProviderFactory.java +++ b/rt/rs/microprofile-client/src/main/java/org/apache/cxf/microprofile/client/MicroProfileClientProviderFactory.java @@ -37,14 +37,15 @@ public final class MicroProfileClientProviderFactory extends ProviderFactory { static final String CLIENT_FACTORY_NAME = MicroProfileClientProviderFactory.class.getName(); private List<ProviderInfo<ResponseExceptionMapper<?>>> responseExceptionMappers = new ArrayList<ProviderInfo<ResponseExceptionMapper<?>>>(1); - private final ContractComparator comparator; + private final Comparator<ProviderInfo<?>> comparator; - private MicroProfileClientProviderFactory(Bus bus, ContractComparator comparator) { + private MicroProfileClientProviderFactory(Bus bus, Comparator<ProviderInfo<?>> comparator) { super(bus); this.comparator = comparator; } - public static MicroProfileClientProviderFactory createInstance(Bus bus, ContractComparator comparator) { + public static MicroProfileClientProviderFactory createInstance(Bus bus, + Comparator<ProviderInfo<?>> comparator) { if (bus == null) { bus = BusFactory.getThreadDefaultBus(); } @@ -63,6 +64,11 @@ public final class MicroProfileClientProviderFactory extends ProviderFactory { return (MicroProfileClientProviderFactory)e.get(CLIENT_FACTORY_NAME); } + static Comparator<ProviderInfo<?>> createComparator(MicroProfileClientFactoryBean bean) { + Comparator<ProviderInfo<?>> parent = ProviderFactory::compareCustomStatus; + return new ContractComparator(bean, parent); + } + @Override protected void setProviders(boolean custom, boolean busGlobal, Object... providers) { List<ProviderInfo<?>> theProviders = diff --git a/systests/microprofile/client/weld/pom.xml b/systests/microprofile/client/weld/pom.xml index 990d344..77628bd 100644 --- a/systests/microprofile/client/weld/pom.xml +++ b/systests/microprofile/client/weld/pom.xml @@ -31,6 +31,7 @@ <properties> <microprofile.rest.client.version>1.0-SNAPSHOT</microprofile.rest.client.version> <geronimo.config.version>1.0</geronimo.config.version> + <wiremock.params>--port=8765</wiremock.params> </properties> <dependencies> <dependency> @@ -119,7 +120,7 @@ </goals> <configuration> <dir>target/classes</dir> - <params>--port=8765 --verbose</params> + <params>${wiremock.params}</params> </configuration> </execution> </executions> -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
