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

Changeset 1939

Show
Ignore:
Timestamp:
09/07/07 00:05:29 (11 months ago)
Author:
nahi
Message:
  • added wsdl/soap/classNameCreator and let it handle whole classname creation. and when the same NCName is used in different namespaces, ClassNameCreator? tries to avoid classname crash by adding '_' at the end of classname. it's a dirty workaround for #408 and will be changed in the future.
Files:

Legend:

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

    r1922 r1939  
    1616require 'wsdl/soap/methodDefCreator' 
    1717require 'wsdl/soap/classDefCreatorSupport' 
     18require 'wsdl/soap/classNameCreator' 
    1819 
    1920 
     
    3031  def initialize(wsdl) 
    3132    @wsdl = import(wsdl) 
    32     @methoddefcreator = WSDL::SOAP::MethodDefCreator.new(@wsdl, nil, {}) 
     33    name_creator = WSDL::SOAP::ClassNameCreator.new 
     34    @methoddefcreator = 
     35      WSDL::SOAP::MethodDefCreator.new(@wsdl, name_creator, nil, {}) 
    3336  end 
    3437   
  • trunk/lib/wsdl/soap/cgiStubCreator.rb

    r1922 r1939  
    2222  attr_reader :definitions 
    2323 
    24   def initialize(definitions, modulepath = nil) 
     24  def initialize(definitions, name_creator, modulepath = nil) 
    2525    @definitions = definitions 
     26    @name_creator = name_creator 
    2627    @modulepath = modulepath 
    2728  end 
     
    4950    class_name = create_class_name(porttype.name, @modulepath) 
    5051    defined_const = {} 
    51     result = MethodDefCreator.new(@definitions, @modulepath, defined_const).dump(porttype.name) 
     52    result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name) 
    5253    methoddef = result[:methoddef] 
    5354    wsdl_name = @definitions.name ? @definitions.name.name : 'default' 
  • trunk/lib/wsdl/soap/classDefCreator.rb

    r1938 r1939  
    2121  include XSD::CodeGen 
    2222 
    23   def initialize(definitions, modulepath = nil) 
     23  def initialize(definitions, name_creator, modulepath = nil) 
    2424    @definitions = definitions 
     25    @name_creator = name_creator 
    2526    @modulepath = modulepath 
    2627    @elements = definitions.collect_elements 
  • trunk/lib/wsdl/soap/classDefCreatorSupport.rb

    r1915 r1939  
    1717 
    1818 
    19 # requires @defined_const, @simpletypes, and @modulepath 
     19# requires @defined_const, @simpletypes, @name_creator, and @modulepath 
    2020module ClassDefCreatorSupport 
    2121  include XSD::CodeGen::GenSupport 
    2222 
    2323  def create_class_name(qname, modulepath = nil) 
    24     if klass = basetype_mapped_class(qname) 
    25       ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name 
    26     else 
    27       name = safeconstname(qname.name) 
    28       if modulepath 
    29         [modulepath, name].join('::') 
    30       else 
    31         name 
    32       end 
    33     end 
     24    @name_creator.create_name(qname, modulepath) 
    3425  end 
    3526 
  • trunk/lib/wsdl/soap/clientSkeltonCreator.rb

    r1922 r1939  
    2020  attr_reader :definitions 
    2121 
    22   def initialize(definitions, modulepath = nil) 
     22  def initialize(definitions, name_creator, modulepath = nil) 
    2323    @definitions = definitions 
     24    @name_creator = name_creator 
    2425    @modulepath = modulepath 
    2526  end 
  • trunk/lib/wsdl/soap/driverCreator.rb

    r1899 r1939  
    2424  attr_accessor :drivername_postfix 
    2525 
    26   def initialize(definitions, modulepath = nil) 
     26  def initialize(definitions, name_creator, modulepath = nil) 
    2727    @definitions = definitions 
     28    @name_creator = name_creator 
    2829    @modulepath = modulepath 
    2930    @drivername_postfix = '' 
     
    5859 
    5960  def dump_porttype(porttype) 
    60     qname = XSD::QName.new(nil, porttype.name + @drivername_postfix) 
     61    drivername = porttype.name + @drivername_postfix 
     62    qname = XSD::QName.new(porttype.namespace, drivername) 
    6163    class_name = create_class_name(qname) 
    6264    defined_const = {} 
    63     result = MethodDefCreator.new(@definitions, @modulepath, defined_const).dump(porttype) 
     65    result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype) 
    6466    methoddef = result[:methoddef] 
    6567    binding = @definitions.bindings.find { |item| item.type == porttype } 
  • trunk/lib/wsdl/soap/encodedMappingRegistryCreator.rb

    r1934 r1939  
    2020  attr_reader :definitions 
    2121 
    22   def initialize(definitions, modulepath, defined_const) 
     22  def initialize(definitions, name_creator, modulepath, defined_const) 
    2323    @definitions = definitions 
     24    @name_creator = name_creator 
    2425    @modulepath = modulepath 
    2526    @simpletypes = definitions.collect_simpletypes 
  • trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb

    r1938 r1939  
    1818  include MappingRegistryCreatorSupport 
    1919 
    20   def initialize(definitions, modulepath, defined_const) 
     20  def initialize(definitions, name_creator, modulepath, defined_const) 
    2121    @definitions = definitions 
     22    @name_creator = name_creator 
    2223    @modulepath = modulepath 
    2324    @elements = definitions.collect_elements 
  • trunk/lib/wsdl/soap/mappingRegistryCreator.rb

    r1891 r1939  
    2323  attr_reader :definitions 
    2424 
    25   def initialize(definitions, modulepath = nil) 
     25  def initialize(definitions, name_creator, modulepath = nil) 
    2626    @definitions = definitions 
     27    @name_creator = name_creator 
    2728    @modulepath = modulepath 
    2829  end 
     
    3031  def dump 
    3132    defined_const = {} 
    32     encoded_creator = EncodedMappingRegistryCreator.new(@definitions, @modulepath, defined_const) 
    33     literal_creator = LiteralMappingRegistryCreator.new(@definitions, @modulepath, defined_const) 
     33    encoded_creator = EncodedMappingRegistryCreator.new(@definitions, @name_creator, @modulepath, defined_const) 
     34    literal_creator = LiteralMappingRegistryCreator.new(@definitions, @name_creator, @modulepath, defined_const) 
    3435    wsdl_name = @definitions.name ? @definitions.name.name : 'default' 
    3536    module_name = safeconstname(wsdl_name + 'MappingRegistry') 
  • trunk/lib/wsdl/soap/methodDefCreator.rb

    r1922 r1939  
    2121  attr_reader :definitions 
    2222 
    23   def initialize(definitions, modulepath, defined_const) 
     23  def initialize(definitions, name_creator, modulepath, defined_const) 
    2424    @definitions = definitions 
     25    @name_creator = name_creator 
    2526    @modulepath = modulepath 
    2627    @simpletypes = @definitions.collect_simpletypes 
  • trunk/lib/wsdl/soap/servantSkeltonCreator.rb

    r1827 r1939  
    2222  attr_reader :definitions 
    2323 
    24   def initialize(definitions, modulepath = nil) 
     24  def initialize(definitions, name_creator, modulepath = nil) 
    2525    @definitions = definitions 
     26    @name_creator = name_creator 
    2627    @modulepath = modulepath 
    2728  end 
  • trunk/lib/wsdl/soap/servletStubCreator.rb

    r1928 r1939  
    2222  attr_reader :definitions 
    2323 
    24   def initialize(definitions, modulepath = nil) 
     24  def initialize(definitions, name_creator, modulepath = nil) 
    2525    @definitions = definitions 
     26    @name_creator = name_creator 
    2627    @modulepath = modulepath 
    2728  end 
     
    4950    class_name = create_class_name(porttype.name, @modulepath) 
    5051    defined_const = {} 
    51     result = MethodDefCreator.new(@definitions, @modulepath, defined_const).dump(porttype.name) 
     52    result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name) 
    5253    methoddef = result[:methoddef] 
    5354 
  • trunk/lib/wsdl/soap/standaloneServerStubCreator.rb

    r1922 r1939  
    2222  attr_reader :definitions 
    2323 
    24   def initialize(definitions, modulepath = nil) 
     24  def initialize(definitions, name_creator, modulepath = nil) 
    2525    @definitions = definitions 
     26    @name_creator = name_creator 
    2627    @modulepath = modulepath 
    2728  end 
     
    5051    class_name = create_class_name(porttype.name, @modulepath) 
    5152    defined_const = {} 
    52     result = MethodDefCreator.new(@definitions, @modulepath, defined_const).dump(porttype.name) 
     53    result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name) 
    5354    methoddef = result[:methoddef] 
    5455 
  • trunk/lib/wsdl/soap/wsdl2ruby.rb

    r1928 r1939  
    1717require 'wsdl/soap/servletStubCreator' 
    1818require 'wsdl/soap/cgiStubCreator' 
     19require 'wsdl/soap/classNameCreator' 
    1920 
    2021 
     
    5455    @classdef_filename = nil 
    5556    @mr_filename = nil 
     57    @name_creator = ClassNameCreator.new 
    5658  end 
    5759 
     
    7375    check_file(@classdef_filename) or return 
    7476    write_file(@classdef_filename) do |f| 
    75       f << WSDL::SOAP::ClassDefCreator.new(@wsdl, @modulepath).dump 
     77      f << WSDL::SOAP::ClassDefCreator.new(@wsdl, @name_creator, @modulepath).dump 
    7678    end 
    7779  end 
     
    8385    write_file(@mr_filename) do |f| 
    8486      f << "require '#{@classdef_filename}'\n" if @classdef_filename 
    85       f << WSDL::SOAP::MappingRegistryCreator.new(@wsdl, @modulepath).dump 
     87      f << WSDL::SOAP::MappingRegistryCreator.new(@wsdl, @name_creator, @modulepath).dump 
    8688    end 
    8789  end 
     
    9698      f << shbang << "\n" 
    9799      f << "require '#{@driver_filename}'\n\n" if @driver_filename 
    98       f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl, @modulepath).dump( 
    99         create_name(servicename)) 
     100      f << WSDL::SOAP::ClientSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) 
    100101    end 
    101102  end 
     
    107108    write_file(@servant_skelton_filename) do |f| 
    108109      f << "require '#{@classdef_filename}'\n\n" if @classdef_filename 
    109       f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl, @modulepath).dump( 
    110         create_name(porttypename)) 
     110      f << WSDL::SOAP::ServantSkeltonCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(porttypename)) 
    111111    end 
    112112  end 
     
    121121      f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename 
    122122      f << "require '#{@mr_filename}'\n" if @mr_filename 
    123       f << WSDL::SOAP::CGIStubCreator.new(@wsdl, @modulepath).dump(create_name(servicename)) 
     123      f << WSDL::SOAP::CGIStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) 
    124124    end 
    125125  end 
     
    134134      f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename 
    135135      f << "require '#{@mr_filename}'\n" if @mr_filename 
    136       f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl, @modulepath).dump( 
    137         create_name(servicename)) 
     136      f << WSDL::SOAP::StandaloneServerStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) 
    138137    end 
    139138  end 
     
    148147      f << "require '#{@servant_skelton_filename}'\n" if @servant_skelton_filename 
    149148      f << "require '#{@mr_filename}'\n" if @mr_filename 
    150       f << WSDL::SOAP::ServletStubCreator.new(@wsdl, @modulepath).dump( 
    151         create_name(servicename)) 
     149      f << WSDL::SOAP::ServletStubCreator.new(@wsdl, @name_creator, @modulepath).dump(create_name(servicename)) 
    152150    end 
    153151  end 
     
    156154    @logger.info { "Creating driver." } 
    157155    @driver_filename = (porttypename || @name) + 'Driver.rb' 
    158     creator = WSDL::SOAP::DriverCreator.new(@wsdl, @modulepath) 
     156    creator = WSDL::SOAP::DriverCreator.new(@wsdl, @name_creator, @modulepath) 
    159157    creator.drivername_postfix = drivername_postfix 
    160158    check_file(@driver_filename) or return 
  • trunk/lib/wsdl/xmlSchema/xsd2ruby.rb

    r1891 r1939  
    1212require 'wsdl/soap/classDefCreatorSupport' 
    1313require 'wsdl/soap/literalMappingRegistryCreator' 
     14require 'wsdl/soap/classNameCreator' 
    1415require 'logger' 
    1516 
     
    4546    @xsd = nil 
    4647    @name = nil 
     48    @name_creator = WSDL::SOAP::ClassNameCreator.new 
    4749  end 
    4850 
     
    5961    check_file(@classdef_filename) or return 
    6062    write_file(@classdef_filename) do |f| 
    61       f << WSDL::SOAP::ClassDefCreator.new(@xsd, @modulepath).dump 
     63      f << WSDL::SOAP::ClassDefCreator.new(@xsd, @name_creator, @modulepath).dump 
    6264    end 
    6365  end 
     
    8385  def dump_mapping_registry 
    8486    defined_const = {} 
    85     creator = WSDL::SOAP::LiteralMappingRegistryCreator.new(@xsd, @modulepath, defined_const) 
    86     module_name = XSD::CodeGen::GenSupport.safeconstname( 
    87       @name + 'MappingRegistry') 
     87    creator = WSDL::SOAP::LiteralMappingRegistryCreator.new(@xsd, @name_creator, @modulepath, defined_const) 
     88    module_name = XSD::CodeGen::GenSupport.safeconstname(@name + 'MappingRegistry') 
    8889    if @modulepath 
    8990      module_name = [@modulepath, module_name].join('::') 
  • trunk/test/wsdl/any/test_any.rb

    r1904 r1939  
    136136    compare("expectedDriver.rb", "echoDriver.rb") 
    137137    compare("expectedService.rb", "echo_service.rb") 
    138  
    139     File.unlink(pathname("echo_service.rb")) 
    140     File.unlink(pathname("echo.rb")) 
    141     File.unlink(pathname("echo_serviceClient.rb")) 
    142     File.unlink(pathname("echoDriver.rb")) 
    143     File.unlink(pathname("echoServant.rb")) 
    144138  end 
    145139 
  • trunk/test/wsdl/test_multiplefault.rb

    r1520 r1939  
    22require 'wsdl/parser' 
    33require 'wsdl/soap/classDefCreator' 
     4require 'wsdl/soap/classNameCreator' 
    45 
    56 
     
    1415  def test_multiplefault 
    1516    @wsdl = WSDL::Parser.new.parse(File.open(@@filename) { |f| f.read }) 
    16     classdefstr = WSDL::SOAP::ClassDefCreator.new(@wsdl).dump 
     17    name_creator = WSDL::SOAP::ClassNameCreator.new 
     18    classdefstr = WSDL::SOAP::ClassDefCreator.new(@wsdl, name_creator).dump 
    1719    yield_eval_binding(classdefstr) do |b| 
    1820      assert_equal(