Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade to CXF 4.0.4 #1274

Merged
merged 6 commits into from
Mar 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ jobs:
strategy:
fail-fast: false
matrix:
testModule: ['client', 'client-server', 'fastinfoset', 'hc5', 'metrics', 'mtls', 'mtls -Djks', 'mtom', 'mtom-awt', 'opentelemetry', 'santuario-xmlsec', 'server', 'ws-rm-client', 'ws-security', 'ws-security -Djks', 'ws-security-policy', 'ws-security-policy -Djks', 'ws-trust', 'wsdl2java', 'wsdl2java-no-config']
testModule: ['client', 'client-server', 'fastinfoset', 'hc5', 'metrics', 'mtls', 'mtls -Djks', 'mtom', 'mtom-awt', 'opentelemetry', 'santuario-xmlsec', 'server', 'ws-rm-client', 'ws-security', 'ws-security -Djks', 'ws-security-policy', 'ws-security-policy -Djks', 'ws-security-policy-fips', 'ws-security-policy-fips -Djks', 'ws-trust', 'wsdl2java', 'wsdl2java-no-config']
name: ${{matrix.testModule}} native tests
needs: build-and-run-jvm-tests
runs-on: ubuntu-latest
Expand Down
5 changes: 5 additions & 0 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,11 @@
<artifactId>quarkus-cxf-rt-ws-security-deployment</artifactId>
<version>${quarkus-cxf.version}</version>
</dependency>
<dependency>
<groupId>io.quarkiverse.cxf</groupId>
<artifactId>quarkus-cxf-bc-stub</artifactId>
<version>${quarkus-cxf.version}</version>
</dependency>
<dependency>
<groupId>io.quarkiverse.cxf</groupId>
<artifactId>quarkus-cxf-rt-ws-rm</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion docs/antora.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ asciidoc:
attributes:

# Versions
quarkus-version: 3.8.1 # replace ${quarkus.version}
quarkus-version: 3.8.2 # replace ${quarkus.version}
quarkus-cxf-version: 3.8.0 # replace ${release.current-version}

