soap4r 1.5.7 → 1.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. data/bin/wsdl2ruby.rb +8 -2
  2. data/lib/soap/baseData.rb +93 -43
  3. data/lib/soap/element.rb +11 -8
  4. data/lib/soap/encodingstyle/handler.rb +15 -4
  5. data/lib/soap/encodingstyle/literalHandler.rb +18 -24
  6. data/lib/soap/encodingstyle/soapHandler.rb +34 -77
  7. data/lib/soap/generator.rb +74 -48
  8. data/lib/soap/header/handler.rb +1 -1
  9. data/lib/soap/header/mappinghandler.rb +47 -0
  10. data/lib/soap/mapping/encodedregistry.rb +19 -13
  11. data/lib/soap/mapping/factory.rb +19 -3
  12. data/lib/soap/mapping/literalregistry.rb +47 -35
  13. data/lib/soap/mapping/mapping.rb +92 -24
  14. data/lib/soap/mapping/registry.rb +34 -18
  15. data/lib/soap/mapping/schemadefinition.rb +8 -1
  16. data/lib/soap/mapping/typeMap.rb +18 -0
  17. data/lib/soap/mapping/wsdlencodedregistry.rb +8 -50
  18. data/lib/soap/mapping/wsdlliteralregistry.rb +45 -39
  19. data/lib/soap/nestedexception.rb +42 -0
  20. data/lib/soap/netHttpClient.rb +1 -0
  21. data/lib/soap/ns.rb +34 -0
  22. data/lib/soap/parser.rb +32 -29
  23. data/lib/soap/processor.rb +1 -1
  24. data/lib/soap/rpc/driver.rb +1 -0
  25. data/lib/soap/rpc/element.rb +18 -6
  26. data/lib/soap/rpc/httpserver.rb +38 -24
  27. data/lib/soap/rpc/proxy.rb +14 -11
  28. data/lib/soap/rpc/router.rb +4 -1
  29. data/lib/soap/soap.rb +7 -6
  30. data/lib/soap/wsdlDriver.rb +29 -8
  31. data/lib/tags +5690 -0
  32. data/lib/wsdl/definitions.rb +26 -40
  33. data/lib/wsdl/info.rb +11 -0
  34. data/lib/wsdl/parser.rb +2 -2
  35. data/lib/wsdl/soap/cgiStubCreator.rb +10 -5
  36. data/lib/wsdl/soap/classDefCreator.rb +140 -113
  37. data/lib/wsdl/soap/classDefCreatorSupport.rb +94 -12
  38. data/lib/wsdl/soap/classNameCreator.rb +54 -0
  39. data/lib/wsdl/soap/clientSkeltonCreator.rb +6 -5
  40. data/lib/wsdl/soap/complexType.rb +10 -1
  41. data/lib/wsdl/soap/definitions.rb +4 -0
  42. data/lib/wsdl/soap/driverCreator.rb +14 -6
  43. data/lib/wsdl/soap/element.rb +4 -0
  44. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +11 -55
  45. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +28 -126
  46. data/lib/wsdl/soap/mappingRegistryCreator.rb +9 -3
  47. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +209 -94
  48. data/lib/wsdl/soap/methodDefCreator.rb +12 -16
  49. data/lib/wsdl/soap/servantSkeltonCreator.rb +3 -2
  50. data/lib/wsdl/soap/servletStubCreator.rb +107 -0
  51. data/lib/wsdl/soap/standaloneServerStubCreator.rb +10 -5
  52. data/lib/wsdl/soap/wsdl2ruby.rb +28 -13
  53. data/lib/wsdl/wsdl.rb +2 -1
  54. data/lib/wsdl/xmlSchema/anyAttribute.rb +48 -0
  55. data/lib/wsdl/xmlSchema/attributeGroup.rb +86 -0
  56. data/lib/wsdl/xmlSchema/choice.rb +4 -1
  57. data/lib/wsdl/xmlSchema/complexContent.rb +1 -1
  58. data/lib/wsdl/xmlSchema/complexExtension.rb +9 -1
  59. data/lib/wsdl/xmlSchema/complexRestriction.rb +8 -0
  60. data/lib/wsdl/xmlSchema/complexType.rb +38 -5
  61. data/lib/wsdl/xmlSchema/data.rb +30 -7
  62. data/lib/wsdl/xmlSchema/element.rb +10 -2
  63. data/lib/wsdl/xmlSchema/fractiondigits.rb +37 -0
  64. data/lib/wsdl/xmlSchema/group.rb +118 -0
  65. data/lib/wsdl/xmlSchema/import.rb +11 -23
  66. data/lib/wsdl/xmlSchema/importHandler.rb +45 -0
  67. data/lib/wsdl/xmlSchema/include.rb +11 -17
  68. data/lib/wsdl/xmlSchema/length.rb +3 -1
  69. data/lib/wsdl/xmlSchema/maxexclusive.rb +37 -0
  70. data/lib/wsdl/xmlSchema/maxinclusive.rb +37 -0
  71. data/lib/wsdl/xmlSchema/maxlength.rb +3 -1
  72. data/lib/wsdl/xmlSchema/minexclusive.rb +37 -0
  73. data/lib/wsdl/xmlSchema/mininclusive.rb +37 -0
  74. data/lib/wsdl/xmlSchema/minlength.rb +3 -1
  75. data/lib/wsdl/xmlSchema/schema.rb +34 -0
  76. data/lib/wsdl/xmlSchema/sequence.rb +4 -1
  77. data/lib/wsdl/xmlSchema/simpleExtension.rb +8 -0
  78. data/lib/wsdl/xmlSchema/simpleRestriction.rb +49 -8
  79. data/lib/wsdl/xmlSchema/totaldigits.rb +37 -0
  80. data/lib/wsdl/xmlSchema/whitespace.rb +37 -0
  81. data/lib/wsdl/xmlSchema/xsd2ruby.rb +13 -4
  82. data/lib/xsd/charset.rb +8 -6
  83. data/lib/xsd/codegen/classdef.rb +5 -0
  84. data/lib/xsd/codegen/moduledef.rb +17 -0
  85. data/lib/xsd/datatypes.rb +165 -20
  86. data/lib/xsd/mapping.rb +13 -5
  87. data/lib/xsd/namedelements.rb +8 -0
  88. data/lib/xsd/ns.rb +50 -14
  89. data/lib/xsd/qname.rb +3 -2
  90. data/lib/xsd/xmlparser.rb +4 -3
  91. data/test/soap/asp.net/test_aspdotnet.rb +1 -1
  92. data/test/soap/auth/test_basic.rb +4 -3
  93. data/test/soap/auth/test_digest.rb +4 -3
  94. data/test/soap/calc/test_calc.rb +6 -4
  95. data/test/soap/calc/test_calc2.rb +6 -4
  96. data/test/soap/calc/test_calc_cgi.rb +6 -4
  97. data/test/soap/fault/test_customfault.rb +6 -4
  98. data/test/soap/fault/test_soaparray.rb +35 -0
  99. data/test/soap/filter/test_filter.rb +2 -2
  100. data/test/soap/header/test_authheader.rb +2 -2
  101. data/test/soap/header/test_authheader_cgi.rb +3 -3
  102. data/test/soap/header/test_simplehandler.rb +2 -2
  103. data/test/soap/helloworld/test_helloworld.rb +6 -4
  104. data/test/soap/ssl/test_ssl.rb +1 -1
  105. data/test/soap/struct/test_struct.rb +2 -2
  106. data/test/soap/swa/test_file.rb +6 -4
  107. data/test/soap/test_basetype.rb +4 -4
  108. data/test/soap/test_cookie.rb +2 -2
  109. data/test/soap/test_custom_ns.rb +50 -8
  110. data/test/soap/test_custommap.rb +6 -4
  111. data/test/soap/test_empty.rb +6 -4
  112. data/test/soap/test_envelopenamespace.rb +2 -2
  113. data/test/soap/test_extraattr.rb +6 -7
  114. data/test/soap/test_generator.rb +27 -0
  115. data/test/soap/test_mapping.rb +10 -0
  116. data/test/soap/test_nestedexception.rb +56 -0
  117. data/test/soap/test_nil.rb +6 -4
  118. data/test/soap/test_no_indent.rb +6 -4
  119. data/test/soap/test_response_as_xml.rb +2 -2
  120. data/test/soap/test_streamhandler.rb +6 -3
  121. data/test/soap/test_styleuse.rb +2 -2
  122. data/test/soap/wsdlDriver/test_calc.rb +2 -2
  123. data/test/soap/wsdlDriver/test_document.rb +2 -2
  124. data/test/soap/wsdlDriver/test_simpletype.rb +2 -2
  125. data/test/wsdl/abstract/test_abstract.rb +1 -1
  126. data/test/wsdl/anonymous/expectedClassDef.rb +128 -0
  127. data/test/wsdl/anonymous/expectedDriver.rb +59 -0
  128. data/test/wsdl/anonymous/expectedMappingRegistry.rb +176 -0
  129. data/test/wsdl/anonymous/lp.wsdl +147 -0
  130. data/test/wsdl/anonymous/test_anonymous.rb +130 -0
  131. data/test/wsdl/any/expectedDriver.rb +3 -2
  132. data/test/wsdl/any/expectedEcho.rb +22 -2
  133. data/test/wsdl/any/expectedMappingRegistry.rb +63 -0
  134. data/test/wsdl/any/expectedService.rb +3 -1
  135. data/test/wsdl/any/test_any.rb +2 -7
  136. data/test/wsdl/axisArray/axisArray.wsdl +31 -4
  137. data/test/wsdl/axisArray/test_axisarray.rb +58 -3
  138. data/test/wsdl/choice/choice.wsdl +39 -0
  139. data/test/wsdl/choice/test_choice.rb +134 -7
  140. data/test/wsdl/complexcontent/test_echo.rb +1 -1
  141. data/test/wsdl/datetime/test_datetime.rb +2 -2
  142. data/test/wsdl/document/array/double.wsdl +45 -6
  143. data/test/wsdl/document/array/test_array.rb +68 -1
  144. data/test/wsdl/document/document.wsdl +2 -0
  145. data/test/wsdl/document/test_nosoapaction.rb +1 -1
  146. data/test/wsdl/document/test_number.rb +1 -1
  147. data/test/wsdl/document/test_rpc.rb +78 -9
  148. data/test/wsdl/fault/test_fault.rb +1 -1
  149. data/test/wsdl/fault/test_multifault.rb +1 -1
  150. data/test/wsdl/group/expectedClassdef.rb +58 -0
  151. data/test/wsdl/group/expectedDriver.rb +51 -0
  152. data/test/wsdl/group/expectedMappingRegistry.rb +67 -0
  153. data/test/wsdl/group/group.wsdl +88 -0
  154. data/test/wsdl/group/test_rpc.rb +145 -0
  155. data/test/wsdl/list/test_list.rb +1 -1
  156. data/test/wsdl/map/test_map.rb +2 -2
  157. data/test/wsdl/marshal/person_org.rb +5 -0
  158. data/test/wsdl/multiplefault.wsdl +11 -4
  159. data/test/wsdl/oneway/test_oneway.rb +1 -1
  160. data/test/wsdl/overload/test_overload.rb +1 -1
  161. data/test/wsdl/qualified/test_qualified.rb +1 -1
  162. data/test/wsdl/qualified/test_unqualified.rb +1 -1
  163. data/test/wsdl/raa/RAAService.rb +62 -57
  164. data/test/wsdl/raa/expectedClassDef.rb +100 -0
  165. data/test/wsdl/raa/expectedDriver.rb +96 -0
  166. data/test/wsdl/raa/expectedMappingRegistry.rb +121 -0
  167. data/test/wsdl/raa/test_raa.rb +54 -19
  168. data/test/wsdl/ref/expectedDriver.rb +1 -1
  169. data/test/wsdl/ref/expectedProduct.rb +101 -16
  170. data/test/wsdl/ref/test_ref.rb +2 -1
  171. data/test/wsdl/rpc/test_rpc.rb +1 -2
  172. data/test/wsdl/rpc/test_rpc_lit.rb +13 -13
  173. data/test/wsdl/simplecontent/test_simplecontent.rb +5 -5
  174. data/test/wsdl/simpletype/rpc/expectedDriver.rb +3 -2
  175. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +2 -0
  176. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +10 -17
  177. data/test/wsdl/simpletype/rpc/expectedService.rb +4 -2
  178. data/test/wsdl/simpletype/test_simpletype.rb +2 -2
  179. data/test/wsdl/soap/test_soapbodyparts.rb +2 -2
  180. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +2 -0
  181. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +3 -2
  182. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +5 -9
  183. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +4 -2
  184. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +4 -2
  185. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +6 -0
  186. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +1 -1
  187. data/test/wsdl/soaptype/test_soaptype.rb +1 -1
  188. data/test/wsdl/test_multiplefault.rb +3 -1
  189. data/test/xsd/codegen/test_classdef.rb +30 -0
  190. data/test/xsd/test_ns.rb +21 -0
  191. data/test/xsd/test_xsd.rb +5 -4
  192. data/test/xsd/xsd2ruby/expected_mysample.rb +13 -2
  193. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +5 -11
  194. data/test/xsd/xsd2ruby/section.xsd +8 -0
  195. metadata +40 -8
  196. data/test/wsdl/axisArray/itemList.rb +0 -14
  197. data/test/wsdl/raa/RAA.rb +0 -120
  198. data/test/wsdl/raa/RAAServant.rb +0 -107
  199. data/test/wsdl/raa/server.rb +0 -103
