Changeset 1089
- Timestamp:
- 12/01/03 21:25:08 (5 years ago)
- Files:
-
- trunk/lib/soap/rpc/driver.rb (modified) (3 diffs)
- trunk/lib/soap/streamHandler.rb (modified) (5 diffs)
- trunk/lib/soap/wsdlDriver.rb (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/rpc/driver.rb
r1087 r1089 48 48 49 49 def httpproxy 50 @servant.options["client. streamhandler.http.proxy"]50 @servant.options["client.protocol.http.proxy"] 51 51 end 52 52 53 53 def httpproxy=(httpproxy) 54 @servant.options["client.streamhandler.http.proxy"] = httpproxy 54 @servant.options["client.protocol.http.proxy"] = httpproxy 55 end 56 57 def wiredump_dev 58 @servant.options["client.protocol.http.wiredump_dev"] 59 end 60 61 def wiredump_dev=(wiredump_dev) 62 @servant.options["client.protocol.http.wiredump_dev"] = wiredump_dev 55 63 end 56 64 57 65 def mandatorycharset 58 @servant.options["client. streamhandler.mandatorycharset"]66 @servant.options["client.protocol.mandatorycharset"] 59 67 end 60 68 61 69 def mandatorycharset=(mandatorycharset) 62 @servant.options["client.streamhandler.mandatorycharset"] = mandatorycharset 63 end 64 65 def wiredump_dev 66 @servant.options["client.streamhandler.wiredump_dev"] 67 end 68 69 def wiredump_dev=(wiredump_dev) 70 @servant.options["client.streamhandler.wiredump_dev"] = wiredump_dev 70 @servant.options["client.protocol.mandatorycharset"] = mandatorycharset 71 71 end 72 72 73 73 def wiredump_file_base 74 @servant.options["client. streamhandler.wiredump_file_base"]74 @servant.options["client.protocol.wiredump_file_base"] 75 75 end 76 76 77 77 def wiredump_file_base=(wiredump_file_base) 78 @servant.options["client.streamhandler.wiredump_file_base"] = 79 wiredump_file_base 78 @servant.options["client.protocol.wiredump_file_base"] = wiredump_file_base 80 79 end 81 80 … … 137 136 @host = host 138 137 @namespace = namespace 139 @mapping_registry = nil # for unmarshal140 @soapaction = soapaction138 @mapping_registry = nil 139 @soapaction = nil 141 140 @wiredump_file_base = nil 142 141 @options = ::SOAP::Property.new 143 set_options_hook 144 name = 'http_proxy' 145 httpproxy = ENV[name] || ENV[name.upcase] 146 @streamhandler = HTTPPostStreamHandler.new(endpoint_url, httpproxy, 147 XSD::Charset.encoding_label) 142 set_options 143 @streamhandler = HTTPPostStreamHandler.new(endpoint_url, 144 @options["client.protocol.http"] ||= ::SOAP::Property.new) 148 145 @proxy = Proxy.new(@streamhandler, @soapaction) 149 146 @proxy.allow_unqualified_element = true … … 242 239 end 243 240 244 def set_options_hook 245 @options.add_hook("client.streamhandler.http.proxy") do |key, value| 246 @streamhandler.proxy = value 247 @streamhandler.reset 248 end 249 @options.add_hook("client.streamhandler.mandatorycharset") do |key, value| 241 def set_options 242 @options.add_hook("client.protocol.mandatorycharset") do |key, value| 250 243 @proxy.mandatorycharset = value 251 244 end 252 @options.add_hook("client.streamhandler.wiredump_dev") do |key, value| 253 @streamhandler.wiredump_dev = value 254 @streamhandler.reset 255 end 256 @options.add_hook("client.streamhandler.wiredump_file_base") do |key, value| 245 @options.add_hook("client.protocol.wiredump_file_base") do |key, value| 257 246 @wiredump_file_base = value 258 247 end 248 @options["client.protocol.http.charset"] = XSD::Charset.encoding_label 259 249 end 260 250 end trunk/lib/soap/streamHandler.rb
r1067 r1089 8 8 9 9 require 'soap/soap' 10 require 'soap/property' 10 11 11 12 … … 77 78 public 78 79 79 attr_accessor :wiredump_dev80 attr_accessor :wiredump_file_base81 attr_accessor :charset82 80 attr_reader :client 83 81 84 82 NofRetry = 10 # [times] 85 83 86 def initialize(endpoint_url, proxy = nil, charset = nil)84 def initialize(endpoint_url, options) 87 85 super(endpoint_url) 88 @proxy = proxy || ENV['http_proxy'] || ENV['HTTP_PROXY'] 89 @charset = charset || XSD::Charset.charset_label($KCODE) 90 @wiredump_dev = nil # Set an IO to get wiredump. 91 @wiredump_file_base = nil 86 @proxy = @charset = @wiredump_dev = @wiredump_file_base = nil 92 87 @client = Client.new(@proxy, "SOAP4R/#{ Version }") 88 @options = options 89 set_options 90 @client.debug_dev = @wiredump_dev 93 91 end 94 92 95 93 def inspect 96 94 "#<#{self.class}:#{endpoint_url}>" 97 end98 99 def proxy=(proxy)100 @proxy = proxy101 @client.proxy = @proxy102 95 end 103 96 … … 112 105 private 113 106 107 def set_options 108 @proxy = @options["proxy"] 109 @options.add_hook("proxy") do |key, value| 110 @proxy = value 111 end 112 @charset = @options["charset"] || XSD::Charset.charset_label($KCODE) 113 @options.add_hook("charset") do |key, value| 114 @charset = value 115 end 116 @wiredump_dev = @options["wiredump_dev"] 117 @options.add_hook("wiredump_dev") do |key, value| 118 @wiredump_dev = value 119 @client.debug_dev = @wiredump_dev 120 end 121 @wiredump_file_base = @options["wiredump_file_base"] 122 @options.add_hook("wiredump_file_base") do |key, value| 123 @wiredump_file_base = value 124 end 125 @options.lock 126 end 127 114 128 def send_post(soap_string, soapaction, charset) 115 129 data = ConnectionData.new 116 130 data.send_string = soap_string 117 131 data.send_contenttype = StreamHandler.create_media_type(charset) 118 119 wiredump_dev = if @wiredump_dev && @wiredump_dev.respond_to?("<<")120 @wiredump_dev121 else122 nil123 end124 @client.debug_dev = wiredump_dev125 132 126 133 if @wiredump_file_base … … 135 142 extra['SOAPAction'] = "\"#{ soapaction }\"" 136 143 137 wiredump_dev << "Wire dump:\n\n" ifwiredump_dev144 @wiredump_dev << "Wire dump:\n\n" if @wiredump_dev 138 145 begin 139 146 res = @client.post(@endpoint_url, soap_string, extra) … … 142 149 raise 143 150 end 144 wiredump_dev << "\n\n" ifwiredump_dev151 @wiredump_dev << "\n\n" if @wiredump_dev 145 152 146 153 receive_string = res.content trunk/lib/soap/wsdlDriver.rb
r1087 r1089 100 100 101 101 def httpproxy 102 @servant.options["client. streamhandler.http.proxy"]102 @servant.options["client.protocol.http.proxy"] 103 103 end 104 104 105 105 def httpproxy=(httpproxy) 106 @servant.options["client.streamhandler.http.proxy"] = httpproxy 106 @servant.options["client.protocol.http.proxy"] = httpproxy 107 end 108 109 def wiredump_dev 110 @servant.options["client.protocol.http.wiredump_dev"] 111 end 112 113 def wiredump_dev=(wiredump_dev) 114 @servant.options["client.protocol.http.wiredump_dev"] = wiredump_dev 107 115 end 108 116 109 117 def mandatorycharset 110 @servant.options["client. streamhandler.mandatorycharset"]118 @servant.options["client.protocol.mandatorycharset"] 111 119 end 112 120 113 121 def mandatorycharset=(mandatorycharset) 114 @servant.options["client.streamhandler.mandatorycharset"] = mandatorycharset 115 end 116 117 def wiredump_dev 118 @servant.options["client.streamhandler.wiredump_dev"] 119 end 120 121 def wiredump_dev=(wiredump_dev) 122 @servant.options["client.streamhandler.wiredump_dev"] = wiredump_dev 122 @servant.options["client.protocol.mandatorycharset"] = mandatorycharset 123 123 end 124 124 125 125 def wiredump_file_base 126 @servant.options["client. streamhandler.wiredump_file_base"]126 @servant.options["client.protocol.wiredump_file_base"] 127 127 end 128 128 129 129 def wiredump_file_base=(wiredump_file_base) 130 @servant.options["client.streamhandler.wiredump_file_base"] = 131 wiredump_file_base 130 @servant.options["client.protocol.wiredump_file_base"] = wiredump_file_base 132 131 end 133 132 … … 168 167 169 168 @options = ::SOAP::Property.new 170 set_options _hook169 set_options 171 170 @mapping_registry = nil # for rpc unmarshal 172 171 @wsdl_mapping_registry = nil # for rpc marshal … … 179 178 @wsdl_elements = @wsdl.collect_elements 180 179 @wsdl_types = @wsdl.collect_complextypes 181 @rpc_decode_typemap = @wsdl_types + @wsdl.soap_rpc_complextypes(port.find_binding) 180 @rpc_decode_typemap = @wsdl_types + 181 @wsdl.soap_rpc_complextypes(port.find_binding) 182 182 @wsdl_mapping_registry = Mapping::WSDLRegistry.new(@rpc_decode_typemap) 183 183 @doc_mapper = Mapper.new(@wsdl_elements, @wsdl_types) 184 185 @streamhandler = HTTPPostStreamHandler.new(@port.soap_address.location, 186 ENV['http_proxy'] || ENV['HTTP_PROXY'], XSD::Charset.encoding_label) 184 endpoint_url = @port.soap_address.location 185 @streamhandler = HTTPPostStreamHandler.new(endpoint_url, 186 @options["client.protocol.http"] ||= ::SOAP::Property.new) 187 # Convert a map which key is QName, to a Hash which key is String. 187 188 @operations = {} 188 # Convert a map which key is QName, to a Hash which key is String.189 189 @port.inputoperation_map.each do |op_name, op_info| 190 190 @operations[op_name.name] = op_info … … 397 397 end 398 398 399 def set_options_hook 400 @options.add_hook("client.streamhandler.http.proxy") do |key, value| 401 @streamhandler.proxy = value 402 @streamhandler.reset 403 end 404 @options.add_hook("client.streamhandler.mandatorycharset") do |key, value| 399 def set_options 400 @options.add_hook("client.protocol.mandatorycharset") do |key, value| 405 401 @mandatorycharset = value 406 402 end 407 @options.add_hook("client.streamhandler.wiredump_dev") do |key, value| 408 @streamhandler.wiredump_dev = value 409 @streamhandler.reset 410 end 411 @options.add_hook("client.streamhandler.wiredump_file_base") do |key, value| 403 @options.add_hook("client.protocol.wiredump_file_base") do |key, value| 412 404 @wiredump_file_base = value 413 405 end 406 @options["client.protocol.http.charset"] = XSD::Charset.encoding_label 414 407 end 415 408