soap4r 1.5.7 → 1.5.8

Sign up to get free protection for your applications and to get access to all the features.
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