@@ -0,0 +1,145 @@
1
+ require 'test/unit'
2
+ require 'wsdl/parser'
3
+ require 'wsdl/soap/wsdl2ruby'
4
+ require 'soap/rpc/standaloneServer'
5
+ require 'soap/wsdlDriver'
6
+ require File.join(File.dirname(File.expand_path(__FILE__)), '..', '..', 'testutil.rb')
7
+
8
+
9
+ module WSDL; module Group
10
+
11
+
12
+ class TestGroup < Test::Unit::TestCase
13
+ class Server < ::SOAP::RPC::StandaloneServer
14
+ Namespace = 'urn:group'
15
+ TypeNamespace = 'urn:grouptype'
16
+
17
+ def on_init
18
+ add_document_method(
19
+ self,
20
+ Namespace + ':echo',
21
+ 'echo',
22
+ XSD::QName.new(TypeNamespace, 'groupele'),
23
+ XSD::QName.new(TypeNamespace, 'groupele')
24
+ )
25
+ self.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
26
+ end
27
+
28
+ def echo(arg)
29
+ # arg
30
+ # need to convert for 'any'
31
+ ret = Groupele_type.new(arg.comment, arg.element, arg.eletype, arg.var)
32
+ ret.xmlattr_attr_max = arg.xmlattr_attr_max
33
+ ret.xmlattr_attr_min = arg.xmlattr_attr_min
34
+ ret.set_any([::SOAP::SOAPElement.new("foo", arg.foo)])
35
+ ret
36
+ end
37
+ end
38
+
39
+ DIR = File.dirname(File.expand_path(__FILE__))
40
+
41
+ Port = 17171
42
+
43
+ def setup
44
+ setup_classdef
45
+ setup_server
46
+ @client = nil
47
+ end
48
+
49
+ def teardown
50
+ teardown_server if @server
51
+ File.unlink(pathname('echo.rb')) unless $DEBUG
52
+ File.unlink(pathname('echoMappingRegistry.rb')) unless $DEBUG
53
+ File.unlink(pathname('echoDriver.rb')) unless $DEBUG
54
+ @client.reset_stream if @client
55
+ end
56
+
57
+ def setup_server
58
+ @server = Server.new('Test', "urn:group", '0.0.0.0', Port)
59
+ @server.level = Logger::Severity::ERROR
60
+ @server_thread = TestUtil.start_server_thread(@server)
61
+ end
62
+
63
+ def setup_classdef
64
+ gen = WSDL::SOAP::WSDL2Ruby.new
65
+ gen.location = pathname("group.wsdl")
66
+ gen.basedir = DIR
67
+ gen.logger.level = Logger::FATAL
68
+ gen.opt['classdef'] = nil
69
+ gen.opt['mapping_registry'] = nil
70
+ gen.opt['driver'] = nil
71
+ gen.opt['module_path'] = self.class.to_s.sub(/::[^:]+$/, '')
72
+ gen.opt['force'] = true
73
+ gen.run
74
+ TestUtil.require(DIR, 'echoDriver.rb', 'echoMappingRegistry.rb', 'echo.rb')
75
+ end
76
+
77
+ def teardown_server
78
+ @server.shutdown
79
+ @server_thread.kill
80
+ @server_thread.join
81
+ end
82
+
83
+ def pathname(filename)
84
+ File.join(DIR, filename)
85
+ end
86
+
87
+ def compare(expected, actual)
88
+ TestUtil.filecompare(pathname(expected), pathname(actual))
89
+ end
90
+
91
+ def test_generate
92
+ compare("expectedClassdef.rb", "echo.rb")
93
+ compare("expectedMappingRegistry.rb", "echoMappingRegistry.rb")
94
+ compare("expectedDriver.rb", "echoDriver.rb")
95
+ end
96
+
97
+ def test_wsdl
98
+ wsdl = File.join(DIR, 'group.wsdl')
99
+ @client = ::SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
100
+ @client.endpoint_url = "http://localhost:#{Port}/"
101
+ @client.wiredump_dev = STDOUT if $DEBUG
102
+ @client.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
103
+ #
104
+ do_test_arg
105
+ end
106
+
107
+ def test_naive
108
+ @client = ::SOAP::RPC::Driver.new("http://localhost:#{Port}/")
109
+ @client.add_document_method('echo', 'urn:group:echo',
110
+ XSD::QName.new('urn:grouptype', 'groupele'),
111
+ XSD::QName.new('urn:grouptype', 'groupele'))
112
+ @client.literal_mapping_registry = EchoMappingRegistry::LiteralRegistry
113
+ @client.wiredump_dev = STDOUT if $DEBUG
114
+ #
115
+ do_test_arg
116
+ end
117
+
118
+ def test_stub
119
+ @client = Group_porttype.new("http://localhost:#{Port}/")
120
+ @client.wiredump_dev = STDOUT if $DEBUG
121
+ #
122
+ do_test_arg
123
+ end
124
+
125
+ def do_test_arg
126
+ arg = Groupele_type.new
127
+ arg.comment = "comment"
128
+ arg.set_any(
129
+ [::SOAP::SOAPElement.new("foo", "bar")]
130
+ )
131
+ arg.eletype = "eletype"
132
+ arg.var = "var"
133
+ arg.xmlattr_attr_min = -3
134
+ arg.xmlattr_attr_max = 3
135
+ ret = @client.echo(arg)
136
+ assert_equal(arg.comment, ret.comment)
137
+ assert_equal(arg.eletype, ret.eletype)
138
+ assert_nil(ret.element)
139
+ assert_equal(arg.var, ret.var)
140
+ assert_equal("bar", ret.foo)
141
+ end
142
+ end
143
+
144
+
145
+ end; end
@@ -39,7 +39,7 @@ class TestList < Test::Unit::TestCase
39
39
  end
