Changeset 1790
- Timestamp:
- 05/20/07 17:42:49 (2 years ago)
- Files:
-
- trunk/lib/soap/mapping/schemadefinition.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (7 diffs)
- trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb (modified) (1 diff)
- trunk/test/wsdl/abstract/test_abstract.rb (modified) (1 diff)
- trunk/test/wsdl/any/expectedDriver.rb (modified) (2 diffs)
- trunk/test/wsdl/any/expectedEcho.rb (modified) (2 diffs)
- trunk/test/wsdl/any/expectedService.rb (modified) (3 diffs)
- trunk/test/wsdl/any/test_any.rb (modified) (3 diffs)
- trunk/test/wsdl/choice/choice.wsdl (modified) (1 diff)
- trunk/test/wsdl/choice/test_choice.rb (modified) (3 diffs)
- trunk/test/wsdl/document/array/test_array.rb (modified) (1 diff)
- trunk/test/wsdl/fault/test_fault.rb (modified) (2 diffs)
- trunk/test/wsdl/fault/test_multifault.rb (modified) (3 diffs)
- trunk/test/wsdl/list/test_list.rb (modified) (1 diff)
- trunk/test/wsdl/marshal/test_wsdlmarshal.rb (modified) (2 diffs)
- trunk/test/wsdl/qualified/test_qualified.rb (modified) (1 diff)
- trunk/test/wsdl/qualified/test_unqualified.rb (modified) (1 diff)
- trunk/test/wsdl/ref/expectedDriver.rb (modified) (2 diffs)
- trunk/test/wsdl/ref/test_ref.rb (modified) (1 diff)
- trunk/test/wsdl/rpc/test_rpc_lit.rb (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/schemadefinition.rb
r1788 r1790 53 53 return found if found 54 54 else 55 return ele if ele.elename == qname 55 # relaxed match 56 if ele.elename == qname or 57 (qname.namespace.nil? and ele.elename.name == qname.name) 58 return ele 59 end 56 60 end 57 61 end trunk/lib/wsdl/soap/classDefCreator.rb
r1788 r1790 85 85 elsif ele.local_simpletype 86 86 dump_simpletypedef(ele.name, ele.local_simpletype, qualified) 87 elsif ele.type88 if @complextypes[ele.type]89 dump_complextypedef(ele.name, @complextypes[ele.type], qualified)90 elsif @simpletypes[ele.type]91 dump_simpletypedef(ele.name, @simpletypes[ele.type], qualified)92 else93 nil94 end95 87 else 96 88 nil … … 138 130 end 139 131 classname = create_class_name(qname) 140 if Module.constants.include?(classname) 141 warn("created definition tries to reopen existing class: #{classname}") 142 end 132 check_classname(classname) 143 133 c = ClassDef.new(classname, '::String') 144 134 c.comment = "#{qname}" … … 150 140 list = typedef.list 151 141 classname = create_class_name(qname) 152 if Module.constants.include?(classname) 153 warn("created definition tries to reopen existing class: #{classname}") 154 end 142 check_classname(classname) 155 143 c = ClassDef.new(classname, '::Array') 156 144 c.comment = "#{qname}" … … 207 195 def dump_simpleclassdef(qname, type_or_element) 208 196 classname = create_class_name(qname) 209 if Module.constants.include?(classname) 210 warn("created definition tries to reopen existing class: #{classname}") 211 end 197 check_classname(classname) 212 198 c = ClassDef.new(classname, '::String') 213 199 c.comment = "#{qname}" … … 242 228 def dump_classdef(qname, typedef, qualified = false) 243 229 classname = create_class_name(qname) 230 check_classname(classname) 244 231 baseclassname = nil 245 232 if typedef.complexcontent … … 247 234 baseclassname = create_class_name(base) 248 235 end 249 end250 if Module.constants.include?(classname)251 warn("created definition tries to reopen existing class: #{classname}")252 236 end 253 237 if @faulttypes and @faulttypes.index(qname) … … 373 357 def dump_arraydef(qname, complextype) 374 358 classname = create_class_name(qname) 375 if Module.constants.include?(classname) 376 warn("created definition tries to reopen existing class: #{classname}") 377 end 359 check_classname(classname) 378 360 c = ClassDef.new(classname, '::Array') 379 361 c.comment = "#{qname}" 380 362 c.dump 363 end 364 365 def check_classname(classname) 366 if @modulepath.nil? and Module.constants.include?(classname) 367 warn("created definition re-opens an existing toplevel class: #{classname}") 368 end 381 369 end 382 370 end trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb
r1788 r1790 67 67 elsif ele.local_simpletype 68 68 dump_simpletypedef(ele.name, ele.local_simpletype, qualified) 69 elsif ele.type70 if @complextypes[ele.type]71 dump_complextypedef(ele.name, @complextypes[ele.type], qualified)72 elsif @simpletypes[ele.type]73 dump_simpletypedef(ele.name, @simpletypes[ele.type], qualified)74 else75 nil76 end77 69 else 78 70 nil trunk/test/wsdl/abstract/test_abstract.rb
r1774 r1790 59 59 gen.opt['classdef'] = nil 60 60 gen.opt['mapping_registry'] = nil 61 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 61 62 gen.opt['driver'] = nil 62 63 gen.opt['force'] = true trunk/test/wsdl/any/expectedDriver.rb
r1771 r1790 1 1 require 'echo.rb' 2 2 require 'echoMappingRegistry.rb' 3 4 module WSDL::Any 3 5 require 'soap/rpc/driver' 4 6 … … 54 56 end 55 57 58 59 end trunk/test/wsdl/any/expectedEcho.rb
r1788 r1790 1 1 require 'xsd/qname' 2 2 3 # {urn:example.com:echo-type}foo.bar 4 class FooBar 5 attr_accessor :before 6 attr_reader :__xmlele_any 7 attr_accessor :after 3 module WSDL::Any 8 4 9 def set_any(elements)10 @__xmlele_any = elements11 end12 13 def initialize(before = nil, after = nil)14 @before = before15 @__xmlele_any = nil16 @after = after17 end18 end19 5 20 6 # {urn:example.com:echo-type}foo.bar … … 47 33 end 48 34 end 35 36 37 end trunk/test/wsdl/any/expectedService.rb
r1771 r1790 3 3 require 'echoMappingRegistry.rb' 4 4 require 'soap/rpc/standaloneServer' 5 6 module WSDL; module Any 5 7 6 8 class Echo_port_type … … 25 27 end 26 28 29 end; end 30 31 module WSDL; module Any 32 27 33 class Echo_port_typeApp < ::SOAP::RPC::StandaloneServer 28 34 def initialize(*arg) 29 35 super(*arg) 30 servant = Echo_port_type.new31 Echo_port_type::Methods.each do |definitions|36 servant = WSDL::Any::Echo_port_type.new 37 WSDL::Any::Echo_port_type::Methods.each do |definitions| 32 38 opt = definitions.last 33 39 if opt[:request_style] == :document … … 42 48 end 43 49 50 end; end 51 44 52 if $0 == __FILE__ 45 53 # Change listen port. 46 server = Echo_port_typeApp.new('app', nil, '0.0.0.0', 10080)54 server = WSDL::Any::Echo_port_typeApp.new('app', nil, '0.0.0.0', 10080) 47 55 trap(:INT) do 48 56 server.shutdown trunk/test/wsdl/any/test_any.rb
r1755 r1790 84 84 gen.opt['classdef'] = nil 85 85 gen.opt['mapping_registry'] = nil 86 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 86 87 gen.opt['driver'] = nil 87 88 gen.opt['force'] = true … … 122 123 gen.basedir = DIR 123 124 gen.logger.level = Logger::FATAL 125 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 124 126 gen.opt['classdef'] = nil 125 127 gen.opt['mapping_registry'] = nil … … 132 134 gen.run 133 135 end 136 compare("expectedEcho.rb", "echo.rb") 134 137 compare("expectedDriver.rb", "echoDriver.rb") 135 compare("expectedEcho.rb", "echo.rb")136 138 compare("expectedService.rb", "echo_service.rb") 137 139 trunk/test/wsdl/choice/choice.wsdl
r1788 r1790 55 55 </xsd:element> 56 56 57 <xsd:element name="echoele_complex" type="tns:andor" /> 58 <xsd:element name="echo_complex_response" type="tns:andor" /> 57 <xsd:element name="echoele_complex"> 58 <xsd:complexType> 59 <xsd:sequence> 60 <xsd:element name="data" type="tns:andor"/> 61 </xsd:sequence> 62 </xsd:complexType> 63 </xsd:element> 64 65 <xsd:element name="echo_complex_response"> 66 <xsd:complexType> 67 <xsd:sequence> 68 <xsd:element name="data" type="tns:andor"/> 69 </xsd:sequence> 70 </xsd:complexType> 71 </xsd:element> 59 72 </xsd:schema> 60 73 </types> trunk/test/wsdl/choice/test_choice.rb
r1788 r1790 36 36 37 37 def echo_complex(arg) 38 p arg 39 arg 38 Echo_complex_response.new(arg.data) 40 39 end 41 40 end … … 74 73 gen.opt['classdef'] = nil 75 74 gen.opt['mapping_registry'] = nil 75 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 76 76 gen.opt['driver'] = nil 77 77 gen.opt['force'] = true … … 153 153 @client.literal_mapping_registry = ChoiceMappingRegistry::LiteralRegistry 154 154 # 155 ret = @client.echo_complex( Andor.new("A", "B1", nil, nil, nil, nil, "C1", "C2"))156 assert_equal("A", ret. a)157 assert_equal("B1", ret. b1)158 assert_equal(nil, ret. b2a)159 assert_equal(nil, ret. b2b)160 assert_equal(nil, ret. b3a)161 assert_equal(nil, ret. b3b)162 assert_equal("C1", ret. c1)163 assert_equal("C2", ret. c2)155 ret = @client.echo_complex(Echoele_complex.new(Andor.new("A", "B1", nil, nil, nil, nil, "C1", "C2"))) 156 assert_equal("A", ret.data.a) 157 assert_equal("B1", ret.data.b1) 158 assert_equal(nil, ret.data.b2a) 159 assert_equal(nil, ret.data.b2b) 160 assert_equal(nil, ret.data.b3a) 161 assert_equal(nil, ret.data.b3b) 162 assert_equal("C1", ret.data.c1) 163 assert_equal("C2", ret.data.c2) 164 164 # 165 ret = @client.echo_complex( Andor.new("A", nil, "B2a", "B2b", nil, nil, "C1", "C2"))166 assert_equal("A", ret. a)167 assert_equal(nil, ret. b1)168 assert_equal("B2a", ret. b2a)169 assert_equal("B2b", ret. b2b)170 assert_equal(nil, ret. b3a)171 assert_equal(nil, ret. b3b)172 assert_equal("C1", ret. c1)173 assert_equal("C2", ret. c2)165 ret = @client.echo_complex(Echoele_complex.new(Andor.new("A", nil, "B2a", "B2b", nil, nil, "C1", "C2"))) 166 assert_equal("A", ret.data.a) 167 assert_equal(nil, ret.data.b1) 168 assert_equal("B2a", ret.data.b2a) 169 assert_equal("B2b", ret.data.b2b) 170 assert_equal(nil, ret.data.b3a) 171 assert_equal(nil, ret.data.b3b) 172 assert_equal("C1", ret.data.c1) 173 assert_equal("C2", ret.data.c2) 174 174 # 175 ret = @client.echo_complex( Andor.new("A", nil, nil, nil, "B3a", nil, "C1", "C2"))176 assert_equal("A", ret. a)177 assert_equal(nil, ret. b1)178 assert_equal(nil, ret. b2a)179 assert_equal(nil, ret. b2b)180 assert_equal("B3a", ret. b3a)181 assert_equal(nil, ret. b3b)182 assert_equal("C1", ret. c1)183 assert_equal("C2", ret. c2)175 ret = @client.echo_complex(Echoele_complex.new(Andor.new("A", nil, nil, nil, "B3a", nil, "C1", "C2"))) 176 assert_equal("A", ret.data.a) 177 assert_equal(nil, ret.data.b1) 178 assert_equal(nil, ret.data.b2a) 179 assert_equal(nil, ret.data.b2b) 180 assert_equal("B3a", ret.data.b3a) 181 assert_equal(nil, ret.data.b3b) 182 assert_equal("C1", ret.data.c1) 183 assert_equal("C2", ret.data.c2) 184 184 # 185 ret = @client.echo_complex( Andor.new("A", nil, nil, nil, nil, "B3b", "C1", "C2"))186 assert_equal("A", ret. a)187 assert_equal(nil, ret. b1)188 assert_equal(nil, ret. b2a)189 assert_equal(nil, ret. b2b)190 assert_equal(nil, ret. b3a)191 assert_equal("B3b", ret. b3b)192 assert_equal("C1", ret. c1)193 assert_equal("C2", ret. c2)185 ret = @client.echo_complex(Echoele_complex.new(Andor.new("A", nil, nil, nil, nil, "B3b", "C1", "C2"))) 186 assert_equal("A", ret.data.a) 187 assert_equal(nil, ret.data.b1) 188 assert_equal(nil, ret.data.b2a) 189 assert_equal(nil, ret.data.b2b) 190 assert_equal(nil, ret.data.b3a) 191 assert_equal("B3b", ret.data.b3b) 192 assert_equal("C1", ret.data.c1) 193 assert_equal("C2", ret.data.c2) 194 194 end 195 195 end trunk/test/wsdl/document/array/test_array.rb
r1756 r1790 61 61 gen.opt['classdef'] = nil 62 62 gen.opt['mapping_registry'] = nil 63 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 63 64 gen.opt['force'] = true 64 65 gen.run trunk/test/wsdl/fault/test_fault.rb
r1754 r1790 50 50 gen.basedir = DIR 51 51 gen.logger.level = Logger::FATAL 52 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 52 53 gen.opt['classdef'] = nil 53 54 gen.opt['mapping_registry'] = nil … … 124 125 rescue Exception => e 125 126 assert_equal(::SOAP::FaultError, e.class) 126 assert_equal(" AddFault", e.faultstring.data)127 assert_equal("WSDL::Fault::AddFault", e.faultstring.data) 127 128 assert_equal("Value 101 is too large", e.detail.addFault.reason) 128 129 assert_equal("Critical", e.detail.addFault.severity) trunk/test/wsdl/fault/test_multifault.rb
r1754 r1790 56 56 gen.basedir = DIR 57 57 gen.logger.level = Logger::FATAL 58 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 58 59 gen.opt['classdef'] = nil 59 60 gen.opt['mapping_registry'] = nil … … 130 131 rescue Exception => e 131 132 assert_equal(::SOAP::FaultError, e.class) 132 assert_equal(" AddFault", e.faultstring.data)133 assert_equal("WSDL::Fault::AddFault", e.faultstring.data) 133 134 assert_equal("Value 101 is too large", e.detail.addFault.reason) 134 135 assert_equal("Critical", e.detail.addFault.severity) … … 139 140 rescue Exception => e 140 141 assert_equal(::SOAP::FaultError, e.class) 141 assert_equal(" NegativeValueFault", e.faultstring.data)142 assert_equal("WSDL::Fault::NegativeValueFault", e.faultstring.data) 142 143 assert_equal("Value -50 is negative", e.detail.negativeValueFault.reason) 143 144 assert_equal("Fatal", e.detail.negativeValueFault.severity) trunk/test/wsdl/list/test_list.rb
r1755 r1790 57 57 gen.basedir = DIR 58 58 gen.logger.level = Logger::FATAL 59 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 59 60 gen.opt['classdef'] = nil 60 61 gen.opt['mapping_registry'] = nil trunk/test/wsdl/marshal/test_wsdlmarshal.rb
r1731 r1790 5 5 require 'wsdl/soap/wsdl2ruby' 6 6 7 7 8 class WSDLMarshaller 8 include SOAP9 10 9 def initialize(wsdlfile) 11 10 wsdl = WSDL::Parser.new.parse(File.open(wsdlfile) { |f| f.read }) … … 16 15 :pretty => true 17 16 } 18 @mapping_registry = Mapping::WSDLEncodedRegistry.new(types)17 @mapping_registry = ::SOAP::Mapping::WSDLEncodedRegistry.new(types) 19 18 end 20 19 21 20 def dump(obj, io = nil) 22 ele = Mapping.obj2soap(obj, @mapping_registry)21 ele = ::SOAP::Mapping.obj2soap(obj, @mapping_registry) 23 22 ele.elename = ele.type 24 Processor.marshal(SOAPEnvelope.new(nil,SOAPBody.new(ele)), @opt, io)23 ::SOAP::Processor.marshal(::SOAP::SOAPEnvelope.new(nil, ::SOAP::SOAPBody.new(ele)), @opt, io) 25 24 end 26 25 27 26 def load(io) 28 header, body = Processor.unmarshal(io, @opt)29 Mapping.soap2obj(body.root_node)27 header, body = ::SOAP::Processor.unmarshal(io, @opt) 28 ::SOAP::Mapping.soap2obj(body.root_node) 30 29 end 31 30 end trunk/test/wsdl/qualified/test_qualified.rb
r1756 r1790 61 61 gen.basedir = DIR 62 62 gen.logger.level = Logger::FATAL 63 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 63 64 gen.opt['classdef'] = nil 64 65 gen.opt['mapping_registry'] = nil trunk/test/wsdl/qualified/test_unqualified.rb
r1756 r1790 61 61 gen.basedir = DIR 62 62 gen.logger.level = Logger::FATAL 63 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 63 64 gen.opt['classdef'] = nil 64 65 gen.opt['mapping_registry'] = nil trunk/test/wsdl/ref/expectedDriver.rb
r1756 r1790 1 1 require 'product.rb' 2 2 require 'productMappingRegistry.rb' 3 4 module WSDL::Ref 3 5 require 'soap/rpc/driver' 4 6 … … 46 48 end 47 49 50 51 end trunk/test/wsdl/ref/test_ref.rb
r1756 r1790 83 83 gen.basedir = DIR 84 84 gen.logger.level = Logger::FATAL 85 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 85 86 gen.opt['classdef'] = nil 86 87 gen.opt['mapping_registry'] = nil trunk/test/wsdl/rpc/test_rpc_lit.rb
r1788 r1790 123 123 gen.basedir = DIR 124 124 gen.logger.level = Logger::FATAL 125 gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '') 125 126 gen.opt['classdef'] = nil 126 127 gen.opt['mapping_registry'] = nil … … 322 323 assert_equal('+1', result.varFloat) 323 324 assert_equal('str', result.structItem.varString) 324 assert_equal( 1, result.structItem.varInt)325 assert_equal( 1.0, result.structItem.varFloat)325 assert_equal('1', result.structItem.varInt) 326 assert_equal('+1', result.structItem.varFloat) 326 327 assert_equal(ECHO_NESTED_STRUCT_REQUEST, parse_requestxml(str)) 327 328 assert_equal(ECHO_NESTED_STRUCT_RESPONSE, parse_responsexml(str))