You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by "JiriOndrusek (via GitHub)" <gi...@apache.org> on 2023/03/30 12:30:59 UTC

[GitHub] [camel-quarkus] JiriOndrusek opened a new pull request, #4721: Cxf ws-rm tests coverage - JVM only

JiriOndrusek opened a new pull request, #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721

   fixes partially https://github.com/apache/camel-quarkus/issues/4689
   
   This PR adds test coverage of cxf-ws-rm, which works only in the JVM mode. 
   Native mode shows several issues:
   
   1. SecureRanom created at build time at https://github.com/apache/santuario-xml-security-java/blob/main/src/main/java/org/apache/xml/security/stax/ext/XMLSecurityConstants.java#L53 (which could be probably changed in the 3rd project)
   2.  This method returns null, although it look like the initialization is correct https://github.com/korteke/java-opensaml/blob/master/opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationService.java#L101
   
   
   <!-- Uncomment and fill this section if your PR is not trivial
   [ ] An issue should be filed for the change unless this is a trivial change (fixing a typo or similar). One issue should ideally be fixed by not more than one commit and the other way round, each commit should fix just one issue, without pulling in other changes.
   [ ] Each commit in the pull request should have a meaningful and properly spelled subject line and body. Copying the title of the associated issue is typically enough. Please include the issue number in the commit message prefixed by #.
   [ ] The pull request description should explain what the pull request does, how, and why. If the info is available in the associated issue or some other external document, a link is enough.
   [ ] Phrases like Fix #<issueNumber> or Fixes #<issueNumber> will auto-close the named issue upon merging the pull request. Using them is typically a good idea.
   [ ] Please run mvn process-resources -Pformat (and amend the changes if necessary) before sending the pull request.
   [ ] Contributor guide is your good friend: https://camel.apache.org/camel-quarkus/latest/contributor-guide.html
   -->


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1519536619

   Hi @ffang , I tried this PR changes with quarkiverse-cxf with commit 6da272f1e30bfca24056c836b7c59934affc2aa6
   The result is still the same - failure. Is there any configuration required for your change? 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491846414

   > Otherwise, perhaps it just works with Camel! Do you see anything like `It is not possible to send out-of-band acknowledgments to the anonymous address. An acknowledgement will be piggybacked on the next response.` in the log?
   
   I see the same warning as you:
   (follows `grep acknowled` from my log)
   
   ```
   2023-03-31 14:18:58,737 WARN  [org.apa.cxf.ws.rm.RMOutInterceptor] (executor-thread-2) sequence not set for outbound message, skipped acknowledgement request
   2023-03-31 14:19:00,726 WARN  [org.apa.cxf.ws.rm.Proxy] (RMManager-Timer-76482793) It is not possible to send out-of-band acknowledgments to the anonymous address.
   An acknowledgement will be piggybacked on the next response. 
   2023-03-31 14:19:02,746 WARN  [org.apa.cxf.ws.rm.RMOutInterceptor] (executor-thread-2) sequence not set for outbound message, skipped acknowledgement request
   2023-03-31 14:19:02,844 WARN  [org.apa.cxf.ws.rm.RMOutInterceptor] (executor-thread-2) sequence not set for outbound message, skipped acknowledgement request
   2023-03-31 14:19:04,738 WARN  [org.apa.cxf.ws.rm.Proxy] (RMManager-Timer-76482793) It is not possible to send out-of-band acknowledgments to the anonymous address.
   An acknowledgement will be piggybacked on the next response. 
   ```
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ffang commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ffang (via GitHub)" <gi...@apache.org>.
ffang commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1513738260

   > ffang
   
   Hi @JiriOndrusek  @ppalaga ,
   
   IMO, the correct way to address https://github.com/quarkiverse/quarkus-cxf/issues/627 is that we should be able to create ws-rm/addressing decoupled endpoint on they fly using VertxDestinationFactory, so the decoupled endpoint on the ws-rm client is still using the platform servlet/http implementation(vertx on Quarkus).
   
   I have been working on it and made some progress, will add more comments later on.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491847496

   Do you see `sequence not set for outbound message, skipped acknowledgement request` in you PR?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ffang commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ffang (via GitHub)" <gi...@apache.org>.
