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>