Repository: cxf
Updated Branches:
  refs/heads/3.0.x-fixes d704868a7 -> 133b893ea


adding a ws-addr policy test using wsam-2007/05 namespace


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

Branch: refs/heads/3.0.x-fixes
Commit: 133b893ea524054bb8cd69f3f38929f637f11e5a
Parents: d704868
Author: Akitoshi Yoshida <a...@apache.org>
Authored: Tue Dec 29 00:49:19 2015 +0900
Committer: Akitoshi Yoshida <a...@apache.org>
Committed: Tue Dec 29 01:14:02 2015 +0900

----------------------------------------------------------------------
 .../ws/policy/AddressingPolicy0705Test.java     | 161 +++++++++++++++++++
 .../cxf/systest/ws/policy/addr-external0705.xml |  37 +++++
 .../apache/cxf/systest/ws/policy/addr0705.xml   |  31 ++++
 3 files changed, 229 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/133b893e/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/AddressingPolicy0705Test.java
----------------------------------------------------------------------
diff --git 
a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/AddressingPolicy0705Test.java
 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/AddressingPolicy0705Test.java
new file mode 100644
index 0000000..405c60c
--- /dev/null
+++ 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/AddressingPolicy0705Test.java
@@ -0,0 +1,161 @@
+/**
+ * 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.policy;
+
+import java.io.Closeable;
+import java.util.logging.Logger;
+
+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.BasicGreeterService;
+import org.apache.cxf.greeter_control.Greeter;
+import org.apache.cxf.greeter_control.PingMeFault;
+import org.apache.cxf.helpers.FileUtils;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
+import org.apache.cxf.interceptor.LoggingOutInterceptor;
+import org.apache.cxf.systest.ws.util.ConnectionHelper;
+import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.testutil.common.AbstractBusTestServerBase;
+import org.apache.cxf.testutil.common.TestUtil;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+
+/**
+ * Tests the use of the WS-Policy Framework to automatically engage 
WS-Addressing and
+ * WS-RM in response to Policies defined for the endpoint via an external 
policy attachment.
+ */
+// REVISIT this class is copied from AddressingPolicyTest to use the 
wsam-2007/05 namespace
+// consolidate this class with the original
+public class AddressingPolicy0705Test extends AbstractBusClientServerTestBase {
+    public static final String PORT = allocatePort(Server.class);
+    public static final String TEMPDIR = 
FileUtils.getDefaultTempDir().toURI().toString(); 
+
+    private static final Logger LOG = 
LogUtils.getLogger(AddressingPolicy0705Test.class);
+
+    public static class Server extends AbstractBusTestServerBase {
+        String tmpDir = TEMPDIR;
+        Endpoint ep;
+        public Server() {
+        }
+        public Server(String dir) {
+            tmpDir = dir;
+        }
+        public Server(String[] args) {
+            tmpDir = args[0];
+        }
+        protected void run()  {
+            
+            System.setProperty("temp.location", tmpDir);
+            SpringBusFactory bf = new SpringBusFactory();
+            Bus bus = 
bf.createBus("org/apache/cxf/systest/ws/policy/addr0705.xml");
+            BusFactory.setDefaultBus(bus);
+            setBus(bus);
+            LoggingInInterceptor in = new LoggingInInterceptor();
+            bus.getInInterceptors().add(in);
+            bus.getInFaultInterceptors().add(in);
+            LoggingOutInterceptor out = new LoggingOutInterceptor();
+            bus.getOutInterceptors().add(out);
+            bus.getOutFaultInterceptors().add(out);
+            
+            GreeterImpl implementor = new GreeterImpl();
+            String address = "http://localhost:"; + PORT + 
"/SoapContext/GreeterPort";
+            ep = Endpoint.publish(address, implementor);
+            LOG.info("Published greeter endpoint.");            
+        }
+        public void tearDown() {
+            ep.stop();
+            ep = null;
+        }
+        
+
+        public static void main(String[] args) {
+            try { 
+                Server s = new Server(args[0]); 
+                s.start();
+            } catch (Exception ex) {
+                ex.printStackTrace();
+                System.exit(-1);
+            } finally { 
+                System.out.println("done!");
+            }
+        }
+    }    
+
+    @BeforeClass
+    public static void startServers() throws Exception {
+        TestUtil.getNewPortNumber("decoupled");
+        PolicyTestHelper.updatePolicyRef("addr-external0705.xml", ":9020", ":" 
+ PORT);
+        System.setProperty("temp.location", TEMPDIR);
+
+        assertTrue("server did not launch correctly", 
launchServer(Server.class, null,
+                                                                   new 
String[] {TEMPDIR}, true));
+    }
+         
+    @Test
+    public void testUsingAddressing() throws Exception {
+        SpringBusFactory bf = new SpringBusFactory();
+        bus = bf.createBus("org/apache/cxf/systest/ws/policy/addr0705.xml");
+        BusFactory.setDefaultBus(bus);
+        LoggingInInterceptor in = new LoggingInInterceptor();
+        bus.getInInterceptors().add(in);
+        bus.getInFaultInterceptors().add(in);
+        LoggingOutInterceptor out = new LoggingOutInterceptor();
+        bus.getOutInterceptors().add(out);
+        bus.getOutFaultInterceptors().add(out);
+        
+        BasicGreeterService gs = new BasicGreeterService();
+        final Greeter greeter = gs.getGreeterPort();
+        updateAddressPort(greeter, PORT);
+        LOG.fine("Created greeter client.");     
+        ConnectionHelper.setKeepAliveConnection(greeter, true);
+
+        // oneway
+
+        //greeter.greetMeOneWay("CXF");
+
+        // two-way
+
+        assertEquals("CXF", greeter.greetMe("cxf")); 
+     
+        // exception
+
+        try {
+            greeter.pingMe();
+        } catch (PingMeFault ex) {
+            fail("First invocation should have succeeded.");
+        } 
+       
+        try {
+            greeter.pingMe();
+            fail("Expected PingMeFault not thrown.");
+        } catch (PingMeFault ex) {
+            assertEquals(2, ex.getFaultInfo().getMajor());
+            assertEquals(1, ex.getFaultInfo().getMinor());
+        } 
+        ((Closeable)greeter).close();
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/cxf/blob/133b893e/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr-external0705.xml
----------------------------------------------------------------------
diff --git 
a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr-external0705.xml
 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr-external0705.xml
new file mode 100644
index 0000000..33c4174
--- /dev/null
+++ 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr-external0705.xml
@@ -0,0 +1,37 @@
+<?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.
+-->
+<attachments xmlns:wsp="http://www.w3.org/ns/ws-policy"; 
xmlns:wsa="http://www.w3.org/2005/08/addressing";>
+    <wsp:PolicyAttachment>
+        <wsp:AppliesTo>
+            <wsa:EndpointReference>
+                
<wsa:Address>http://localhost:9020/SoapContext/GreeterPort</wsa:Address>
+            </wsa:EndpointReference>
+        </wsp:AppliesTo>
+        <wsp:Policy>
+            <wsp:ExactlyOne>
+                <wsp:All>
+                    <wsam:Addressing 
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata";>
+                        <wsp:Policy/>
+                    </wsam:Addressing>
+                </wsp:All>
+            </wsp:ExactlyOne>
+        </wsp:Policy>
+    </wsp:PolicyAttachment>
+</attachments>

http://git-wip-us.apache.org/repos/asf/cxf/blob/133b893e/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr0705.xml
----------------------------------------------------------------------
diff --git 
a/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr0705.xml 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr0705.xml
new file mode 100644
index 0000000..5f87f43
--- /dev/null
+++ 
b/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/addr0705.xml
@@ -0,0 +1,31 @@
+<?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:http="http://cxf.apache.org/transports/http/configuration"; 
xmlns:cxf="http://cxf.apache.org/core"; xmlns:p="http://cxf.apache.org/policy"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation=" 
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://cxf.apache.org/policy http://cxf.apache.org/schemas/policy.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd";>
+    <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.decoupled}/decoupled_endpoint"/>
+    </http:conduit>
+    <cxf:bus>
+        <cxf:features>
+            <p:policies/>
+        </cxf:features>
+    </cxf:bus>
+    <p:externalAttachment location="${temp.location}/addr-external0705.xml"/>
+</beans>

Reply via email to