40
40
 
41
41
  def teardown
42
- teardown_server
42
+ teardown_server if @server
43
43
  File.unlink(pathname('list.rb')) unless $DEBUG
44
44
  File.unlink(pathname('listMappingRegistry.rb')) unless $DEBUG
45
45
  File.unlink(pathname('listDriver.rb')) unless $DEBUG
@@ -53,8 +53,8 @@ class TestMap < Test::Unit::TestCase
53
53
  end
54
54
 
55
55
  def teardown
56
- teardown_server
57
- teardown_client
56
+ teardown_server if @server
57
+ teardown_client if @client
58
58
  end
59
59
 
60
60
  def teardown_server
@@ -1,6 +1,11 @@
1
1
  require 'xsd/qname'
2
2
 
3
3
  # {http://www.jin.gr.jp/~nahi/xmlns/sample/Person}Person
4
+ # familyname - SOAP::SOAPString
5
+ # givenname - SOAP::SOAPString
6
+ # var1 - SOAP::SOAPInt
7
+ # var2 - SOAP::SOAPDouble
8
+ # var3 - SOAP::SOAPString
4
9
  class Person
5
10
  attr_accessor :familyname
6
11
  attr_accessor :givenname
@@ -12,6 +12,7 @@
12
12
  <types>
13
13
  <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
