Parent

Included Modules

Files

Class Index [+]

Quicksearch

WSDL::SOAP::ServletStubCreator

Attributes

definitions[R]

Public Class Methods

new(definitions, name_creator, modulepath = nil) click to toggle source
    # File lib/wsdl/soap/servletStubCreator.rb, line 24
24:   def initialize(definitions, name_creator, modulepath = nil)
25:     @definitions = definitions
26:     @name_creator = name_creator
27:     @modulepath = modulepath
28:   end

Public Instance Methods

dump(service_name) click to toggle source
    # File lib/wsdl/soap/servletStubCreator.rb, line 30
30:   def dump(service_name)
31:     warn("- Servlet stub can have only 1 port for now.  So creating stub for the first port and rests are ignored.")
32:     services = @definitions.service(service_name)
33:     unless services
34:       raise RuntimeError.new("service not defined: #{service_name}")
35:     end
36:     ports = services.ports
37:     if ports.empty?
38:       raise RuntimeError.new("ports not found for #{service_name}")
39:     end
40:     port = ports[0]
41:     if port.porttype.nil?
42:       raise RuntimeError.new("porttype not found for #{port}")
43:     end
44:     dump_porttype(port.porttype)
45:   end

Private Instance Methods

dump_porttype(porttype) click to toggle source
    # File lib/wsdl/soap/servletStubCreator.rb, line 49
49:   def dump_porttype(porttype)
50:     class_name = mapped_class_name(porttype.name, @modulepath)
51:     defined_const = {}
52:     result = MethodDefCreator.new(@definitions, @name_creator, @modulepath, defined_const).dump(porttype.name)
53:     methoddef = result[:methoddef]
54: 
55:     wsdl_name = @definitions.name ? @definitions.name.name : 'default'
56:     mrname = safeconstname(wsdl_name + 'MappingRegistry')
57:     
58:     c1 = XSD::CodeGen::ClassDef.new(class_name)
59:     c1.def_require("soap/rpc/soaplet")
60:     c1.def_code Methods = [#{methoddef.gsub(/^/, "  ")}]
61:     defined_const.each do |ns, tag|
62:       c1.def_const(tag, dq(ns))
63:     end
64:     c2 = XSD::CodeGen::ClassDef.new(class_name + "Servlet",
65:       "::SOAP::RPC::SOAPlet")
66:     c2.def_method("initialize", "router = nil") do
67:               super(router)        servant = #{class_name}.new        #{class_name}::Methods.each do |definitions|          opt = definitions.last          if opt[:request_style] == :document            @router.add_document_operation(servant, *definitions)          else            @router.add_rpc_operation(servant, *definitions)          end        end        @router.mapping_registry = #{mrname}::EncodedRegistry        @router.literal_mapping_registry = #{mrname}::LiteralRegistry
68:     end
69:     c1.dump + "\n" + c2.dump + format(      if $0 == __FILE__        require 'webrick'        server = WEBrick::HTTPServer.new(          :BindAddress => "0.0.0.0",          :Port => 10080,          :DocumentRoot => "."        )        server.mount("/", #{c2.name}.new)        trap(:INT) do          server.shutdown        end        server.start      end)
70:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.