1
2
3
4
5
6
7 package org.mule.transport.soap.axis.component;
8
9 import org.mule.DefaultMuleEvent;
10 import org.mule.MessageExchangePattern;
11 import org.mule.api.MuleEvent;
12 import org.mule.api.MuleMessage;
13 import org.mule.api.endpoint.EndpointBuilder;
14 import org.mule.api.endpoint.OutboundEndpoint;
15 import org.mule.config.i18n.CoreMessages;
16 import org.mule.endpoint.EndpointURIEndpointBuilder;
17 import org.mule.module.cxf.component.AbstractWebServiceWrapperComponent;
18 import org.mule.transport.soap.axis.AxisConnector;
19
20 import java.util.Map;
21
22 public class WebServiceWrapperComponent extends AbstractWebServiceWrapperComponent
23 {
24
25 private String use;
26 private String style;
27 private Map properties;
28
29 @Override
30 protected Object doInvoke(MuleEvent event) throws Exception
31 {
32 String tempUrl;
33 if (addressFromMessage)
34 {
35 tempUrl = event.getMessage().getInboundProperty(WS_SERVICE_URL);
36 if (tempUrl == null)
37 {
38 throw new IllegalArgumentException(CoreMessages.propertyIsNotSetOnEvent(WS_SERVICE_URL)
39 .toString());
40 }
41 }
42 else
43 {
44 tempUrl = address;
45 }
46 MuleMessage message = event.getMessage();
47
48 if (properties != null && properties.get(AxisConnector.SOAP_METHODS) != null)
49 {
50 message.addProperties((Map) properties.get(AxisConnector.SOAP_METHODS));
51 }
52
53 EndpointBuilder endpointBuilder = new EndpointURIEndpointBuilder("axis:" + tempUrl, muleContext);
54 if (use != null)
55 {
56 endpointBuilder.setProperty(AxisConnector.USE, use);
57 }
58 if (style != null)
59 {
60 endpointBuilder.setProperty(AxisConnector.STYLE, style);
61
62 }
63
64 endpointBuilder.setExchangePattern(MessageExchangePattern.REQUEST_RESPONSE);
65
66 OutboundEndpoint endpoint = endpointBuilder.buildOutboundEndpoint();
67
68 MuleEvent responseEvent = endpoint.process(new DefaultMuleEvent(event.getMessage(), endpoint,
69 event.getSession()));
70
71 if (responseEvent != null)
72 {
73 return responseEvent.getMessage();
74 }
75 else
76 {
77 return null;
78 }
79 }
80
81 public String getUse()
82 {
83 return use;
84 }
85
86 public void setUse(String use)
87 {
88 this.use = use;
89 }
90
91 public String getStyle()
92 {
93 return style;
94 }
95
96 public void setStyle(String style)
97 {
98 this.style = style;
99 }
100
101 public Map getProperties()
102 {
103 return properties;
104 }
105
106 public void setProperties(Map properties)
107 {
108 this.properties = properties;
109 }
110
111 }