14
14
  targetNamespace="urn:jp.gr.jin.rrr.example.datatypes">
15
+ <xsd:element name="AuthenticationError" type="tns:AuthenticationError" />
15
16
  <xsd:complexType name="AuthenticationError">
16
17
  <all>
17
18
  <element name="message" type="xsd:string" />
@@ -30,18 +31,18 @@
30
31
  <message name="inputmsg"/>
31
32
  <message name="outputmsg"/>
32
33
  <message name="faultmsg1" >
33
- <part name="exception" type="typens:AuthenticationError" />
34
+ <part name="exception" element="typens:AuthenticationError" />
34
35
  </message>
35
36
  <message name="faultmsg2" >
36
- <part name="exception" type="typens:AuthorizationError" />
37
+ <part name="exception" element="typens:AuthorizationError" />
37
38
  </message>
38
39
 
39
40
  <portType name="MultipleFaultPortType">
40
41
  <operation name="myoperation">
41
42
  <input message="tns:inputmsg"/>
42
43
  <output message="tns:outputmsg"/>
43
- <fault message="tns:faultmsg1"/>
44
- <fault message="tns:faultmsg2"/>
44
+ <fault name="faultmsg1" message="tns:faultmsg1"/>
45
+ <fault name="faultmsg2" message="tns:faultmsg2"/>
45
46
  </operation>
