This is an automated email from the ASF dual-hosted git repository.
jamesnetherton pushed a commit to branch camel-quarkus-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git
The following commit(s) were added to refs/heads/camel-quarkus-main by this
push:
new 41c94cfb [camel-4.21] Fix #8691 CXF SOAP example for CAMEL-23526
header name changes (#507)
41c94cfb is described below
commit 41c94cfb8f5263c3183b6a286b239608e8266427
Author: JiriOndrusek <[email protected]>
AuthorDate: Wed Jun 10 11:06:26 2026 +0200
[camel-4.21] Fix #8691 CXF SOAP example for CAMEL-23526 header name changes
(#507)
* Fix #8691 CXF SOAP example for CAMEL-23526 header name changes
CAMEL-23526 renamed CXF header constants to follow Camel naming conventions:
- operationName → CamelCxfOperationName
- operationNamespace → CamelCxfOperationNamespace
* Avoid hard coding header names
---------
Co-authored-by: James Netherton <[email protected]>
---
.../main/java/org/acme/cxf/soap/pojo/PojoCxfConsumerRouteBuilder.java | 4 +++-
.../main/java/org/acme/cxf/soap/pojo/PojoCxfProducerRouteBuilder.java | 3 +++
cxf-soap/src/main/java/org/acme/cxf/soap/utils/CxfServerUtils.java | 3 +++
cxf-soap/src/main/java/org/acme/cxf/soap/wsdl/MyWsdlRouteBuilder.java | 4 +++-
4 files changed, 12 insertions(+), 2 deletions(-)
diff --git
a/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfConsumerRouteBuilder.java
b/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfConsumerRouteBuilder.java
index dcec4cfa..c46e1ccf 100644
---
a/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfConsumerRouteBuilder.java
+++
b/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfConsumerRouteBuilder.java
@@ -23,6 +23,8 @@ import org.acme.cxf.soap.pojo.service.ContactService;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.cxf.jaxws.CxfEndpoint;
+import static org.acme.cxf.soap.utils.CxfServerUtils.OPERATION_NAME_HEADER;
+
/**
* This class demonstrate how to expose a SOAP endpoint starting from java
classes
*/
@@ -43,6 +45,6 @@ public class PojoCxfConsumerRouteBuilder extends RouteBuilder
{
@Override
public void configure() throws Exception {
from("cxf:bean:contact")
-
.recipientList(simple("bean:inMemoryContactService?method=${header.operationName}"));
+ .recipientList(simple("bean:inMemoryContactService?method=" +
OPERATION_NAME_HEADER));
}
}
diff --git
a/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfProducerRouteBuilder.java
b/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfProducerRouteBuilder.java
index 8db54754..6239b576 100644
---
a/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfProducerRouteBuilder.java
+++
b/cxf-soap/src/main/java/org/acme/cxf/soap/pojo/PojoCxfProducerRouteBuilder.java
@@ -25,6 +25,7 @@ import org.acme.cxf.soap.pojo.service.Contacts;
import org.acme.cxf.soap.utils.CxfServerUtils;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.cxf.common.DataFormat;
+import org.apache.camel.component.cxf.common.message.CxfConstants;
import org.apache.camel.component.cxf.jaxws.CxfEndpoint;
import org.apache.camel.model.dataformat.JsonLibrary;
import org.apache.camel.model.rest.RestBindingMode;
@@ -60,9 +61,11 @@ public class PojoCxfProducerRouteBuilder extends
RouteBuilder {
.to("direct:contacts");
from("direct:contact")
+ .setHeader(CxfConstants.OPERATION_NAME, constant("addContact"))
.to("cxf:bean:soapClientEndpointPojo");
from("direct:contacts")
+ .setHeader(CxfConstants.OPERATION_NAME,
constant("getContacts"))
.to("cxf:bean:soapClientEndpointPojo")
.convertBodyTo(Contacts.class)
.marshal().json(JsonLibrary.Jackson);
diff --git a/cxf-soap/src/main/java/org/acme/cxf/soap/utils/CxfServerUtils.java
b/cxf-soap/src/main/java/org/acme/cxf/soap/utils/CxfServerUtils.java
index dec296ad..23325fa6 100644
--- a/cxf-soap/src/main/java/org/acme/cxf/soap/utils/CxfServerUtils.java
+++ b/cxf-soap/src/main/java/org/acme/cxf/soap/utils/CxfServerUtils.java
@@ -17,10 +17,13 @@
package org.acme.cxf.soap.utils;
import io.quarkus.runtime.LaunchMode;
+import org.apache.camel.component.cxf.common.message.CxfConstants;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
public final class CxfServerUtils {
+ public static final String OPERATION_NAME_HEADER =
"${header.%s}".formatted(CxfConstants.OPERATION_NAME);
+
private CxfServerUtils() {
}
diff --git
a/cxf-soap/src/main/java/org/acme/cxf/soap/wsdl/MyWsdlRouteBuilder.java
b/cxf-soap/src/main/java/org/acme/cxf/soap/wsdl/MyWsdlRouteBuilder.java
index 2a28ab49..7659de2e 100644
--- a/cxf-soap/src/main/java/org/acme/cxf/soap/wsdl/MyWsdlRouteBuilder.java
+++ b/cxf-soap/src/main/java/org/acme/cxf/soap/wsdl/MyWsdlRouteBuilder.java
@@ -31,6 +31,8 @@ import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.cxf.jaxws.CxfEndpoint;
import org.apache.cxf.message.MessageContentsList;
+import static org.acme.cxf.soap.utils.CxfServerUtils.OPERATION_NAME_HEADER;
+
/**
* This class demonstrate how to expose a SOAP endpoint starting from a wsdl,
using the
* quarkus-maven-plugin:generate-code
@@ -63,7 +65,7 @@ public class MyWsdlRouteBuilder extends RouteBuilder {
public void configure() throws Exception {
// CustomerService is generated with
quarkus-maven-plugin:generate-code during the build
from("cxf:bean:customer")
- .recipientList(simple("direct:${header.operationName}"));
+ .recipientList(simple("direct:" + OPERATION_NAME_HEADER));
from("direct:getCustomersByName").process(exchange -> {
String name = exchange.getIn().getBody(String.class);