Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1465

Show
Ignore:
Timestamp:
03/16/05 23:12:16 (4 years ago)
Author:
nahi
Message:

fixed illegal handling of RPC operation name. use 'name' attribute of 'operation' element, not 'name' attribute of a message defined as an input part.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/wsdlDriver.rb

    r1462 r1465  
    9090 
    9191  def add_operation(drv, port) 
    92     # Convert a map which key is QName, to a Hash which key is String. 
    9392    port.find_binding.operations.each do |op_bind| 
    94       op = op_bind.find_operation 
    95       soapaction = op_bind.soapoperation ? op_bind.soapoperation.soapaction : '' 
    96       orgname = op.name.name 
     93      op_name = op_bind.soapoperation_name 
     94      soapaction = op_bind.soapaction || '' 
     95      orgname = op_name.name 
    9796      name = XSD::CodeGen::GenSupport.safemethodname(orgname) 
    9897      param_def = create_param_def(op_bind) 
     
    102101      opt[:response_use] = (op_bind.output.soapbody.use || 'literal').intern 
    103102      if op_bind.soapoperation_style == :rpc 
    104         qname = op.inputname 
    105         drv.add_rpc_operation(qname, soapaction, name, param_def, opt) 
     103        drv.add_rpc_operation(op_name, soapaction, name, param_def, opt) 
    106104      else 
    107105        drv.add_document_operation(soapaction, name, param_def, opt) 
     
    406404      parts_names = op_info.bodyparts.collect { |part| part.name } 
    407405      obj = create_method_obj(parts_names, params) 
    408       method = Mapping.obj2soap(obj, @wsdl_mapping_registry, op_info.optype_name) 
     406      method = Mapping.obj2soap(obj, @wsdl_mapping_registry, op_info.op_name) 
    409407      if method.members.size != parts_names.size 
    410408        new_method = SOAPStruct.new 
  • trunk/lib/wsdl/operation.rb

    r1423 r1465  
    4747 
    4848  def input_info 
    49     NameInfo.new(@name, inputname, inputparts) 
     49    typename = input.find_message.name 
     50    NameInfo.new(@name, typename, inputparts) 
    5051  end 
    5152 
    5253  def output_info 
    53     NameInfo.new(@name, outputname, outputparts) 
     54    typename = output.find_message.name 
     55    NameInfo.new(@name, typename, outputparts) 
    5456  end 
    5557 
  • trunk/lib/wsdl/operationBinding.rb

    r1451 r1465  
    4141  end 
    4242 
     43  def soapoperation_name 
     44    if @soapoperation 
     45      @soapoperation.input_info.op_name 
     46    else 
     47      find_operation.name 
     48    end 
     49  end 
     50 
    4351  def soapoperation_style 
    4452    style = nil 
     
    5159    end 
    5260    style || :document 
     61  end 
     62 
     63  def soapaction 
     64    if @soapoperation 
     65      @soapoperation.soapaction 
     66    else 
     67      nil 
     68    end 
    5369  end 
    5470 
  • trunk/lib/wsdl/soap/definitions.rb

    r1458 r1465  
    112112        operation = op_bind.find_operation 
    113113        if op_bind.input 
    114           type = XMLSchema::ComplexType.new(operation.inputname) 
     114          type = XMLSchema::ComplexType.new(op_bind.soapoperation_name) 
    115115          message = messages[operation.input.message] 
    116116          type.sequence_elements = elements_from_message(message) 
  • trunk/lib/wsdl/soap/methodDefCreator.rb

    r1461 r1465  
    4949    name_as = operation.name.name 
    5050    style = binding.soapoperation_style 
    51     soapaction = binding.soapoperation.soapaction 
    5251    namespace = binding.input.soapbody.namespace 
    5352    if style == :rpc 
     
    6463[#{dq(name_as)}, #{dq(name)}, 
    6564  #{paramstr}, 
    66   #{ndq(soapaction)}, #{ndq(namespace)}, #{sym(style.id2name)} 
     65  #{ndq(binding.soapaction)}, #{ndq(namespace)}, #{sym(style.id2name)} 
    6766] 
    6867__EOD__ 
  • trunk/lib/wsdl/soap/operation.rb

    r1369 r1465  
    102102    end 
    103103    if soapbody.namespace 
    104       op_name = op_name.dup 
    105       op_name.namespace = soapbody.namespace 
     104      op_name = XSD::QName.new(soapbody.namespace, op_name.name) 
    106105    end 
    107106    if soapbody.parts 
     
    115114 
    116115    faultpart = nil 
    117     soapaction = parent.soapoperation.soapaction 
    118     OperationInfo.new(operation_style, op_name, optype_name, headerparts, bodyparts, faultpart, soapaction) 
     116    OperationInfo.new(operation_style, op_name, optype_name, headerparts, bodyparts, faultpart, parent.soapaction) 
    119117  end 
    120118end