46
47
  </portType>
47
48
 
@@ -57,6 +58,12 @@
57
58
  <soap:body use="encoded" namespace="urn:jp.gr.jin.rrr.example.ele"
58
59
  encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
59
60
  </output>
61
+ <fault name="faultmsg1">
62
+ <soap:fault name="faultmsg1" use="literal"/>
63
+ </fault>
64
+ <fault name="faultmsg2">
65
+ <soap:fault name="faultmsg2" use="literal"/>
66
+ </fault>
60
67
  </operation>
61
68
  </binding>
62
69
 
@@ -46,7 +46,7 @@ class TestOneway < Test::Unit::TestCase
46
46
  end
47
47
 
48
48
  def teardown
49
- teardown_server
49
+ teardown_server if @server
50
50
  unless $DEBUG
51
51
  File.unlink(pathname('oneway.rb'))
52
52
  File.unlink(pathname('onewayMappingRegistry.rb'))
@@ -55,7 +55,7 @@ class TestOverload < Test::Unit::TestCase
55
55
  end
56
56
 
57
57
  def teardown
58
- teardown_server
58
+ teardown_server if @server
59
59
  File.unlink(pathname('default.rb')) unless $DEBUG
60
60
  @client.reset_stream if @client
61
61
  end
@@ -39,7 +39,7 @@ class TestQualified < Test::Unit::TestCase
39
39
  end