ffang commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1520854585

   > CxfSoapWsrmTest
   
   Hi @JiriOndrusek ,
   
   Thanks for the clarification!
   
   I just pushed another commit to 
   https://github.com/quarkiverse/quarkus-cxf/pull/835
   
   Could you please re-run your test against the new commit also.
   
   Also your testcase need some configuration to use the decoupled endpoint like
   ```
   --- a/integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java
   +++ b/integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java
   @@ -26,8 +26,15 @@ import jakarta.inject.Inject;
    import jakarta.inject.Named;
    import org.apache.camel.Processor;
    import org.apache.camel.builder.RouteBuilder;
   +import org.apache.camel.component.cxf.jaxws.CxfConfigurer;
    import org.apache.camel.component.cxf.jaxws.CxfEndpoint;
   +import org.apache.cxf.endpoint.Client;
   +import org.apache.cxf.endpoint.Server;
    import org.apache.cxf.ext.logging.LoggingFeature;
   +import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
   +import org.apache.cxf.transport.http.HTTPConduit;
   +import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
   +import org.apache.cxf.ws.addressing.WSAContextUtils;
    import org.apache.cxf.ws.rm.manager.AcksPolicyType;
    import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
    import org.apache.cxf.ws.rmp.v200502.RMAssertion;
   @@ -91,7 +98,7 @@ public class CxfSoapWsrmRoutes extends RouteBuilder {
            cxfEndpoint.setAddress("/wsrm/RouterPort");
    
            addWsRmFeature(cxfEndpoint);
   -
   +        cxfEndpoint.setCxfConfigurer(new MyCxfConfigurer());
            return cxfEndpoint;
        }
    
   @@ -185,4 +192,32 @@ public class CxfSoapWsrmRoutes extends RouteBuilder {
                    : config.getValue("quarkus.http.port", Integer.class);
            return String.format("http://localhost:%d", port);
        }
   +
   +    public class MyCxfConfigurer implements CxfConfigurer {
   +
   +        @Override
   +        public void configure(AbstractWSDLBasedEndpointFactory factoryBean) {
   +            // Do nothing here
   +        }
   +
   +        @Override
   +        public void configureClient(Client client) {
   +
   +            String decoupledEndpoint = "/wsrm/decoupled_endpoint";
   +            HTTPConduit hc = (HTTPConduit) (client.getConduit());
   +            HTTPClientPolicy cp = hc.getClient();
   +            cp.setDecoupledEndpoint(decoupledEndpoint);
   +            client.getBus().setProperty(WSAContextUtils.DECOUPLED_ENDPOINT_BASE_PROPERTY,
   +                    getServerUrl()
   +                            + "/soapservice");
   +
   +        }
   +
   +        @Override
   +        public void configureServer(Server server) {
   +            // Do nothing here
   +
   +        }
   +
   +    }
   
   ```
   
   I changed this on your CQ4689-cxf-wsrm-coverage-backup branch, then I checked the log and decoupled-endpoint works using vertx destination, also the lost message got re-transmitted as expected(ws-rm works)
   
   Let me know if you have any further questions.
   
   Thanks!
   Freeman


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154093738


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.setAddress("/nowsrm/RouterPort");
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+        //simulate lost messages
+        cxfEndpoint.getOutInterceptors().add(new MessageLossSimulator());
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmClientEndpoint")
+    CxfEndpoint wsrmClientEndpoint() {
+        CxfEndpoint cxfEndpoint = noWwsrmClientEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmServerEndpoint")
+    CxfEndpoint noWsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setAddress("/noWsrm/RouterPort");
+        cxfEndpoint.getInInterceptors().add(new org.apache.cxf.ext.logging.LoggingInInterceptor());
+        cxfEndpoint.getOutInterceptors().add(new org.apache.cxf.ext.logging.LoggingOutInterceptor());

Review Comment:
   tbh I just took this code from other tests without investigating it



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1520393672

   The failure is JVM  only. 
   
   -  I built quarkus-cxf based on tag 2.0.1 with cherry-picked commit 6da272f1e30bfca24056c836b7c59934affc2aa6
   
   - I run test [CxfSoapWsrmTest](https://github.com/JiriOndrusek/camel-quarkus/blob/CQ4689-cxf-wsrm-coverage-PR/integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java) in JVM mode.
   
   The result is the same failure as without fix.
   
   ```
   [ERROR]   CxfSoapWsrmTest.testWSRM:66 1 expectation failed.
   Response body doesn't match expectation.
   Expected: "Hello wsrm2!"
     Actual: Hello wsrm1!
   ```
   
   Here is the test scenario. I hope it is correct.
   
   1. Send msg01
   2. receive msg01
   3. Send msg02 -> lost by MessageLossSimulator
   4.  receive msg02 (because of reliable messaging - the second attempt)
   
   Failure is caused by the fact that message  in the step 4 is `msg01`, 
   Which was happening because RM does not acknowledge that the message `msg01` is received therefore it is send for the second time
   
   
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491852929

   > > Do you see `sequence not set for outbound message, skipped acknowledgement request` in you PR?
   > 
   > Yes, it is there. My log is attached here: [quarkiverse/quarkus-cxf#627 (comment)](https://github.com/quarkiverse/quarkus-cxf/issues/627#issue-1473515823)
   
   Thanks for the link! So it seems, that the acknowledgement does not work in bat PRs. I briefly debugged cxf's `RMOutInterceptor` and will continue, because the "shorter" warning should be avoidable by some configuration. (at least it seems so)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491840469

   I fixed majority of issues, there are several unfinished issues:
   
   1. Use of `seda`. I have to find a proper way of using direct instead (with the current noWsrm test, undelivered message blocks direct -> some kind of timeout should fix that)
   2 As I made the wsrm test more pranoid. 1 test is failing now. I encountered a similar issue (with missing decoupeling) as you did. Wsrm tests sends `msg1`, which is received, `msg2` is lost, then `msg1` is received again. After that `msg2` is received. Problem is `sequence not set for outbound message, skipped acknowledgement request`. From the short cxf debugging it seems, that I have to configure something more, to fill sequence for [RMOutInterceptor](https://github.com/apache/cxf/blob/main/rt/ws/rm/src/main/java/org/apache/cxf/ws/rm/RMOutInterceptor.java#L104)
   @ffang  Do you know which configuration is missing?
   (common sense says that acknowledgement is not configured correctly, so send of the message is repeated even if it was delivered) 
   
   3. Native execution, I'll try to use suggestion from the above comments to solve native failure?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1527107218

   This can not be merged , the error in cxf-grouped is caused by this. We need to get this change into quarkiverse-cxf (https://github.com/quarkiverse/quarkus-cxf/pull/835) and the upgrade q-cxf in CQ to make this PR work


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154096375


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")

Review Comment:
   I tried to use direct, but it was blocked after the first part of the test (because of not delivered msg) -> but as I',m thinking about it now, this might be caused by calling something without a timeout, I used seda to avoid that problem. I'll check it again



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491849497

   > Do you see `sequence not set for outbound message, skipped acknowledgement request` in you PR?
   
   Yes, it is there. My log is attached here: https://github.com/quarkiverse/quarkus-cxf/issues/627#issue-1473515823


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491754434

   > Do you have an idea, why I'm not hitting [quarkiverse/quarkus-cxf#627 (comment)](https://github.com/quarkiverse/quarkus-cxf/issues/627#issuecomment-1341205682) ?
   
   The fact that we do not hit the issue here is a good news, isn't it? 8-)
   
   But yes, it would be good to understand why. 
   
   I have noticed that you do not set `RMStoreFeature` (plus the derby database extension and config) as I did in https://github.com/quarkiverse/quarkus-cxf/pull/626/files . That may or may not make the difference. @ffang your opinion would be welcome!
   
   Otherwise, perhaps it just works with Camel! Do you see anything like `It is not possible to send out-of-band acknowledgments to the anonymous address. An acknowledgement will be piggybacked on the next response.` in the log?
   
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ffang commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ffang (via GitHub)" <gi...@apache.org>.
ffang commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1516454963

   PR sent on quarkus-cxf 
   https://github.com/quarkiverse/quarkus-cxf/pull/835


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1527590626

   I have converted to draft, so that it does not awake too much attention


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1153506364


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/pom.xml:
##########
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-build-parent-it</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-integration-test-cxf-soap-ws-rm</artifactId>
+    <name>Camel Quarkus :: Integration Tests :: Cxf Soap WS-rm</name>
+    <description>Integration tests for Camel Quarkus CXF extension WS-reliable mssaging</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-cxf-soap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-resteasy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-seda</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.cxf</groupId>
+            <artifactId>cxf-rt-ws-rm</artifactId>

Review Comment:
   This should be 
   ```suggestion
               <groupId>io.quarkiverse.cxf</groupId>
               <artifactId>quarkus-cxf-rt-ws-rm</artifactId>
   ```



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Path("/wsrm")
+    @POST
+    @Consumes(MediaType.WILDCARD)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response wsrm(String msg) throws Exception {
+        String response = producerTemplate.requestBodyAndHeader("seda:rswmInvoker", msg, "enableWsrm", true,

Review Comment:
   Is there any hidden sense in using `rswmInvoker` rather than `wsrmInvoker`?



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);

Review Comment:
   It would be good to add `quarkus-cxf-rt-features-logging` dependency for the logging feature to work properly in native mode.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/MessageLossSimulator.java:
##########
@@ -0,0 +1,112 @@
+/*
+ * 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.wsrm.it;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ListIterator;
+
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.interceptor.InterceptorChain;
+import org.apache.cxf.interceptor.MessageSenderInterceptor;
+import org.apache.cxf.io.AbstractWrappedOutputStream;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.PhaseInterceptor;
+import org.apache.cxf.ws.rm.RMContextUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MessageLossSimulator extends AbstractPhaseInterceptor<Message> {
+    private static final Logger LOG = LoggerFactory.getLogger(MessageLossSimulator.class.getName());
+    private int appMessageCount;
+
+    public MessageLossSimulator() {
+        super("prepare-send");
+        this.addBefore(MessageSenderInterceptor.class.getName());
+    }
+
+    private static String getAction(Object map) {
+        if (map == null) {
+            return null;
+        } else {
+            try {
+                Object o = map.getClass().getMethod("getAction").invoke(map);
+                return (String) o.getClass().getMethod("getValue").invoke(o);

Review Comment:
   Is this reflection handled somehow in native mode?



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")

Review Comment:
   The bean name is a bit too generic. One day it might clash with another bean from another test in the group. I'd vote for using `wsrpResults` or similar.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.setAddress("/nowsrm/RouterPort");
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+        //simulate lost messages
+        cxfEndpoint.getOutInterceptors().add(new MessageLossSimulator());
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmClientEndpoint")
+    CxfEndpoint wsrmClientEndpoint() {
+        CxfEndpoint cxfEndpoint = noWwsrmClientEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmServerEndpoint")
+    CxfEndpoint noWsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setAddress("/noWsrm/RouterPort");
+        cxfEndpoint.getInInterceptors().add(new org.apache.cxf.ext.logging.LoggingInInterceptor());
+        cxfEndpoint.getOutInterceptors().add(new org.apache.cxf.ext.logging.LoggingOutInterceptor());
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmServerEndpoint")
+    CxfEndpoint wsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = noWsrmServerEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("greeterService<Wsrm")

Review Comment:
   ```suggestion
       @Named("greeterServiceWsrm")  
   ```
   
   Typo?



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/MessageLossSimulator.java:
##########
@@ -0,0 +1,112 @@
+/*
+ * 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.wsrm.it;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ListIterator;
+
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.interceptor.InterceptorChain;
+import org.apache.cxf.interceptor.MessageSenderInterceptor;
+import org.apache.cxf.io.AbstractWrappedOutputStream;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
+import org.apache.cxf.phase.PhaseInterceptor;
+import org.apache.cxf.ws.rm.RMContextUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class MessageLossSimulator extends AbstractPhaseInterceptor<Message> {
+    private static final Logger LOG = LoggerFactory.getLogger(MessageLossSimulator.class.getName());
+    private int appMessageCount;
+
+    public MessageLossSimulator() {
+        super("prepare-send");
+        this.addBefore(MessageSenderInterceptor.class.getName());
+    }
+
+    private static String getAction(Object map) {
+        if (map == null) {
+            return null;
+        } else {
+            try {
+                Object o = map.getClass().getMethod("getAction").invoke(map);
+                return (String) o.getClass().getMethod("getValue").invoke(o);
+            } catch (Throwable var2) {
+                throw new Fault(var2);
+            }
+        }
+    }
+
+    public void handleMessage(Message message) throws Fault {
+        Object maps = RMContextUtils.retrieveMAPs(message, false, true);
+        String action = getAction(maps);
+        if (!RMContextUtils.isRMProtocolMessage(action)) {
+            ++this.appMessageCount;
+            if (0 == this.appMessageCount % 2) {

Review Comment:
   This can be called concurrently. You should either synchronize or use `AtomicInteger` instead of `int`.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Path("/wsrm")
+    @POST
+    @Consumes(MediaType.WILDCARD)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response wsrm(String msg) throws Exception {
+        String response = producerTemplate.requestBodyAndHeader("seda:rswmInvoker", msg, "enableWsrm", true,
+                String.class);
+
+        return Response
+                .created(new URI("https://camel.apache.org/"))
+                .entity(response)
+                .build();
+    }
+
+    @Path("/noWsrm")
+    @POST
+    @Consumes(MediaType.WILDCARD)
+    @Produces(MediaType.TEXT_PLAIN)
+    public void noWsrm(String msg) throws Exception {
+        producerTemplate.sendBodyAndHeader("seda:rswmInvoker", msg, "enableWsrm", false);
+    }
+
+    @Path("/noWsrm")
+    @GET
+    public String noWsrm() throws Exception {
+        return results.isEmpty() ? null : results.getLast();

Review Comment:
   The list can be read/written concurrently. With the current solution it is actually possible to read the second event before the first. 
   I'd vote for using `ConcurrentLinkedDeque` as a FIFO queue - i.e. here you'd use the `poll()` method instead of `getLast()` without having to test `isEmpty()`. You can keep using `add()` in Camel routes.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }

Review Comment:
   I wonder, what we are actually testing in the WSRM scenario? 
   
   I'd say are we making sure that the redelivery works and that the server receives the second message in spite of the first attempt to deliver it failed. How can we be sure that the redelivery takes place? If our MessageLossSimulator is removed by accident or if it does not work as it should, then this test would still pass.
   
   I'd vote for being more paranoid: we should let the MessageLossSimulator add something like `msg + " lost by MessageLossSimulator"` to results and here in the "WSRP on" scenario we should also poll for the content of results. Having that in place, the sequence of messages stored in result would be `Hello wsrm1!`,`wsrm2 lost by MessageLossSimulator`, `Hello wsrm2!`. WDYT?
   



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }
+
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testNoWSRM() throws InterruptedException {
+        RestAssured.given()
+                .body("noWsrm1")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(10, TimeUnit.SECONDS).until(() -> {
+            String body = RestAssured.get("/cxf-soap/noWsrm")
+                    .then()
+                    .extract().asString();
+
+            return "Hello noWsrm1!".equals(body);
+        });
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("noWsrm2")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        //wait some time to get result (which should not be there)
+        Thread.sleep(10000);
+
+        RestAssured.get("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(200)
+                .body(not(is("Hello noWsrm2!")));

Review Comment:
   If we use a FIFO queue, then it would be empty at this point. Maybe we could send `noWsrm3`  and make sure that it was caught by results? 



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")

Review Comment:
   Are we using seda in some other Maven module of the cxf-soap group? Otherwise I'd vote for using direct instead of seda to keep the number of dependencies minimal.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }
+
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testNoWSRM() throws InterruptedException {
+        RestAssured.given()
+                .body("noWsrm1")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(10, TimeUnit.SECONDS).until(() -> {
+            String body = RestAssured.get("/cxf-soap/noWsrm")
+                    .then()
+                    .extract().asString();
+
+            return "Hello noWsrm1!".equals(body);
+        });
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("noWsrm2")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        //wait some time to get result (which should not be there)
+        Thread.sleep(10000);

Review Comment:
   Instead of sleeping for 10 sec we could rather make sure that results contains `noWsrm2 lost by MessageLossSimulator`. 



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.setAddress("/nowsrm/RouterPort");
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+        //simulate lost messages
+        cxfEndpoint.getOutInterceptors().add(new MessageLossSimulator());
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmClientEndpoint")
+    CxfEndpoint wsrmClientEndpoint() {
+        CxfEndpoint cxfEndpoint = noWwsrmClientEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmServerEndpoint")
+    CxfEndpoint noWsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setAddress("/noWsrm/RouterPort");
+        cxfEndpoint.getInInterceptors().add(new org.apache.cxf.ext.logging.LoggingInInterceptor());
+        cxfEndpoint.getOutInterceptors().add(new org.apache.cxf.ext.logging.LoggingOutInterceptor());

Review Comment:
   I wonder whether the logging feature added above does anything else than adding these exact two interceptors? I think we can remove these and keep the feature.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154323786


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Path("/wsrm")
+    @POST
+    @Consumes(MediaType.WILDCARD)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response wsrm(String msg) throws Exception {
+        String response = producerTemplate.requestBodyAndHeader("seda:rswmInvoker", msg, "enableWsrm", true,

Review Comment:
   It does not matter much. I though it was perhaps some joke that I was failing to understand 😁



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ffang commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ffang (via GitHub)" <gi...@apache.org>.
ffang commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1518027733

   Hi @JiriOndrusek ,
   
   Could you please run your test here in camel-quarkus against my patch(https://github.com/quarkiverse/quarkus-cxf/pull/835) from quarkus-cxf to see if it addresses the issue?
   
   Thanks!
   Freeman


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ffang commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ffang (via GitHub)" <gi...@apache.org>.
ffang commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1520343491

   > Hi @ffang , I tried this PR changes with quarkiverse-cxf with commit 6da272f1e30bfca24056c836b7c59934affc2aa6 The result is still the same - failure. Is there any configuration required for your change?
   
   Hi @JiriOndrusek ,
   
   Could you please clarify that the failure is native or JVM?
   
   My fix in quarkus-cxf is to enable VertxDestination for the decoupled endpoint and so fix up the "piggybacked" WARN message from the log, it doesn't touch native thing.
   
   Thanks!
   Freeman


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491895215

   @ppalaga Did you try using of `decoupled_endpoint`? I can use `CxfConfigurer` to execute similar code like in CSB ([code](https://github.com/apache/camel-spring-boot/blob/camel-spring-boot-3.x/components-starter/camel-cxf-soap-starter/src/test/java/org/apache/camel/component/cxf/soap/springboot/wsrm/WSRMTest.java#L116-L121)), but I'm not sure how should I support that on vertx server (or i'm missing something here)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154099212


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }
+
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testNoWSRM() throws InterruptedException {
+        RestAssured.given()
+                .body("noWsrm1")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(10, TimeUnit.SECONDS).until(() -> {
+            String body = RestAssured.get("/cxf-soap/noWsrm")
+                    .then()
+                    .extract().asString();
+
+            return "Hello noWsrm1!".equals(body);
+        });
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("noWsrm2")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        //wait some time to get result (which should not be there)
+        Thread.sleep(10000);

Review Comment:
   yes, that 's right



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154094302


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")

Review Comment:
   yes, I agree



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491427220

   @ppalaga thanks for a lot of hints. I'll try to implement all of them. Do you have an idea, why I'm not hitting https://github.com/quarkiverse/quarkus-cxf/issues/627#issuecomment-1341205682 ?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491759851

   > Otherwise, perhaps it just works with Camel! Do you see anything like `It is not possible to send out-of-band acknowledgments to the anonymous address. An acknowledgement will be piggybacked on the next response.` in the log?
   
   Maybe there is some servlet container implementation smuggled in through depending on `cxf-rt-ws-rm` directly or in some other way? @ffang has shown that adding undertow solves the qcxf issue. 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154092790


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmResource.java:
##########
@@ -0,0 +1,72 @@
+/*
+ * 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.wsrm.it;
+
+import java.net.URI;
+import java.util.LinkedList;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import org.apache.camel.ProducerTemplate;
+
+@Path("/cxf-soap")
+@ApplicationScoped
+public class CxfSoapWsrmResource {
+
+    @Inject
+    ProducerTemplate producerTemplate;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Path("/wsrm")
+    @POST
+    @Consumes(MediaType.WILDCARD)
+    @Produces(MediaType.TEXT_PLAIN)
+    public Response wsrm(String msg) throws Exception {
+        String response = producerTemplate.requestBodyAndHeader("seda:rswmInvoker", msg, "enableWsrm", true,

Review Comment:
   just type, I'll fix that



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154326328


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")

Review Comment:
   Thanks for explaining, seda is fine if there is a reason for using it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491722215

   > Maybe 1. could be fixed by initializing (or reinitializing) XMLSecurityConstants at runtime?
   
   That's already the case in https://github.com/quarkiverse/quarkus-xmlsec/blob/main/deployment/src/main/java/io/quarkiverse/xmlsec/deployment/XmlsecProcessor.java#L85
   
   I'd vote for first tring to make the Random creation in XMLSecurityConstants lazy directly in [santuario-xml-security-java](https://github.com/apache/santuario-xml-security-java) - there is just one reading occurrence in the same class. It should be rather easy. 
   
   Otherwise, we may put a substitution to https://github.com/quarkiverse/quarkus-xmlsec 
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] ppalaga commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "ppalaga (via GitHub)" <gi...@apache.org>.
ppalaga commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491851731

   > 2\. As I made the wsrm test more pranoid. 1 test is failing now. 
   
   OK, it is a bad news, that it is failing, but is a great news that we understand it a bit more :-D
   
   > I encountered a similar issue (with missing decoupeling) as you did. Wsrm tests sends `msg1`, which is received, `msg2` is lost, then `msg1` is received again. After that `msg2` is received. Problem is
   > 
   > ```
   > sequence not set for outbound message, skipped acknowledgement request
   > ```
   
   I think @ffang explained it here https://github.com/quarkiverse/quarkus-cxf/issues/627#issuecomment-1338172377


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1521274200

   @ffang  thanks for explanation and the second commit. I retested both changes + configuration change with this PR and it works correcty!
   
   I updated PR and as soon as the cxf changes are merged and adapted by CQ, PR should pass.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] jamesnetherton commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "jamesnetherton (via GitHub)" <gi...@apache.org>.
jamesnetherton commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1490292142

   Doesn't have to be part of this PR but...
   
   Maybe `1.` could be fixed by initializing (or reinitializing) `XMLSecurityConstants` at runtime?
   
   `2.` perhaps there is some build time service provider config needed for [this](https://github.com/korteke/java-opensaml/blob/master/opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationService.java#L67-L68)?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1491414677

   > Doesn't have to be part of this PR but...
   > 
   > Maybe `1.` could be fixed by initializing (or reinitializing) `XMLSecurityConstants` at runtime?
   > 
   > `2.` perhaps there is some build time service provider config needed for [this](https://github.com/korteke/java-opensaml/blob/master/opensaml-core/src/main/java/org/opensaml/core/config/ConfigurationService.java#L67-L68)?
   
   Unfortunately I tried to solve both issues, but as I remember
   ad 1 - Setting SecureRandom to runtime init didn't help., because it was in conflict with something  which is build time
   ad 2 - I missed the suggested config - will try it - thanks! (I tried to get rid of the code with substitutions but without a success)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154099806


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }
+
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testNoWSRM() throws InterruptedException {
+        RestAssured.given()
+                .body("noWsrm1")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(10, TimeUnit.SECONDS).until(() -> {
+            String body = RestAssured.get("/cxf-soap/noWsrm")
+                    .then()
+                    .extract().asString();
+
+            return "Hello noWsrm1!".equals(body);
+        });
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("noWsrm2")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        //wait some time to get result (which should not be there)
+        Thread.sleep(10000);
+
+        RestAssured.get("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(200)
+                .body(not(is("Hello noWsrm2!")));

Review Comment:
   Does make sense, I'll do thatr.



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }
+
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testNoWSRM() throws InterruptedException {
+        RestAssured.given()
+                .body("noWsrm1")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(10, TimeUnit.SECONDS).until(() -> {
+            String body = RestAssured.get("/cxf-soap/noWsrm")
+                    .then()
+                    .extract().asString();
+
+            return "Hello noWsrm1!".equals(body);
+        });
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("noWsrm2")
+                .post("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(204);
+
+        //wait some time to get result (which should not be there)
+        Thread.sleep(10000);
+
+        RestAssured.get("/cxf-soap/noWsrm")
+                .then()
+                .statusCode(200)
+                .body(not(is("Hello noWsrm2!")));

Review Comment:
   Does make sense, I'll do that.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154093887


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.setAddress("/nowsrm/RouterPort");
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+        //simulate lost messages
+        cxfEndpoint.getOutInterceptors().add(new MessageLossSimulator());
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmClientEndpoint")
+    CxfEndpoint wsrmClientEndpoint() {
+        CxfEndpoint cxfEndpoint = noWwsrmClientEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmServerEndpoint")
+    CxfEndpoint noWsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setAddress("/noWsrm/RouterPort");
+        cxfEndpoint.getInInterceptors().add(new org.apache.cxf.ext.logging.LoggingInInterceptor());
+        cxfEndpoint.getOutInterceptors().add(new org.apache.cxf.ext.logging.LoggingOutInterceptor());
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmServerEndpoint")
+    CxfEndpoint wsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = noWsrmServerEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("greeterService<Wsrm")

Review Comment:
   type



##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.setAddress("/nowsrm/RouterPort");
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+        //simulate lost messages
+        cxfEndpoint.getOutInterceptors().add(new MessageLossSimulator());
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmClientEndpoint")
+    CxfEndpoint wsrmClientEndpoint() {
+        CxfEndpoint cxfEndpoint = noWwsrmClientEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmServerEndpoint")
+    CxfEndpoint noWsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.setServiceClass(GreeterService.class);
+        cxfEndpoint.getFeatures().add(loggingFeature);
+        cxfEndpoint.setAddress("/noWsrm/RouterPort");
+        cxfEndpoint.getInInterceptors().add(new org.apache.cxf.ext.logging.LoggingInInterceptor());
+        cxfEndpoint.getOutInterceptors().add(new org.apache.cxf.ext.logging.LoggingOutInterceptor());
+        cxfEndpoint.getFeatures().add(new org.apache.cxf.ws.addressing.WSAddressingFeature());
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("wsrmServerEndpoint")
+    CxfEndpoint wsrmServerEndpoint() {
+
+        CxfEndpoint cxfEndpoint = noWsrmServerEndpoint();
+        cxfEndpoint.setAddress("/wsrm/RouterPort");
+        addWsRmFeature(cxfEndpoint);
+
+        return cxfEndpoint;
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("greeterService<Wsrm")

Review Comment:
   typo



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154093171


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/main/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmRoutes.java:
##########
@@ -0,0 +1,187 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.LinkedList;
+import java.util.Map;
+
+import io.quarkus.runtime.LaunchMode;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
+import org.apache.camel.Processor;
+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.ws.rm.manager.AcksPolicyType;
+import org.apache.cxf.ws.rm.manager.DestinationPolicyType;
+import org.apache.cxf.ws.rmp.v200502.RMAssertion;
+import org.eclipse.microprofile.config.Config;
+import org.eclipse.microprofile.config.ConfigProvider;
+
+@ApplicationScoped
+public class CxfSoapWsrmRoutes extends RouteBuilder {
+
+    @Inject
+    @Named("loggingFeatureWsrm")
+    LoggingFeature loggingFeature;
+
+    @Inject
+    @Named("results")
+    LinkedList<String> results;
+
+    @Override
+    public void configure() {
+
+        from("seda:rswmInvoker")
+                .process(exchange -> {
+                    boolean enableWsrm = exchange.getIn().getHeader("enableWsrm", Boolean.class);
+
+                    Map<String, Object> headers = exchange.getIn().getHeaders();
+                    headers.put("address", getServerUrl() + "/soapservice/" + (enableWsrm ? "wsrm" : "noWsrm") + "/RouterPort");
+
+                    headers.put("endpoint", (enableWsrm ? "wsrm" : "noWsrm") + "ClientEndpoint");
+                })
+                .toD("cxf:bean:${header.endpoint}?address=${header.address}");
+
+        from("cxf:bean:wsrmServerEndpoint")
+                .process("responseProcessorWsrm");
+
+        from("cxf:bean:noWsrmServerEndpoint")
+                .process("responseProcessorWsrm")
+                .process(e -> results.add(e.getIn().getBody(String.class)));
+
+    }
+
+    @Produces
+    @ApplicationScoped
+    @Named("noWsrmClientEndpoint")
+    CxfEndpoint noWwsrmClientEndpoint() {
+        final CxfEndpoint cxfEndpoint = new CxfEndpoint();
+        cxfEndpoint.getFeatures().add(loggingFeature);

Review Comment:
   makes sense, thanks



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] JiriOndrusek commented on a diff in pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "JiriOndrusek (via GitHub)" <gi...@apache.org>.
JiriOndrusek commented on code in PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#discussion_r1154098890


##########
integration-test-groups/cxf-soap/cxf-soap-ws-rm/src/test/java/org/apache/camel/quarkus/component/cxf/soap/wsrm/it/CxfSoapWsrmTest.java:
##########
@@ -0,0 +1,89 @@
+/*
+ * 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.wsrm.it;
+
+import java.util.concurrent.TimeUnit;
+
+import io.quarkus.test.junit.DisabledOnIntegrationTest;
+import io.quarkus.test.junit.QuarkusTest;
+import io.quarkus.test.junit.QuarkusTestProfile;
+import io.quarkus.test.junit.TestProfile;
+import io.restassured.RestAssured;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.not;
+
+@QuarkusTest
+@TestProfile(CxfSoapWsrmTest.class)
+public class CxfSoapWsrmTest implements QuarkusTestProfile {
+
+    // Test is ported from WSRMTest in Camel-spring-boot/components-starter/camel-cxf-soap-starter
+    @Test
+    @DisabledOnIntegrationTest // see https://github.com/apache/camel-quarkus/issues/4689
+    public void testWSRM() {
+        RestAssured.given()
+                .body("wsrm1")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm1!"));
+
+        //second message will be lost (in the first attempt)
+        RestAssured.given()
+                .body("wsrm2")
+                .post("/cxf-soap/wsrm")
+                .then()
+                .statusCode(201)
+                .body(equalTo("Hello wsrm2!"));
+    }

Review Comment:
   You idea sounds good. I solved the same by running the second test method, which verifies that the first message is not delivered without wsrm -> your approach is more straightforward and does not need to wait for delivery failure. I'll try it.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [camel-quarkus] jamesnetherton commented on pull request #4721: Cxf ws-rm tests coverage - JVM only

Posted by "jamesnetherton (via GitHub)" <gi...@apache.org>.
jamesnetherton commented on PR #4721:
URL: https://github.com/apache/camel-quarkus/pull/4721#issuecomment-1527069121

   Is there anything left to do here or are we good to merge?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@camel.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org