01: package org.objectweb.celtix.systest.ws.rm;
02:
03: import java.util.ArrayList;
04: import java.util.List;
05: import java.util.Map;
06: import java.util.Set;
07:
08: import javax.xml.namespace.QName;
09: import javax.xml.soap.SOAPMessage;
10: import javax.xml.ws.handler.MessageContext;
11:
12: import org.objectweb.celtix.bus.ws.addressing.ContextUtils;
13: import org.objectweb.celtix.context.StreamMessageContext;
14: import org.objectweb.celtix.handlers.StreamHandler;
15:
16: public class SOAPMessageRecorder implements StreamHandler {
17:
18: private static List<SOAPMessage> outbound;
19:
20: public SOAPMessageRecorder() {
21: if (null == outbound) {
22: outbound = new ArrayList<SOAPMessage>();
23: }
24: }
25:
26: public void init(Map<String, Object> map) {
27: }
28:
29: public Set<QName> getHeaders() {
30: return null;
31: }
32:
33: public boolean handleMessage(StreamMessageContext context) {
34: record(context);
35: return true;
36: }
37:
38: public boolean handleFault(StreamMessageContext context) {
39: record(context);
40: return true;
41: }
42:
43: public void close(MessageContext arg0) {
44: }
45:
46: protected List<SOAPMessage> getOutboundMessages() {
47: return outbound;
48: }
49:
50: private void record(StreamMessageContext context) {
51: if (ContextUtils.isOutbound(context)) {
52: SOAPMessage sm = (SOAPMessage) context
53: .get("org.objectweb.celtix.bindings.soap.message");
54: outbound.add(sm);
55: }
56: }
57:
58: }
|