40
40
 
41
41
  def teardown
42
- teardown_server
42
+ teardown_server if @server
43
43
  unless $DEBUG
44
44
  File.unlink(pathname('default.rb'))
45
45
  File.unlink(pathname('defaultMappingRegistry.rb'))
@@ -39,7 +39,7 @@ class TestUnqualified < Test::Unit::TestCase
39
39
  end
40
40
 
41
41
  def teardown
42
- teardown_server
42
+ teardown_server if @server
43
43
  unless $DEBUG
44
44
  File.unlink(pathname('lp.rb'))
45
45
  File.unlink(pathname('lpMappingRegistry.rb'))
@@ -1,104 +1,106 @@
1
1
  #!/usr/bin/env ruby
2
- require 'RAAServant.rb'
3
-
4
2
  require 'soap/rpc/standaloneServer'
5
- require 'soap/mapping/registry'
6
3
 
7
- class RAABaseServicePortType
8
- MappingRegistry = ::SOAP::Mapping::Registry.new
4
+ module WSDL; module RAA
9
5
 
10
- MappingRegistry.set(
11
- StringArray,
12
- ::SOAP::SOAPArray,
13
- ::SOAP::Mapping::Registry::TypedArrayFactory,
14
- { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "string") }
15
- )
16
- MappingRegistry.set(
17
- Category,
18
- ::SOAP::SOAPStruct,
19
- ::SOAP::Mapping::Registry::TypedStructFactory,
20
- { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Category") }
21
- )
22
- MappingRegistry.set(
23
- InfoArray,
24
- ::SOAP::SOAPArray,
25
- ::SOAP::Mapping::Registry::TypedArrayFactory,
26
- { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info") }
27
- )
28
- MappingRegistry.set(
29
- Info,
30
- ::SOAP::SOAPStruct,
31
- ::SOAP::Mapping::Registry::TypedStructFactory,
32
- { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info") }
33
- )
34
- MappingRegistry.set(
35
- Product,
36
- ::SOAP::SOAPStruct,
37
- ::SOAP::Mapping::Registry::TypedStructFactory,
38
- { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Product") }
39
- )
40
- MappingRegistry.set(
41
- Owner,
42
- ::SOAP::SOAPStruct,
43
- ::SOAP::Mapping::Registry::TypedStructFactory,
44
- { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Owner") }
45
- )
6
+ class RAABaseServicePortTypeServer
7
+ def getAllListings
8
+ ["ruby", "soap4r"]
9
+ end
10
+
11
+ def getProductTree
12
+ raise NotImplementedError.new
13
+ end
14
+
15
+ def getInfoFromCategory(category)
16
+ raise NotImplementedError.new
17
+ end
18
+
19
+ def getModifiedInfoSince(timeInstant)
20
+ raise NotImplementedError.new
21
+ end
22
+
23
+ def getInfoFromName(productName)
24
+ Info.new(
25
+ Category.new("major", "minor"),
26
+ Product.new(123, productName, "short description", "version", "status",
27
+ URI.parse("http://example.com/homepage"),
28
+ URI.parse("http://example.com/download"),
29
+ "license", "description"),
30
+ Owner.new(456, URI.parse("mailto:email@example.com"), "name"),
31
+ Time.now,
32
+ Time.now)
33
+ end
34
+
35
+ def getInfoFromOwnerId(ownerId)
36
+ raise NotImplementedError.new
37
+ end
46
38
 
47
39
  Methods = [
48
40
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getAllListings"),
49
41
  "",
50
42
  "getAllListings",
51
- [ ["retval", "return", ["String[]", "http://www.w3.org/2001/XMLSchema", "string"]] ],
43
+ [ ["retval", "return", ["WSDL::RAA::C_String[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "StringArray"]] ],
52
44
  { :request_style => :rpc, :request_use => :encoded,
53
- :response_style => :rpc, :response_use => :encoded }
45
+ :response_style => :rpc, :response_use => :encoded,
46
+ :faults => {} }
54
47
  ],
55
48
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getProductTree"),
56
49
  "",
57
50
  "getProductTree",
58
51
  [ ["retval", "return", ["Hash", "http://xml.apache.org/xml-soap", "Map"]] ],
59
52
  { :request_style => :rpc, :request_use => :encoded,
60
- :response_style => :rpc, :response_use => :encoded }
53
+ :response_style => :rpc, :response_use => :encoded,
54
+ :faults => {} }
61
55
  ],
62
56
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getInfoFromCategory"),
63
57
  "",
64
58
  "getInfoFromCategory",
65
- [ ["in", "category", ["Category", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Category"]],
66
- ["retval", "return", ["Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
59
+ [ ["in", "category", ["WSDL::RAA::Category", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Category"]],
60
+ ["retval", "return", ["WSDL::RAA::Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
67
61
  { :request_style => :rpc, :request_use => :encoded,
68
- :response_style => :rpc, :response_use => :encoded }
62
+ :response_style => :rpc, :response_use => :encoded,
63
+ :faults => {} }
69
64
  ],
70
65
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getModifiedInfoSince"),
71
66
  "",
72
67
  "getModifiedInfoSince",
73
68
  [ ["in", "timeInstant", ["::SOAP::SOAPDateTime"]],
74
- ["retval", "return", ["Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
69
+ ["retval", "return", ["WSDL::RAA::Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
75
70
  { :request_style => :rpc, :request_use => :encoded,
76
- :response_style => :rpc, :response_use => :encoded }
71
+ :response_style => :rpc, :response_use => :encoded,
72
+ :faults => {} }
77
73
  ],
78
74
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getInfoFromName"),
79
75
  "",
80
76
  "getInfoFromName",
81
77
  [ ["in", "productName", ["::SOAP::SOAPString"]],
82
- ["retval", "return", ["Info", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
78
+ ["retval", "return", ["WSDL::RAA::Info", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
83
79
  { :request_style => :rpc, :request_use => :encoded,
84
- :response_style => :rpc, :response_use => :encoded }
80
+ :response_style => :rpc, :response_use => :encoded,
81
+ :faults => {} }
85
82
  ],
86
83
  [ XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "getInfoFromOwnerId"),
87
84
  "",
88
85
  "getInfoFromOwnerId",
89
86
  [ ["in", "ownerId", ["::SOAP::SOAPInt"]],
90
- ["retval", "return", ["Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "Info"]] ],
87
+ ["retval", "return", ["WSDL::RAA::Info[]", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/", "InfoArray"]] ],
91
88
  { :request_style => :rpc, :request_use => :encoded,
92
- :response_style => :rpc, :response_use => :encoded }
89
+ :response_style => :rpc, :response_use => :encoded,
90
+ :faults => {} }
93
91
  ]
94
92
  ]
95
93
  end
96
94
 
95
+ end; end
96
+
97
+ module WSDL; module RAA
98
+
97
99
  class RAABaseServicePortTypeApp < ::SOAP::RPC::StandaloneServer
98
100
  def initialize(*arg)
99
101
  super(*arg)
100
- servant = RAABaseServicePortType.new
101
- RAABaseServicePortType::Methods.each do |definitions|
102
+ servant = WSDL::RAA::RAABaseServicePortTypeServer.new
103
+ WSDL::RAA::RAABaseServicePortType::Methods.each do |definitions|
102
104
  opt = definitions.last
103
105
  if opt[:request_style] == :document
104
106
  @router.add_document_operation(servant, *definitions)
@@ -106,13 +108,16 @@ class RAABaseServicePortTypeApp < ::SOAP::RPC::StandaloneServer
106
108
  @router.add_rpc_operation(servant, *definitions)
107
109
  end
108
110
  end
109
- self.mapping_registry = RAABaseServicePortType::MappingRegistry
111
+ self.mapping_registry = RAAMappingRegistry::EncodedRegistry
112
+ self.literal_mapping_registry = RAAMappingRegistry::LiteralRegistry
110
113
  end
111
114
  end
112
115
 
116
+ end; end
117
+
113
118
  if $0 == __FILE__
114
119
  # Change listen port.
115
- server = RAABaseServicePortTypeApp.new('app', nil, '0.0.0.0', 10080)
120
+ server = WSDL::RAA::RAABaseServicePortTypeApp.new('app', nil, '0.0.0.0', 10080)
116
121
  trap(:INT) do
117
122
  server.shutdown
118
123
  end
@@ -0,0 +1,100 @@
1
+ require 'xsd/qname'
2
+
3
+ module WSDL; module RAA
4
+
5
+
6
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}Category
7
+ # major - SOAP::SOAPString
8
+ # minor - SOAP::SOAPString
9
+ class Category
10
+ attr_accessor :major
11
+ attr_accessor :minor
12
+
13
+ def initialize(major = nil, minor = nil)
14
+ @major = major
15
+ @minor = minor
16
+ end
17
+ end
18
+
19
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}Product
20
+ # id - SOAP::SOAPInt
21
+ # name - SOAP::SOAPString
22
+ # short_description - SOAP::SOAPString
23
+ # version - SOAP::SOAPString
24
+ # status - SOAP::SOAPString
25
+ # homepage - SOAP::SOAPAnyURI
26
+ # download - SOAP::SOAPAnyURI
27
+ # license - SOAP::SOAPString
28
+ # description - SOAP::SOAPString
29
+ class Product
30
+ attr_accessor :id
31
+ attr_accessor :name
32
+ attr_accessor :short_description
33
+ attr_accessor :version
34
+ attr_accessor :status
35
+ attr_accessor :homepage
36
+ attr_accessor :download
37
+ attr_accessor :license
38
+ attr_accessor :description
39
+
40
+ def initialize(id = nil, name = nil, short_description = nil, version = nil, status = nil, homepage = nil, download = nil, license = nil, description = nil)
41
+ @id = id
42
+ @name = name
43
+ @short_description = short_description
44
+ @version = version
45
+ @status = status
46
+ @homepage = homepage
47
+ @download = download
48
+ @license = license
49
+ @description = description
50
+ end
51
+ end
52
+
53
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}Owner
54
+ # id - SOAP::SOAPInt
55
+ # email - SOAP::SOAPAnyURI
56
+ # name - SOAP::SOAPString
57
+ class Owner
58
+ attr_accessor :id
59
+ attr_accessor :email
60
+ attr_accessor :name
61
+
62
+ def initialize(id = nil, email = nil, name = nil)
63
+ @id = id
64
+ @email = email
65
+ @name = name
66
+ end
67
+ end
68
+
69
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}Info
70
+ # category - WSDL::RAA::Category
71
+ # product - WSDL::RAA::Product
72
+ # owner - WSDL::RAA::Owner
73
+ # created - SOAP::SOAPDateTime
74
+ # updated - SOAP::SOAPDateTime
75
+ class Info
76
+ attr_accessor :category
77
+ attr_accessor :product
78
+ attr_accessor :owner
79
+ attr_accessor :created
80
+ attr_accessor :updated
81
+
82
+ def initialize(category = nil, product = nil, owner = nil, created = nil, updated = nil)
83
+ @category = category
84
+ @product = product
85
+ @owner = owner
86
+ @created = created
87
+ @updated = updated
88
+ end
89
+ end
90
+
91
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}InfoArray
92
+ class InfoArray < ::Array
93
+ end
94
+
95
+ # {http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.2/}StringArray
96
+ class StringArray < ::Array
97
+ end
98
+
99
+
100
+ end; end