# Toggle whether some page elements are rendered
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,4 +224,3 @@ quarkus.cxf.client.helloSaml2.security.signature.username = alice
quarkus.cxf.client.helloSaml2.security.signature.password = alice-keystore-password
quarkus.cxf.client.helloSaml2.security.signature.crypto = #aliceCrypto
quarkus.cxf.client.helloSaml2.security.saml-callback-handler = #saml2CallbackHandler

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -482,11 +482,8 @@ void customizers(
CXFRecorder recorder,
CxfFixedConfig config,
BuildProducer<RuntimeBusCustomizerBuildItem> customizers) {
final HTTPConduitImpl factory = HTTPConduitImpl.fromOptional(
config.httpConduitFactory(),
hc5Present(),
"quarkus.cxf.http-conduit-impl",
HTTPConduitImpl.QuarkusCXFDefault);
final HTTPConduitImpl factory = config.httpConduitFactory()
.orElse(hc5Present() ? HTTPConduitImpl.CXFDefault : HTTPConduitImpl.QuarkusCXFDefault);
switch (factory) {
case CXFDefault:
// nothing to do
Expand All @@ -507,7 +504,7 @@ void customizers(

static boolean hc5Present() {
try {
Class.forName("io.quarkiverse.cxf.transport.http.hc5.QuarkusAsyncHTTPConduitFactory");
Class.forName("io.quarkiverse.cxf.transport.http.hc5.QuarkusWorkQueueImpl");
return true;
} catch (ClassNotFoundException e) {
/* Fine, we can set the chosen ConduitFactory */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,7 @@ public CXFClientInfo(CXFClientData other, CxfConfig cxfConfig, CxfClientConfig c
* In that case, the HTTPConduitFactory set on the Bus based on quarkus.cxf.http-conduit-impl
* should kick in.
*/
this.httpConduitImpl = HTTPConduitImpl.fromOptional(config.httpConduitFactory(), CXFRecorder.isHc5Present(),
"quarkus.cxf.client." + configKey + ".http-conduit-impl", null);
this.httpConduitImpl = config.httpConduitFactory().orElse(null);
this.configKey = configKey;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -488,24 +488,6 @@ public enum HTTPConduitImpl {
HttpClientHTTPConduitFactory,
@ConfigDocEnumValue("URLConnectionHTTPConduitFactory")
URLConnectionHTTPConduitFactory;

public static HTTPConduitImpl fromOptional(Optional<HTTPConduitImpl> optional, boolean hc5Present, String key,
HTTPConduitImpl defaultValue) {
if (optional.isPresent() && optional.get() != HTTPConduitImpl.CXFDefault && hc5Present) {
/*
* This is bad: the user has to choose whether he wants URLConnectionHTTPConduitFactory or
* QuarkusAsyncHTTPConduitFactory
*/
throw new RuntimeException("You cannot use " + key + "=" + optional.get().name()
+ " and io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5 simultaneously." + " Either remove " + key
+ "=" + optional.get().name() + " from application.properties"
+ " or remove the io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5 dependency");
} else if (!optional.isPresent() && hc5Present) {
return HTTPConduitImpl.CXFDefault;
} else {
return optional.orElse(defaultValue);
}
}
}

public enum WellKnownHostnameVerifier {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public HTTPConduit createConduit(HTTPTransportFactory f, Bus b, EndpointInfo loc
if (httpConduitImpl == null) {
httpConduitImpl = cxFixedConfig.httpConduitFactory().orElse(null);
}
if (httpConduitImpl == HTTPConduitImpl.CXFDefault && hc5Present && busHTTPConduitFactory != null) {
if (httpConduitImpl == null && hc5Present && busHTTPConduitFactory != null) {
return configure(
busHTTPConduitFactory.createConduit(f, b, localInfo, target),
cxfClientInfo);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.transport.http.HTTPConduitFactory;
import org.apache.cxf.transport.http.asyncclient.hc5.AsyncHTTPConduit;
import org.apache.cxf.transport.http.asyncclient.hc5.AsyncHTTPConduitFactory;
import org.assertj.core.api.Assertions;
import org.jboss.logging.Logger;
import org.jboss.shrinkwrap.api.ShrinkWrap;
Expand All @@ -17,8 +19,6 @@
import org.junit.jupiter.api.extension.RegisterExtension;

import io.quarkiverse.cxf.annotation.CXFClient;
import io.quarkiverse.cxf.transport.http.hc5.QuarkusAsyncHTTPConduit;
import io.quarkiverse.cxf.transport.http.hc5.QuarkusAsyncHTTPConduitFactory;
import io.quarkus.test.QuarkusUnitTest;

public class Hc5ConduitFactoryTest {
Expand All @@ -42,10 +42,10 @@ public class Hc5ConduitFactoryTest {
void conduitFactory() {
final Bus bus = BusFactory.getDefaultBus();
final HTTPConduitFactory factory = bus.getExtension(HTTPConduitFactory.class);
Assertions.assertThat(factory).isInstanceOf(QuarkusAsyncHTTPConduitFactory.class);
Assertions.assertThat(factory).isInstanceOf(AsyncHTTPConduitFactory.class);

final Client client = ClientProxy.getClient(helloService);
Assertions.assertThat(client.getConduit()).isInstanceOf(QuarkusAsyncHTTPConduit.class);
Assertions.assertThat(client.getConduit()).isInstanceOf(AsyncHTTPConduit.class);

/* ... and make sure that the alternative conduit works */
Assertions.assertThat(helloService.hello("Joe")).isEqualTo("Hello Joe");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

import org.apache.cxf.Bus;
import org.apache.cxf.transport.http.HTTPConduitFactory;
import org.apache.cxf.transport.http.asyncclient.hc5.AsyncHttpResponseWrapperFactory;
import org.apache.cxf.workqueue.WorkQueueManager;
import org.eclipse.microprofile.context.ManagedExecutor;

Expand Down Expand Up @@ -31,7 +32,7 @@ public RuntimeValue<Consumer<Bus>> customizeBus() {
} else {
throw new IllegalStateException(ManagedExecutor.class.getName() + " not available in Arc");
}
bus.setExtension(new QuarkusAsyncHTTPConduitFactory(bus), HTTPConduitFactory.class);
bus.setExtension(new QuarkusAsyncHttpResponseWrapperFactory(), AsyncHttpResponseWrapperFactory.class);
});
}
}

This file was deleted.

Loading