This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new e6ffa3b751 Test CXF client with a method referencing class with 
runtime initialization #4208 
https://github.com/quarkiverse/quarkus-cxf/issues/580
e6ffa3b751 is described below

commit e6ffa3b751b595dc1e2b73aa71ef31724deffe56
Author: Peter Palaga <ppal...@redhat.com>
AuthorDate: Tue May 9 22:23:24 2023 +0200

    Test CXF client with a method referencing class with runtime initialization 
#4208 https://github.com/quarkiverse/quarkus-cxf/issues/580
---
 .../soap/mtom/awt/it/CxfSoapMtomAwtResource.java   |  8 ++--
 .../cxf/soap/mtom/awt/it/CxfSoapMtomAwtRoutes.java | 13 ++++++
 .../cxf/soap/mtom/awt/it/IImageService.java        |  6 ++-
 .../component/cxf/soap/mtom/awt/it/ImageData.java  | 53 ----------------------
 .../cxf/soap/mtom/awt/it/ImageService.java         | 14 +++---
 5 files changed, 28 insertions(+), 66 deletions(-)

diff --git 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtResource.java
 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtResource.java
index 0cb3ce26fb..5bc8e6459f 100644
--- 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtResource.java
+++ 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtResource.java
@@ -54,7 +54,7 @@ public class CxfSoapMtomAwtResource {
         try (ByteArrayInputStream bais = new ByteArrayInputStream(image)) {
             final String response = producerTemplate.requestBodyAndHeader(
                     "direct:" + mtomEndpoint(mtomEnabled),
-                    new ImageData(ImageIO.read(bais), imageName),
+                    new Object[] { ImageIO.read(bais), imageName },
                     OPERATION_NAME, "uploadImage", String.class);
             return Response
                     .created(new URI("https://camel.apache.org/";))
@@ -67,13 +67,13 @@ public class CxfSoapMtomAwtResource {
     @GET
     public Response download(@PathParam("imageName") String imageName, 
@QueryParam("mtomEnabled") boolean mtomEnabled)
             throws Exception {
-        final ImageData image = (ImageData) 
producerTemplate.requestBodyAndHeader(
+        final java.awt.Image image = producerTemplate.requestBodyAndHeader(
                 "direct:" + mtomEndpoint(mtomEnabled),
                 imageName,
                 OPERATION_NAME,
-                "downloadImage", ImageData.class);
+                "downloadImage", java.awt.Image.class);
         try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
-            ImageIO.write((BufferedImage) image.getData(), "png", baos);
+            ImageIO.write((BufferedImage) image, "png", baos);
             byte[] bytes = baos.toByteArray();
             return Response
                     .created(new URI("https://camel.apache.org/";))
diff --git 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtRoutes.java
 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtRoutes.java
index c26bbc0223..1b16e89d90 100644
--- 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtRoutes.java
+++ 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/CxfSoapMtomAwtRoutes.java
@@ -28,6 +28,7 @@ import jakarta.xml.ws.handler.Handler;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.cxf.jaxws.CxfEndpoint;
 import org.apache.cxf.ext.logging.LoggingFeature;
+import org.apache.cxf.message.MessageContentsList;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.ConfigProvider;
 
@@ -54,6 +55,18 @@ public class CxfSoapMtomAwtRoutes extends RouteBuilder {
                 .to("direct:processAwtImage");
 
         from("direct:processAwtImage")
+                .process(exchange -> {
+                    String operationName = (String) 
exchange.getIn().getHeaders().get("operationName");
+                    MessageContentsList list = 
exchange.getIn().getBody(MessageContentsList.class);
+                    if ("uploadImage".equals(operationName)) {
+                        exchange.getIn().getHeaders().put("image", 
list.get(0));
+                        exchange.getIn().getHeaders().put("imageName", 
list.get(1));
+                        exchange.getIn().getHeaders()
+                                .put("operationName", 
"uploadImage(${header.image},${header.imageName})");
+                    } else if ("downloadImage".equals(operationName)) {
+                        exchange.getIn().setBody(list.get(0));
+                    }
+                })
                 
.recipientList((simple("bean:imageAwtService?method=${header.operationName}")));
 
     }
diff --git 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/IImageService.java
 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/IImageService.java
index c9dcbd3931..cbb13a1c10 100644
--- 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/IImageService.java
+++ 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/IImageService.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.quarkus.component.cxf.soap.mtom.awt.it;
 
+import java.awt.Image;
+
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebService;
 
@@ -23,9 +25,9 @@ import jakarta.jws.WebService;
 public interface IImageService {
 
     @WebMethod
-    ImageData downloadImage(String name);
+    Image downloadImage(String name);
 
     @WebMethod
-    String uploadImage(ImageData image);
+    String uploadImage(Image image, String imageName);
 
 }
diff --git 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageData.java
 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageData.java
deleted file mode 100644
index 78281881b6..0000000000
--- 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageData.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.cxf.soap.mtom.awt.it;
-
-import java.awt.Image;
-
-import jakarta.xml.bind.annotation.XmlType;
-
-@XmlType(name = "imageData", namespace = "http://org.jboss.ws/xop/doclit";)
-public class ImageData {
-
-    private Image data;
-    private String name;
-
-    public ImageData() {
-    }
-
-    public ImageData(Image data, String name) {
-        super();
-        this.data = data;
-        this.name = name;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Image getData() {
-        return data;
-    }
-
-    public void setData(Image data) {
-        this.data = data;
-    }
-}
diff --git 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageService.java
 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageService.java
index c533d28f28..8d572aaf63 100644
--- 
a/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageService.java
+++ 
b/integration-test-groups/cxf-soap/cxf-soap-mtom-awt/src/main/java/org/apache/camel/quarkus/component/cxf/soap/mtom/awt/it/ImageService.java
@@ -31,11 +31,11 @@ public class ImageService implements IImageService {
     public static final String MSG_SUCCESS = "Upload Successful";
     private static final Logger log = Logger.getLogger(ImageService.class);
 
-    private final Map<String, ImageData> imageRepository = new 
ConcurrentHashMap<>();
+    private final Map<String, Image> imageRepository = new 
ConcurrentHashMap<>();
 
     @Override
-    public ImageData downloadImage(String name) {
-        final ImageData image = imageRepository.get(name);
+    public Image downloadImage(String name) {
+        final Image image = imageRepository.get(name);
         if (image == null) {
             throw new IllegalStateException("Image with name " + name + " does 
not exist.");
         }
@@ -43,12 +43,12 @@ public class ImageService implements IImageService {
     }
 
     @Override
-    public String uploadImage(ImageData image) {
+    public String uploadImage(Image image, String imageName) {
 
-        log.infof("Upload image: %s", image.getName());
+        log.infof("Upload image: %s", imageName);
 
-        if (image.getData() != null && image.getName() != null) {
-            imageRepository.put(image.getName(), image);
+        if (image != null && imageName != null) {
+            imageRepository.put(imageName, image);
             return MSG_SUCCESS;
         }
         throw new IllegalStateException("Illegal Data Format.");

Reply via email to