From 9468def1ed2351b40834c74daed9ddcdfc276487 Mon Sep 17 00:00:00 2001 From: Peter Palaga Date: Wed, 5 Feb 2025 12:31:52 +0100 Subject: [PATCH] Deprecate io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5, fix #1632 --- .../quarkus-cxf-rt-transports-http-hc5.adoc | 6 ++- docs/modules/ROOT/pages/reference/index.adoc | 3 +- .../advanced-client-topics/async-client.adoc | 45 +++++++++++++++++++ .../transports-http-hc5/runtime/pom.xml | 1 + .../runtime/src/main/doc/intro.adoc | 8 +++- .../resources/META-INF/quarkus-extension.yaml | 2 + pom.xml | 2 +- 7 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 docs/modules/ROOT/pages/user-guide/advanced-client-topics/async-client.adoc diff --git a/docs/modules/ROOT/pages/reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc b/docs/modules/ROOT/pages/reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc index e1f9c339b..6f748008a 100644 --- a/docs/modules/ROOT/pages/reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc +++ b/docs/modules/ROOT/pages/reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc @@ -6,13 +6,15 @@ :cq-artifact-id: quarkus-cxf-rt-transports-http-hc5 :cq-group-id: io.quarkiverse.cxf :cq-status: Stable -:cq-deprecated: false +:cq-deprecated: true :cq-since: 1.1.0 ifeval::[{doc-show-badges} == true] -Stable • Since 1.1.0 +Stable • Since 1.1.0 • ⚠️Deprecated endif::[] +*Deprecated since {quarkus-cxf-project-name} 3.19.0, scheduled for removal in 3.21.0* + Implement async SOAP Clients using Apache HttpComponents HttpClient 5. diff --git a/docs/modules/ROOT/pages/reference/index.adoc b/docs/modules/ROOT/pages/reference/index.adoc index ed44da4db..71cb54863 100644 --- a/docs/modules/ROOT/pages/reference/index.adoc +++ b/docs/modules/ROOT/pages/reference/index.adoc @@ -7,7 +7,7 @@ The following table shows the {quarkus-cxf-project-name} extensions. Click the extension names to learn more about how to configure and use them, and about any known limitations. -[cols="4,1,1,4"] +[cols="5,2,1,5"] |=== | Quarkus CXF extension | Support level | Since | Supported standards // standards: START @@ -51,6 +51,7 @@ Click the extension names to learn more about how to configure and use them, and | xref:reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc[Quarkus CXF HTTP Async Transport] + `quarkus-cxf-rt-transports-http-hc5` |Stable +⚠️Deprecated |1.1.0 | diff --git a/docs/modules/ROOT/pages/user-guide/advanced-client-topics/async-client.adoc b/docs/modules/ROOT/pages/user-guide/advanced-client-topics/async-client.adoc new file mode 100644 index 000000000..c69ba2f96 --- /dev/null +++ b/docs/modules/ROOT/pages/user-guide/advanced-client-topics/async-client.adoc @@ -0,0 +1,45 @@ +[[async-client]] += Asynchronous client + +== Synchronous vs. asynchronous + +Before {quarkus-cxf-project-name} 3.17.0, CXF clients based on `VertxHttpClientHTTPConduit` could only be called synchronously: + +[source,java] +---- +@CXFClient("hello") +HelloService hello; + +String callHello() { + // Synchronous CXF client call + hello.hello("Joe"); +} +---- + +{quarkus-cxf-project-name} 3.17.0 introduces the asynchronous mode for `VertxHttpClientHTTPConduit`-based clients: + +[source,java] +---- +import io.smallrye.mutiny.Uni; + +@CXFClient("hello") +HelloService hello; + +Uni callHelloAsync() { + return Uni.createFrom() + // Asynchronous CXF client call returning java.util.concurrent.Future + .future(hello.helloAsync("Joe")) + .map(HelloResponse::getReturn); +} +---- + +This works much like with the existing `xref:reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc[Apache HttpClient 5 Async HTTP Transport]`. +The main difference is that you do not need to add the `io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5` dependency to your application anymore. + +You still need to +xref:reference/extensions/quarkus-cxf-rt-transports-http-hc5.adoc#extensions-quarkus-cxf-rt-transports-http-hc5-usage-generate-async-methods[generate the async methods] +using the embedded `wsdl2java` tool. + +We plan to https://github.com/quarkiverse/quarkus-cxf/issues/1619[add a new documentation page] dedicated to this topic. + +We plan to deprecate `io.quarkiverse.cxf:quarkus-cxf-rt-transports-http-hc5` once the asynchronous mode of `VertxHttpClientHTTPConduit` passes some battle testing. diff --git a/extensions/transports-http-hc5/runtime/pom.xml b/extensions/transports-http-hc5/runtime/pom.xml index b934d6e8a..2421f42a5 100644 --- a/extensions/transports-http-hc5/runtime/pom.xml +++ b/extensions/transports-http-hc5/runtime/pom.xml @@ -14,6 +14,7 @@ 1.1.0 + true diff --git a/extensions/transports-http-hc5/runtime/src/main/doc/intro.adoc b/extensions/transports-http-hc5/runtime/src/main/doc/intro.adoc index 5f1fb471c..0674b1122 100644 --- a/extensions/transports-http-hc5/runtime/src/main/doc/intro.adoc +++ b/extensions/transports-http-hc5/runtime/src/main/doc/intro.adoc @@ -1 +1,7 @@ -Implement async SOAP Clients using Apache HttpComponents HttpClient 5. \ No newline at end of file +[IMPORTANT] +==== +This extension is deprecated since {quarkus-cxf-project-name} 3.19.0 and is scheduled for removal in 3.21.0. +Use +==== + +Implement async SOAP Clients using Apache HttpComponents HttpClient 5. diff --git a/extensions/transports-http-hc5/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/transports-http-hc5/runtime/src/main/resources/META-INF/quarkus-extension.yaml index 6e4b46a9b..065259dbf 100644 --- a/extensions/transports-http-hc5/runtime/src/main/resources/META-INF/quarkus-extension.yaml +++ b/extensions/transports-http-hc5/runtime/src/main/resources/META-INF/quarkus-extension.yaml @@ -9,3 +9,5 @@ metadata: categories: - "integration" guide: "https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/reference/extensions/quarkus-cxf-rt-transports-http-hc5.html" + status: "deprecated" + unlisted: true diff --git a/pom.xml b/pom.xml index d0cd7a3d5..1ad9677b8 100644 --- a/pom.xml +++ b/pom.xml @@ -76,7 +76,7 @@ [3.6.2,) - 4.16.1 + 4.16.2-SNAPSHOT 3.5.0 2.1.1 3.0.23