You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ds...@apache.org on 2014/06/23 03:33:12 UTC

[5/5] git commit: Add simple test for decoupled client oneway operation.

Add simple test for decoupled client oneway operation.

Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/45867c50
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/45867c50
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/45867c50

Branch: refs/heads/master
Commit: 45867c50ab14b69905e7fba2a401979fb498c4d5
Parents: c613aa4
Author: dsosnoski <ds...@apache.org>
Authored: Mon Jun 23 11:58:16 2014 +1200
Committer: dsosnoski <ds...@apache.org>
Committed: Mon Jun 23 11:58:16 2014 +1200

----------------------------------------------------------------------
 .../ws/rm/DecoupledClientServerOnewayTest.java  | 132 +++++++++++++++++++
 .../ws/rm/exactlyonce-inorder-decoupled.xml     |  39 ++++++
 2 files changed, 171 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/45867c50/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/DecoupledClientServerOnewayTest.java
----------------------------------------------------------------------
diff --git a/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/DecoupledClientServerOnewayTest.java b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/DecoupledClientServerOnewayTest.java
new file mode 100644
index 0000000..11b757e
--- /dev/null
+++ b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/DecoupledClientServerOnewayTest.java
@@ -0,0 +1,132 @@
+/**
+ * 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.cxf.systest.ws.rm;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.greeter_control.Greeter;
+import org.apache.cxf.greeter_control.GreeterService;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.systest.ws.util.ConnectionHelper;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * Tests the addition of WS-RM properties to application messages and the
+ * exchange of WS-RM protocol messages.
+ */
+public class DecoupledClientServerOnewayTest extends AbstractBusClientServerTestBase {
+    public static final String PORT = allocatePort(Server.class);
+    public static final String DECOUPLE_PORT = allocatePort(DecoupledClientServerOnewayTest.class);
+
+    private static final Logger LOG = LogUtils.getLogger(DecoupledClientServerOnewayTest.class);
+
+    public static class Server extends AbstractBusTestServerBase {
+        Endpoint ep;
+        protected void run()  {            
+            SpringBusFactory bf = new SpringBusFactory();
+            Bus bus = bf.createBus("/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml");
+            BusFactory.setDefaultBus(bus);
+            setBus(bus);
+            LoggingInInterceptor in = new LoggingInInterceptor();
+            in.setPrettyLogging(true);
+            bus.getInInterceptors().add(in);
+            bus.getInFaultInterceptors().add(in);
+            LoggingOutInterceptor out = new LoggingOutInterceptor();
+            out.setPrettyLogging(true);
+            bus.getOutInterceptors().add(out);
+            bus.getOutFaultInterceptors().add(out);
+            
+            GreeterImpl implementor = new GreeterImpl();
+            implementor.useLastOnewayArg(true);
+            implementor.setDelay(5000);
+            String address = "http://localhost:" + PORT + "/SoapContext/GreeterPort";
+            
+            ep = Endpoint.create(implementor);
+            Map<String, Object> properties = new HashMap<String, Object>();
+            properties.put(Message.SCHEMA_VALIDATION_ENABLED,
+                           shouldValidate());
+            ep.setProperties(properties);
+            ep.publish(address);
+
+            LOG.info("Published greeter endpoint.");
+        }
+        public void tearDown() {
+            ep.stop();
+            ep = null;
+        }
+    }    
+    
+    @BeforeClass
+    public static void startServers() throws Exception {
+        assertTrue("server did not launch correctly", 
+                   launchServer(Server.class, true));
+    }
+            
+    public static Boolean shouldValidate() {
+        String ver = System.getProperty("java.version");
+        if (ver.startsWith("1.5.0_0")) {
+            //older versions of the JDK have a bug in the parser
+            //that prevent the validation from actually working
+            return Boolean.FALSE;
+        }
+        return Boolean.TRUE;
+    }
+    
+    @Test
+    public void testDecoupledOneway() throws Exception {
+        SpringBusFactory bf = new SpringBusFactory();
+        bus = bf.createBus("/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml");
+        BusFactory.setDefaultBus(bus);
+        LoggingInInterceptor in = new LoggingInInterceptor();
+        in.setPrettyLogging(true);
+        bus.getInInterceptors().add(in);
+        bus.getInFaultInterceptors().add(in);
+        LoggingOutInterceptor out = new LoggingOutInterceptor();
+        out.setPrettyLogging(true);
+        bus.getOutInterceptors().add(out);
+        bus.getOutFaultInterceptors().add(out);
+        
+        GreeterService gs = new GreeterService();
+        final Greeter greeter = gs.getGreeterPort();
+        updateAddressPort(greeter, PORT);
+        ((BindingProvider)greeter).getRequestContext().put(Message.SCHEMA_VALIDATION_ENABLED, 
+                                                           shouldValidate());
+        LOG.fine("Created greeter client.");
+       
+        ConnectionHelper.setKeepAliveConnection(greeter, true);
+        greeter.greetMeOneWay("oneway");
+        
+    }
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/45867c50/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml
----------------------------------------------------------------------
diff --git a/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml
new file mode 100644
index 0000000..3c5d0e9
--- /dev/null
+++ b/systests/ws-rm/src/test/java/org/apache/cxf/systest/ws/rm/exactlyonce-inorder-decoupled.xml
@@ -0,0 +1,39 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager" xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy" xmlns:cxf="http://cxf.apache.org/core" xmlns:http="http://cxf.apache.org/transports/http/configuration" xsi:schemaLocation=" http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <import resource="rminterceptors.xml"/>
+    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
+    <http:conduit name="{http://cxf.apache.org/greeter_control}GreeterPort.http-conduit">
+        <http:client DecoupledEndpoint="http://localhost:${testutil.ports.DecoupledClientServerOnewayTest}/decoupled_endpoint"/>
+    </http:conduit>
+    <wsrm-mgr:rmManager id="org.apache.cxf.ws.rm.RMManager">
+        <wsrm-policy:RMAssertion>
+            <wsrm-policy:BaseRetransmissionInterval Milliseconds="60000"/>
+            <wsrm-policy:AcknowledgementInterval Milliseconds="10000"/>
+        </wsrm-policy:RMAssertion>
+        <wsrm-mgr:deliveryAssurance>
+            <wsrm-mgr:ExactlyOnce/>
+            <wsrm-mgr:InOrder/>
+        </wsrm-mgr:deliveryAssurance>
+        <wsrm-mgr:destinationPolicy>
+            <wsrm-mgr:acksPolicy intraMessageThreshold="0"/>
+        </wsrm-mgr:destinationPolicy>
+    </wsrm-mgr:rmManager>
+</beans>