01: /*
02: * Copyright 2001-2004 The Apache Software Foundation.
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package samples.transport.tcp;
18:
19: import org.apache.axis.AxisEngine;
20: import org.apache.axis.MessageContext;
21: import org.apache.axis.client.Call;
22: import org.apache.axis.client.Transport;
23: import org.apache.axis.components.logger.LogFactory;
24: import org.apache.commons.logging.Log;
25:
26: import java.net.URL;
27:
28: /**
29: *
30: * @author Rob Jellinghaus (robj@unrealities.com)
31: * @author Doug Davis (dug@us.ibm.com)
32: * @author Glen Daniels (gdaniels@allaire.com)
33: */
34: public class TCPTransport extends Transport {
35: static Log log = LogFactory.getLog(TCPTransport.class.getName());
36:
37: private String host;
38: private String port;
39:
40: public TCPTransport() {
41: transportName = "tcp";
42: }
43:
44: public TCPTransport(String host, String port) {
45: transportName = "tcp";
46: this .host = host;
47: this .port = port;
48: }
49:
50: /**
51: * TCP properties
52: */
53: static public String HOST = "tcp.host";
54: static public String PORT = "tcp.port";
55:
56: /**
57: * Set up any transport-specific derived properties in the message context.
58: * @param context the context to set up
59: * @param message the client service instance
60: * @param engine the engine containing the registries
61: */
62: public void setupMessageContextImpl(MessageContext mc, Call call,
63: AxisEngine engine) {
64: try {
65: String urlString = mc.getStrProp(MessageContext.TRANS_URL);
66: if (urlString != null) {
67: URL url = new URL(urlString);
68: host = url.getHost();
69: port = new Integer(url.getPort()).toString();
70: }
71: } catch (java.net.MalformedURLException e) {
72: // Do nothing here?
73: }
74:
75: if (host != null)
76: mc.setProperty(HOST, host);
77: if (port != null)
78: mc.setProperty(PORT, port);
79:
80: log.debug("Port = " + mc.getStrProp(PORT));
81: log.debug("Host = " + mc.getStrProp(HOST));
82:
83: // kind of ugly... fake up a "http://host:port/" url to send down the chain
84: // ROBJ TODO: clean this up so we use TCP transport properties all the way down
85: // use serviceclient properties if any, otherwise use ours
86: /*
87: String url = "http://"+serv.get(HOST)+":"+serv.get(PORT);
88:
89: log.debug( "TCPTransport set URL to '" + url + "'");
90: mc.setProperty(MessageContext.TRANS_URL, url);
91: */
92: }
93: }
|