soap4r-sgonyea 1.5.9

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 (427) hide show
  1. data/bin/wsdl2ruby.rb +139 -0
  2. data/bin/xsd2ruby.rb +91 -0
  3. data/lib/soap/attachment.rb +109 -0
  4. data/lib/soap/attrproxy.rb +35 -0
  5. data/lib/soap/baseData.rb +1095 -0
  6. data/lib/soap/element.rb +278 -0
  7. data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
  8. data/lib/soap/encodingstyle/handler.rb +121 -0
  9. data/lib/soap/encodingstyle/literalHandler.rb +196 -0
  10. data/lib/soap/encodingstyle/soapHandler.rb +560 -0
  11. data/lib/soap/filter.rb +14 -0
  12. data/lib/soap/filter/filterchain.rb +52 -0
  13. data/lib/soap/filter/handler.rb +32 -0
  14. data/lib/soap/filter/streamhandler.rb +30 -0
  15. data/lib/soap/generator.rb +299 -0
  16. data/lib/soap/header/handler.rb +62 -0
  17. data/lib/soap/header/handlerset.rb +71 -0
  18. data/lib/soap/header/mappinghandler.rb +48 -0
  19. data/lib/soap/header/simplehandler.rb +45 -0
  20. data/lib/soap/httpconfigloader.rb +140 -0
  21. data/lib/soap/mapping.rb +13 -0
  22. data/lib/soap/mapping/encodedregistry.rb +539 -0
  23. data/lib/soap/mapping/factory.rb +389 -0
  24. data/lib/soap/mapping/literalregistry.rb +392 -0
  25. data/lib/soap/mapping/mapping.rb +577 -0
  26. data/lib/soap/mapping/registry.rb +296 -0
  27. data/lib/soap/mapping/rubytypeFactory.rb +446 -0
  28. data/lib/soap/mapping/schemadefinition.rb +171 -0
  29. data/lib/soap/mapping/typeMap.rb +107 -0
  30. data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
  31. data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
  32. data/lib/soap/marshal.rb +60 -0
  33. data/lib/soap/mimemessage.rb +243 -0
  34. data/lib/soap/nestedexception.rb +43 -0
  35. data/lib/soap/netHttpClient.rb +242 -0
  36. data/lib/soap/ns.rb +39 -0
  37. data/lib/soap/parser.rb +253 -0
  38. data/lib/soap/processor.rb +67 -0
  39. data/lib/soap/property.rb +340 -0
  40. data/lib/soap/proxy.rb +15 -0
  41. data/lib/soap/rpc/cgistub.rb +248 -0
  42. data/lib/soap/rpc/driver.rb +222 -0
  43. data/lib/soap/rpc/element.rb +375 -0
  44. data/lib/soap/rpc/httpserver.rb +143 -0
  45. data/lib/soap/rpc/methodDef.rb +69 -0
  46. data/lib/soap/rpc/proxy.rb +573 -0
  47. data/lib/soap/rpc/router.rb +663 -0
  48. data/lib/soap/rpc/rpc.rb +26 -0
  49. data/lib/soap/rpc/soaplet.rb +201 -0
  50. data/lib/soap/rpc/standaloneServer.rb +44 -0
  51. data/lib/soap/soap.rb +154 -0
  52. data/lib/soap/streamHandler.rb +302 -0
  53. data/lib/soap/version.rb +9 -0
  54. data/lib/soap/wsdlDriver.rb +165 -0
  55. data/lib/wsdl/binding.rb +66 -0
  56. data/lib/wsdl/data.rb +65 -0
  57. data/lib/wsdl/definitions.rb +237 -0
  58. data/lib/wsdl/documentation.rb +33 -0
  59. data/lib/wsdl/import.rb +81 -0
  60. data/lib/wsdl/importer.rb +39 -0
  61. data/lib/wsdl/info.rb +51 -0
  62. data/lib/wsdl/message.rb +55 -0
  63. data/lib/wsdl/operation.rb +152 -0
  64. data/lib/wsdl/operationBinding.rb +241 -0
  65. data/lib/wsdl/param.rb +94 -0
  66. data/lib/wsdl/parser.rb +165 -0
  67. data/lib/wsdl/part.rb +53 -0
  68. data/lib/wsdl/port.rb +67 -0
  69. data/lib/wsdl/portType.rb +76 -0
  70. data/lib/wsdl/service.rb +62 -0
  71. data/lib/wsdl/soap/address.rb +41 -0
  72. data/lib/wsdl/soap/binding.rb +50 -0
  73. data/lib/wsdl/soap/body.rb +59 -0
  74. data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
  75. data/lib/wsdl/soap/classDefCreator.rb +434 -0
  76. data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
  77. data/lib/wsdl/soap/classNameCreator.rb +55 -0
  78. data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
  79. data/lib/wsdl/soap/complexType.rb +174 -0
  80. data/lib/wsdl/soap/data.rb +43 -0
  81. data/lib/wsdl/soap/definitions.rb +201 -0
  82. data/lib/wsdl/soap/driverCreator.rb +121 -0
  83. data/lib/wsdl/soap/element.rb +34 -0
  84. data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
  85. data/lib/wsdl/soap/fault.rb +57 -0
  86. data/lib/wsdl/soap/header.rb +87 -0
  87. data/lib/wsdl/soap/headerfault.rb +57 -0
  88. data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
  89. data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
  90. data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
  91. data/lib/wsdl/soap/methodDefCreator.rb +200 -0
  92. data/lib/wsdl/soap/operation.rb +113 -0
  93. data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
  94. data/lib/wsdl/soap/servletStubCreator.rb +105 -0
  95. data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
  96. data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
  97. data/lib/wsdl/types.rb +45 -0
  98. data/lib/wsdl/wsdl.rb +25 -0
  99. data/lib/wsdl/xmlSchema/all.rb +25 -0
  100. data/lib/wsdl/xmlSchema/annotation.rb +35 -0
  101. data/lib/wsdl/xmlSchema/any.rb +62 -0
  102. data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
  103. data/lib/wsdl/xmlSchema/attribute.rb +105 -0
  104. data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
  105. data/lib/wsdl/xmlSchema/choice.rb +59 -0
  106. data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
  107. data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
  108. data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
  109. data/lib/wsdl/xmlSchema/complexType.rb +194 -0
  110. data/lib/wsdl/xmlSchema/content.rb +96 -0
  111. data/lib/wsdl/xmlSchema/data.rb +117 -0
  112. data/lib/wsdl/xmlSchema/element.rb +154 -0
  113. data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
  114. data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
  115. data/lib/wsdl/xmlSchema/group.rb +101 -0
  116. data/lib/wsdl/xmlSchema/import.rb +54 -0
  117. data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
  118. data/lib/wsdl/xmlSchema/importer.rb +103 -0
  119. data/lib/wsdl/xmlSchema/include.rb +49 -0
  120. data/lib/wsdl/xmlSchema/length.rb +38 -0
  121. data/lib/wsdl/xmlSchema/list.rb +49 -0
  122. data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
  123. data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
  124. data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
  125. data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
  126. data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
  127. data/lib/wsdl/xmlSchema/minlength.rb +38 -0
  128. data/lib/wsdl/xmlSchema/parser.rb +168 -0
  129. data/lib/wsdl/xmlSchema/pattern.rb +37 -0
  130. data/lib/wsdl/xmlSchema/ref.rb +34 -0
  131. data/lib/wsdl/xmlSchema/schema.rb +179 -0
  132. data/lib/wsdl/xmlSchema/sequence.rb +55 -0
  133. data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
  134. data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
  135. data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
  136. data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
  137. data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
  138. data/lib/wsdl/xmlSchema/union.rb +36 -0
  139. data/lib/wsdl/xmlSchema/unique.rb +35 -0
  140. data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
  141. data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
  142. data/lib/xsd/charset.rb +190 -0
  143. data/lib/xsd/codegen.rb +13 -0
  144. data/lib/xsd/codegen/classdef.rb +209 -0
  145. data/lib/xsd/codegen/commentdef.rb +35 -0
  146. data/lib/xsd/codegen/gensupport.rb +277 -0
  147. data/lib/xsd/codegen/methoddef.rb +71 -0
  148. data/lib/xsd/codegen/moduledef.rb +209 -0
  149. data/lib/xsd/datatypes.rb +1466 -0
  150. data/lib/xsd/datatypes1999.rb +21 -0
  151. data/lib/xsd/iconvcharset.rb +34 -0
  152. data/lib/xsd/mapping.rb +69 -0
  153. data/lib/xsd/namedelements.rb +133 -0
  154. data/lib/xsd/ns.rb +183 -0
  155. data/lib/xsd/qname.rb +80 -0
  156. data/lib/xsd/xmlparser.rb +77 -0
  157. data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
  158. data/lib/xsd/xmlparser/parser.rb +101 -0
  159. data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
  160. data/lib/xsd/xmlparser/xmlparser.rb +51 -0
  161. data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
  162. data/test/16runner.rb +69 -0
  163. data/test/helper.rb +7 -0
  164. data/test/interopR2/README.txt +2 -0
  165. data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
  166. data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
  167. data/test/interopR2/base.rb +289 -0
  168. data/test/interopR2/client.NetRemoting.rb +18 -0
  169. data/test/interopR2/client.rb +1235 -0
  170. data/test/interopR2/client4S4C.rb +16 -0
  171. data/test/interopR2/client4S4C2.rb +15 -0
  172. data/test/interopR2/clientASP.NET.rb +18 -0
  173. data/test/interopR2/clientApacheAxis.rb +17 -0
  174. data/test/interopR2/clientApacheSOAP.rb +18 -0
  175. data/test/interopR2/clientBEAWebLogic.rb +18 -0
  176. data/test/interopR2/clientBase.rb +1968 -0
  177. data/test/interopR2/clientCapeConnect.rb +19 -0
  178. data/test/interopR2/clientDelphi.rb +20 -0
  179. data/test/interopR2/clientEasySoap.rb +15 -0
  180. data/test/interopR2/clientFrontier.rb +26 -0
  181. data/test/interopR2/clientGLUE.rb +33 -0
  182. data/test/interopR2/clientHP.rb +14 -0
  183. data/test/interopR2/clientJAX-RPC.rb +20 -0
  184. data/test/interopR2/clientJSOAP.rb +15 -0
  185. data/test/interopR2/clientKafkaXSLT.rb +16 -0
  186. data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
  187. data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
  188. data/test/interopR2/clientNuSOAP.rb +20 -0
  189. data/test/interopR2/clientNuWave.rb +16 -0
  190. data/test/interopR2/clientOpenLink.rb +16 -0
  191. data/test/interopR2/clientOracle.rb +16 -0
  192. data/test/interopR2/clientPEAR.rb +19 -0
  193. data/test/interopR2/clientPhalanx.rb +19 -0
  194. data/test/interopR2/clientSIMACE.rb +19 -0
  195. data/test/interopR2/clientSOAP4R.rb +19 -0
  196. data/test/interopR2/clientSOAP__Lite.rb +15 -0
  197. data/test/interopR2/clientSQLData.rb +19 -0
  198. data/test/interopR2/clientSilverStream.rb +18 -0
  199. data/test/interopR2/clientSpray2001.rb +18 -0
  200. data/test/interopR2/clientSun.rb +20 -0
  201. data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
  202. data/test/interopR2/clientWASP.rb +20 -0
  203. data/test/interopR2/clientWASPC.rb +19 -0
  204. data/test/interopR2/clientWebMethods.rb +16 -0
  205. data/test/interopR2/clientWhiteMesa.rb +29 -0
  206. data/test/interopR2/clientWingfoot.rb +16 -0
  207. data/test/interopR2/clientXMLBus.rb +20 -0
  208. data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
  209. data/test/interopR2/clientXSOAP.rb +15 -0
  210. data/test/interopR2/clientZSI.rb +20 -0
  211. data/test/interopR2/clienteSOAP.rb +19 -0
  212. data/test/interopR2/clientgSOAP.rb +19 -0
  213. data/test/interopR2/clientkSOAP.rb +18 -0
  214. data/test/interopR2/iSimonReg.rb +113 -0
  215. data/test/interopR2/interopResultBase.rb +115 -0
  216. data/test/interopR2/interopService.rb +248 -0
  217. data/test/interopR2/rwikiInteropService.rb +106 -0
  218. data/test/interopR2/server.cgi +271 -0
  219. data/test/interopR2/server.rb +276 -0
  220. data/test/interopR2/simonReg.rb +124 -0
  221. data/test/interopR2/test.sh +49 -0
  222. data/test/interopR4/client.rb +113 -0
  223. data/test/runner.rb +8 -0
  224. data/test/sm11/classDef.rb +157 -0
  225. data/test/sm11/client.rb +543 -0
  226. data/test/sm11/driver.rb +184 -0
  227. data/test/sm11/servant.rb +1068 -0
  228. data/test/sm11/server.rb +26 -0
  229. data/test/soap/asp.net/hello.wsdl +96 -0
  230. data/test/soap/asp.net/test_aspdotnet.rb +124 -0
  231. data/test/soap/auth/htdigest +2 -0
  232. data/test/soap/auth/htpasswd +2 -0
  233. data/test/soap/auth/test_basic.rb +118 -0
  234. data/test/soap/auth/test_digest.rb +119 -0
  235. data/test/soap/calc/calc.rb +18 -0
  236. data/test/soap/calc/calc2.rb +30 -0
  237. data/test/soap/calc/server.cgi +16 -0
  238. data/test/soap/calc/server.rb +18 -0
  239. data/test/soap/calc/server2.rb +21 -0
  240. data/test/soap/calc/test_calc.rb +53 -0
  241. data/test/soap/calc/test_calc2.rb +57 -0
  242. data/test/soap/calc/test_calc_cgi.rb +72 -0
  243. data/test/soap/case/test_mapping.rb +58 -0
  244. data/test/soap/fault/test_customfault.rb +61 -0
  245. data/test/soap/fault/test_fault.rb +47 -0
  246. data/test/soap/fault/test_soaparray.rb +36 -0
  247. data/test/soap/filter/test_filter.rb +147 -0
  248. data/test/soap/header/server.cgi +121 -0
  249. data/test/soap/header/test_authheader.rb +241 -0
  250. data/test/soap/header/test_authheader_cgi.rb +122 -0
  251. data/test/soap/header/test_simplehandler.rb +117 -0
  252. data/test/soap/helloworld/hw_s.rb +17 -0
  253. data/test/soap/helloworld/test_helloworld.rb +45 -0
  254. data/test/soap/htpasswd +2 -0
  255. data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
  256. data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
  257. data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
  258. data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
  259. data/test/soap/marshal/marshaltestlib.rb +498 -0
  260. data/test/soap/marshal/test_digraph.rb +57 -0
  261. data/test/soap/marshal/test_marshal.rb +28 -0
  262. data/test/soap/marshal/test_struct.rb +48 -0
  263. data/test/soap/ssl/README +1 -0
  264. data/test/soap/ssl/ca.cert +23 -0
  265. data/test/soap/ssl/client.cert +19 -0
  266. data/test/soap/ssl/client.key +15 -0
  267. data/test/soap/ssl/server.cert +19 -0
  268. data/test/soap/ssl/server.key +15 -0
  269. data/test/soap/ssl/sslsvr.rb +59 -0
  270. data/test/soap/ssl/subca.cert +21 -0
  271. data/test/soap/ssl/test_ssl.rb +236 -0
  272. data/test/soap/struct/test_struct.rb +71 -0
  273. data/test/soap/styleuse/client.rb +21 -0
  274. data/test/soap/styleuse/server.rb +87 -0
  275. data/test/soap/swa/test_file.rb +76 -0
  276. data/test/soap/test_basetype.rb +1091 -0
  277. data/test/soap/test_cookie.rb +113 -0
  278. data/test/soap/test_custom_ns.rb +106 -0
  279. data/test/soap/test_custommap.rb +111 -0
  280. data/test/soap/test_empty.rb +106 -0
  281. data/test/soap/test_envelopenamespace.rb +86 -0
  282. data/test/soap/test_extraattr.rb +55 -0
  283. data/test/soap/test_generator.rb +32 -0
  284. data/test/soap/test_httpconfigloader.rb +72 -0
  285. data/test/soap/test_mapping.rb +132 -0
  286. data/test/soap/test_nestedexception.rb +71 -0
  287. data/test/soap/test_nil.rb +71 -0
  288. data/test/soap/test_no_indent.rb +89 -0
  289. data/test/soap/test_property.rb +429 -0
  290. data/test/soap/test_response_as_xml.rb +118 -0
  291. data/test/soap/test_soapelement.rb +139 -0
  292. data/test/soap/test_streamhandler.rb +271 -0
  293. data/test/soap/test_styleuse.rb +327 -0
  294. data/test/soap/wsdlDriver/README.txt +2 -0
  295. data/test/soap/wsdlDriver/calc.wsdl +126 -0
  296. data/test/soap/wsdlDriver/document.wsdl +54 -0
  297. data/test/soap/wsdlDriver/echo_version.rb +30 -0
  298. data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
  299. data/test/soap/wsdlDriver/test_calc.rb +72 -0
  300. data/test/soap/wsdlDriver/test_document.rb +72 -0
  301. data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
  302. data/test/testutil.rb +55 -0
  303. data/test/wsdl/abstract/abstract.wsdl +176 -0
  304. data/test/wsdl/abstract/test_abstract.rb +160 -0
  305. data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
  306. data/test/wsdl/anonymous/expectedDriver.rb +60 -0
  307. data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
  308. data/test/wsdl/anonymous/lp.wsdl +147 -0
  309. data/test/wsdl/anonymous/test_anonymous.rb +131 -0
  310. data/test/wsdl/any/any.wsdl +114 -0
  311. data/test/wsdl/any/expectedDriver.rb +69 -0
  312. data/test/wsdl/any/expectedEcho.rb +58 -0
  313. data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
  314. data/test/wsdl/any/expectedService.rb +70 -0
  315. data/test/wsdl/any/test_any.rb +194 -0
  316. data/test/wsdl/axisArray/axisArray.wsdl +87 -0
  317. data/test/wsdl/axisArray/test_axisarray.rb +125 -0
  318. data/test/wsdl/choice/choice.wsdl +167 -0
  319. data/test/wsdl/choice/test_choice.rb +311 -0
  320. data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
  321. data/test/wsdl/complexcontent/test_echo.rb +91 -0
  322. data/test/wsdl/datetime/DatetimeService.rb +45 -0
  323. data/test/wsdl/datetime/datetime.rb +0 -0
  324. data/test/wsdl/datetime/datetime.wsdl +45 -0
  325. data/test/wsdl/datetime/datetimeServant.rb +23 -0
  326. data/test/wsdl/datetime/test_datetime.rb +88 -0
  327. data/test/wsdl/document/array/double.wsdl +161 -0
  328. data/test/wsdl/document/array/test_array.rb +202 -0
  329. data/test/wsdl/document/document.wsdl +76 -0
  330. data/test/wsdl/document/number.wsdl +54 -0
  331. data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
  332. data/test/wsdl/document/test_nosoapaction.rb +103 -0
  333. data/test/wsdl/document/test_number.rb +93 -0
  334. data/test/wsdl/document/test_rpc.rb +356 -0
  335. data/test/wsdl/emptycomplextype.wsdl +31 -0
  336. data/test/wsdl/fault/fault.wsdl +79 -0
  337. data/test/wsdl/fault/multifault.wsdl +96 -0
  338. data/test/wsdl/fault/test_fault.rb +120 -0
  339. data/test/wsdl/fault/test_multifault.rb +135 -0
  340. data/test/wsdl/group/expectedClassdef.rb +59 -0
  341. data/test/wsdl/group/expectedDriver.rb +52 -0
  342. data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
  343. data/test/wsdl/group/group.wsdl +88 -0
  344. data/test/wsdl/group/test_rpc.rb +146 -0
  345. data/test/wsdl/list/list.wsdl +93 -0
  346. data/test/wsdl/list/test_list.rb +125 -0
  347. data/test/wsdl/map/map.wsdl +92 -0
  348. data/test/wsdl/map/map.xml +43 -0
  349. data/test/wsdl/map/test_map.rb +100 -0
  350. data/test/wsdl/marshal/person.wsdl +21 -0
  351. data/test/wsdl/marshal/person_org.rb +24 -0
  352. data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
  353. data/test/wsdl/multiplefault.wsdl +75 -0
  354. data/test/wsdl/oneway/oneway.wsdl +36 -0
  355. data/test/wsdl/oneway/test_oneway.rb +109 -0
  356. data/test/wsdl/overload/expectedClient.rb +38 -0
  357. data/test/wsdl/overload/expectedDriver.rb +62 -0
  358. data/test/wsdl/overload/expectedServant.rb +36 -0
  359. data/test/wsdl/overload/overload.wsdl +70 -0
  360. data/test/wsdl/overload/test_overload.rb +132 -0
  361. data/test/wsdl/qualified/lp.wsdl +47 -0
  362. data/test/wsdl/qualified/lp.xsd +26 -0
  363. data/test/wsdl/qualified/np.wsdl +51 -0
  364. data/test/wsdl/qualified/test_qualified.rb +138 -0
  365. data/test/wsdl/qualified/test_unqualified.rb +139 -0
  366. data/test/wsdl/raa/RAAService.rb +126 -0
  367. data/test/wsdl/raa/README.txt +8 -0
  368. data/test/wsdl/raa/expectedClassDef.rb +101 -0
  369. data/test/wsdl/raa/expectedDriver.rb +97 -0
  370. data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
  371. data/test/wsdl/raa/raa.wsdl +264 -0
  372. data/test/wsdl/raa/test_raa.rb +127 -0
  373. data/test/wsdl/ref/expectedDriver.rb +52 -0
  374. data/test/wsdl/ref/expectedProduct.rb +244 -0
  375. data/test/wsdl/ref/product.wsdl +147 -0
  376. data/test/wsdl/ref/test_ref.rb +269 -0
  377. data/test/wsdl/rpc/rpc.wsdl +109 -0
  378. data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
  379. data/test/wsdl/rpc/test_rpc.rb +177 -0
  380. data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
  381. data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
  382. data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
  383. data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
  384. data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
  385. data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
  386. data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
  387. data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
  388. data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
  389. data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
  390. data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
  391. data/test/wsdl/simpletype/simpletype.wsdl +114 -0
  392. data/test/wsdl/simpletype/test_simpletype.rb +93 -0
  393. data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
  394. data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
  395. data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
  396. data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
  397. data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
  398. data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
  399. data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
  400. data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
  401. data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
  402. data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
  403. data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
  404. data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
  405. data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
  406. data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
  407. data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
  408. data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
  409. data/test/wsdl/soaptype/soaptype.wsdl +61 -0
  410. data/test/wsdl/soaptype/test_soaptype.rb +179 -0
  411. data/test/wsdl/test_emptycomplextype.rb +22 -0
  412. data/test/wsdl/test_fault.rb +51 -0
  413. data/test/wsdl/test_multiplefault.rb +42 -0
  414. data/test/xsd/codegen/test_classdef.rb +245 -0
  415. data/test/xsd/noencoding.xml +4 -0
  416. data/test/xsd/test_noencoding.rb +33 -0
  417. data/test/xsd/test_ns.rb +42 -0
  418. data/test/xsd/test_xmlschemaparser.rb +23 -0
  419. data/test/xsd/test_xsd.rb +1639 -0
  420. data/test/xsd/xmllang.xml +43 -0
  421. data/test/xsd/xmlschema.xml +12 -0
  422. data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
  423. data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
  424. data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
  425. data/test/xsd/xsd2ruby/section.xsd +49 -0
  426. data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
  427. metadata +485 -0
@@ -0,0 +1,67 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - marshal/unmarshal interface.
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'xsd/datatypes'
11
+ require 'soap/soap'
12
+ require 'soap/element'
13
+ require 'soap/parser'
14
+ require 'soap/generator'
15
+ require 'soap/encodingstyle/soapHandler'
16
+ require 'soap/encodingstyle/literalHandler'
17
+ require 'soap/encodingstyle/aspDotNetHandler'
18
+
19
+
20
+ module SOAP
21
+
22
+
23
+ module Processor
24
+ @@default_parser_option = {}
25
+
26
+ class << self
27
+ public
28
+
29
+ def marshal(env, opt = {}, io = nil)
30
+ generator = create_generator(opt)
31
+ marshalled_str = generator.generate(env, io)
32
+ unless env.external_content.empty?
33
+ opt[:external_content] = env.external_content
34
+ end
35
+ marshalled_str
36
+ end
37
+
38
+ def unmarshal(stream, opt = {})
39
+ parser = create_parser(opt)
40
+ parser.parse(stream)
41
+ end
42
+
43
+ def default_parser_option=(rhs)
44
+ @@default_parser_option = rhs
45
+ end
46
+
47
+ def default_parser_option
48
+ @@default_parser_option
49
+ end
50
+
51
+ private
52
+
53
+ def create_generator(opt)
54
+ Generator.new(opt)
55
+ end
56
+
57
+ def create_parser(opt)
58
+ if opt.empty?
59
+ opt = @@default_parser_option
60
+ end
61
+ ::SOAP::Parser.new(opt)
62
+ end
63
+ end
64
+ end
65
+
66
+
67
+ end
@@ -0,0 +1,340 @@
1
+ # encoding: ASCII-8BIT
2
+ # soap/property.rb: SOAP4R - Property implementation.
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ module SOAP
11
+
12
+
13
+ # Property stream format:
14
+ #
15
+ # line separator is \r?\n. 1 line per a property.
16
+ # line which begins with '#' is a comment line. empty line is ignored, too.
17
+ # key/value separator is ':' or '='.
18
+ # '\' as escape character. but line separator cannot be escaped.
19
+ # \s at the head/tail of key/value are trimmed.
20
+ #
21
+ # '[' + key + ']' indicates property section. for example,
22
+ #
23
+ # [aaa.bbb]
24
+ # ccc = ddd
25
+ # eee.fff = ggg
26
+ # []
27
+ # aaa.hhh = iii
28
+ #
29
+ # is the same as;
30
+ #
31
+ # aaa.bbb.ccc = ddd
32
+ # aaa.bbb.eee.fff = ggg
33
+ # aaa.hhh = iii
34
+ #
35
+ class Property
36
+ FrozenError = (RUBY_VERSION >= "1.9.0") ? RuntimeError : TypeError
37
+
38
+ include Enumerable
39
+
40
+ module Util
41
+ def const_from_name(fqname)
42
+ fqname.split("::").inject(Kernel) { |klass, name| klass.const_get(name) }
43
+ end
44
+ module_function :const_from_name
45
+
46
+ def require_from_name(fqname)
47
+ require File.join(fqname.split("::").collect { |ele| ele.downcase })
48
+ end
49
+ module_function :require_from_name
50
+ end
51
+
52
+ def self.load(stream)
53
+ new.load(stream)
54
+ end
55
+
56
+ def self.loadproperty(propname)
57
+ new.loadproperty(propname)
58
+ end
59
+
60
+ def initialize
61
+ @store = Hash.new
62
+ @hook = Hash.new
63
+ @self_hook = Array.new
64
+ @locked = false
65
+ end
66
+
67
+ KEY_REGSRC = '([^=:\\\\]*(?:\\\\.[^=:\\\\]*)*)'
68
+ DEF_REGSRC = '\\s*' + KEY_REGSRC + '\\s*[=:]\\s*(.*)'
69
+ #COMMENT_REGEXP = Regexp.new('^(?:#.*|)$', nil, 'u')
70
+ #CATDEF_REGEXP = Regexp.new("^\\[\\s*#{KEY_REGSRC}\\s*\\]$", nil, 'u')
71
+ #LINE_REGEXP = Regexp.new("^#{DEF_REGSRC}$", nil, 'u')
72
+
73
+ COMMENT_REGEXP = Regexp.new('^(?:#.*|)$') # RubyJedi: Attempt at 1.9 Compatibility // , nil, 'u')
74
+ CATDEF_REGEXP = Regexp.new("^\\[\\s*#{KEY_REGSRC}\\s*\\]$") # RubyJedi: Attempt at 1.9 Compatibility // , nil, 'u')
75
+ LINE_REGEXP = Regexp.new("^#{DEF_REGSRC}$") # RubyJedi: Attempt at 1.9 Compatibility // , nil, 'u')
76
+
77
+ def load(stream)
78
+ key_prefix = ""
79
+ stream = stream.lines if stream.respond_to?(:lines) # RubyJedi: compatible with Ruby 1.8.6 and above
80
+ stream.each_with_index do |line, lineno|
81
+ line.sub!(/\r?\n\z/u, '')
82
+ case line
83
+ when COMMENT_REGEXP
84
+ next
85
+ when CATDEF_REGEXP
86
+ key_prefix = $1.strip
87
+ when LINE_REGEXP
88
+ key, value = $1.strip, $2.strip
89
+ key = "#{key_prefix}.#{key}" unless key_prefix.empty?
90
+ key, value = loadstr(key), loadstr(value)
91
+ self[key] = value
92
+ else
93
+ raise TypeError.new(
94
+ "property format error at line #{lineno + 1}: `#{line}'")
95
+ end
96
+ end
97
+ self
98
+ end
99
+
100
+ # find property from $:.
101
+ def loadproperty(propname)
102
+ return loadpropertyfile(propname) if File.file?(propname)
103
+ $:.each do |path|
104
+ if File.file?(file = File.join(path, propname))
105
+ return loadpropertyfile(file)
106
+ end
107
+ end
108
+ nil
109
+ end
110
+
111
+ # name: a Symbol, String or an Array
112
+ def [](name)
113
+ referent(name_to_a(name))
114
+ end
115
+
116
+ # name: a Symbol, String or an Array
117
+ # value: an Object
118
+ def []=(name, value)
119
+ name_pair = name_to_a(name).freeze
120
+ hooks = assign(name_pair, value)
121
+ hooks.each do |hook|
122
+ hook.call(name_pair, value)
123
+ end
124
+ value
125
+ end
126
+
127
+ # value: an Object
128
+ # key is generated by property
129
+ def <<(value)
130
+ self[generate_new_key] = value
131
+ end
132
+
133
+ # name: a Symbol, String or an Array; nil means hook to the root
134
+ # cascade: true/false; for cascading hook of sub key
135
+ # hook: block which will be called with 2 args, name and value
136
+ def add_hook(name = nil, cascade = false, &hook)
137
+ if name == nil or name == true or name == false
138
+ cascade = name
139
+ assign_self_hook(cascade, &hook)
140
+ else
141
+ assign_hook(name_to_a(name), cascade, &hook)
142
+ end
143
+ end
144
+
145
+ def each
146
+ @store.each do |key, value|
147
+ yield(key, value)
148
+ end
149
+ end
150
+
151
+ def empty?
152
+ @store.empty?
153
+ end
154
+
155
+ def keys
156
+ @store.keys
157
+ end
158
+
159
+ def values
160
+ @store.values
161
+ end
162
+
163
+ def lock(cascade = false)
164
+ if cascade
165
+ each_key do |key|
166
+ key.lock(cascade)
167
+ end
168
+ end
169
+ @locked = true
170
+ self
171
+ end
172
+
173
+ def unlock(cascade = false)
174
+ @locked = false
175
+ if cascade
176
+ each_key do |key|
177
+ key.unlock(cascade)
178
+ end
179
+ end
180
+ self
181
+ end
182
+
183
+ def locked?
184
+ @locked
185
+ end
186
+
187
+ protected
188
+
189
+ def deref_key(key)
190
+ check_lock(key)
191
+ ref = @store[key] ||= self.class.new
192
+ unless propkey?(ref)
193
+ raise ArgumentError.new("key `#{key}' already defined as a value")
194
+ end
195
+ ref
196
+ end
197
+
198
+ def local_referent(key)
199
+ check_lock(key)
200
+ if propkey?(@store[key]) and @store[key].locked?
201
+ raise FrozenError.new("cannot split any key from locked property")
202
+ end
203
+ @store[key]
204
+ end
205
+
206
+ def local_assign(key, value)
207
+ check_lock(key)
208
+ if @locked
209
+ if propkey?(value)
210
+ raise FrozenError.new("cannot add any key to locked property")
211
+ elsif propkey?(@store[key])
212
+ raise FrozenError.new("cannot override any key in locked property")
213
+ end
214
+ end
215
+ @store[key] = value
216
+ end
217
+
218
+ def local_hook(key, direct)
219
+ hooks = []
220
+ (@self_hook + (@hook[key] || NO_HOOK)).each do |hook, cascade|
221
+ hooks << hook if direct or cascade
222
+ end
223
+ hooks
224
+ end
225
+
226
+ def local_assign_hook(key, cascade, &hook)
227
+ check_lock(key)
228
+ @store[key] ||= nil
229
+ (@hook[key] ||= []) << [hook, cascade]
230
+ end
231
+
232
+ private
233
+
234
+ NO_HOOK = [].freeze
235
+
236
+ def referent(ary)
237
+ ary[0..-2].inject(self) { |ref, name|
238
+ ref.deref_key(to_key(name))
239
+ }.local_referent(to_key(ary.last))
240
+ end
241
+
242
+ def assign(ary, value)
243
+ ref = self
244
+ hook = NO_HOOK
245
+ ary[0..-2].each do |name|
246
+ key = to_key(name)
247
+ hook += ref.local_hook(key, false)
248
+ ref = ref.deref_key(key)
249
+ end
250
+ last_key = to_key(ary.last)
251
+ ref.local_assign(last_key, value)
252
+ hook + ref.local_hook(last_key, true)
253
+ end
254
+
255
+ def assign_hook(ary, cascade, &hook)
256
+ ary[0..-2].inject(self) { |ref, name|
257
+ ref.deref_key(to_key(name))
258
+ }.local_assign_hook(to_key(ary.last), cascade, &hook)
259
+ end
260
+
261
+ def assign_self_hook(cascade, &hook)
262
+ check_lock(nil)
263
+ @self_hook << [hook, cascade]
264
+ end
265
+
266
+ def each_key
267
+ self.each do |key, value|
268
+ if propkey?(value)
269
+ yield(value)
270
+ end
271
+ end
272
+ end
273
+
274
+ def check_lock(key)
275
+ if @locked and (key.nil? or !@store.key?(key))
276
+ raise FrozenError.new("cannot add any key to locked property")
277
+ end
278
+ end
279
+
280
+ def propkey?(value)
281
+ value.is_a?(::SOAP::Property)
282
+ end
283
+
284
+ def name_to_a(name)
285
+ case name
286
+ when Symbol
287
+ [name]
288
+ when String
289
+ name.scan(/[^.\\]+(?:\\.[^.\\])*/u) # split with unescaped '.'
290
+ when Array
291
+ name
292
+ else
293
+ raise ArgumentError.new("Unknown name #{name}(#{name.class})")
294
+ end
295
+ end
296
+
297
+ def to_key(name)
298
+ name.to_s.downcase
299
+ end
300
+
301
+ def generate_new_key
302
+ if @store.empty?
303
+ "0"
304
+ else
305
+ (key_max + 1).to_s
306
+ end
307
+ end
308
+
309
+ def key_max
310
+ (@store.keys.max { |l, r| l.to_s.to_i <=> r.to_s.to_i }).to_s.to_i
311
+ end
312
+
313
+ def loadpropertyfile(file)
314
+ puts "find property at #{file}" if $DEBUG
315
+ File.open(file) do |f|
316
+ load(f)
317
+ end
318
+ end
319
+
320
+ def loadstr(str)
321
+ str.gsub(/\\./u) { |c| eval("\"#{c}\"") }
322
+ end
323
+ end
324
+
325
+
326
+ end
327
+
328
+
329
+ # for ruby/1.6.
330
+ #unless Enumerable.instance_methods.include?(:inject)
331
+ # module Enumerable
332
+ # def inject(init)
333
+ # result = init
334
+ # each do |item|
335
+ # result = yield(result, item)
336
+ # end
337
+ # result
338
+ # end
339
+ # end
340
+ #end
data/lib/soap/proxy.rb ADDED
@@ -0,0 +1,15 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - Proxy library.
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'soap/rpc/proxy'
11
+
12
+
13
+ module SOAP
14
+ SOAPProxy = RPC::Proxy
15
+ end
@@ -0,0 +1,248 @@
1
+ # encoding: ASCII-8BIT
2
+ # SOAP4R - CGI/mod_ruby stub library
3
+ # Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
4
+
5
+ # This program is copyrighted free software by NAKAMURA, Hiroshi. You can
6
+ # redistribute it and/or modify it under the same terms of Ruby's license;
7
+ # either the dual license version in 2003, or any later version.
8
+
9
+
10
+ require 'soap/streamHandler'
11
+ require 'webrick/httpresponse'
12
+ require 'webrick/httpstatus'
13
+ require 'logger'
14
+ require 'soap/rpc/soaplet'
15
+
16
+
17
+ module SOAP
18
+ module RPC
19
+
20
+
21
+ ###
22
+ # SYNOPSIS
23
+ # CGIStub.new
24
+ #
25
+ # DESCRIPTION
26
+ # To be written...
27
+ #
28
+ class CGIStub < Logger::Application
29
+ include SOAP
30
+ include WEBrick
31
+
32
+ class SOAPRequest
33
+ attr_reader :body
34
+
35
+ def [](var); end
36
+
37
+ def meta_vars; end
38
+
39
+ EMPTY_COOKIES = [].freeze
40
+ def cookies; EMPTY_COOKIES; end
41
+
42
+ def user; end
43
+ end
44
+
45
+ class SOAPStdinRequest < SOAPRequest
46
+ attr_reader :body
47
+
48
+ def initialize(stream)
49
+ size = ENV['CONTENT_LENGTH'].to_i || 0
50
+ @body = stream.read(size)
51
+ end
52
+
53
+ def [](var)
54
+ ENV[var.gsub(/-/, '_').upcase]
55
+ end
56
+
57
+ def meta_vars
58
+ {
59
+ 'HTTP_SOAPACTION' => ENV['HTTP_SOAPAction']
60
+ }
61
+ end
62
+
63
+ def cookies
64
+ if cookie = ENV['HTTP_Cookie'] || ENV['Cookie']
65
+ [WEBrick::Cookie.parse(cookie)]
66
+ else
67
+ EMPTY_COOKIES
68
+ end
69
+ end
70
+
71
+ def user
72
+ ENV['REMOTE_USER']
73
+ end
74
+ end
75
+
76
+ class SOAPFCGIRequest < SOAPRequest
77
+ attr_reader :body
78
+
79
+ def initialize(request)
80
+ @request = request
81
+ @body = @request.in.read
82
+ end
83
+
84
+ def [](var)
85
+ @request.env[var.gsub(/-/, '_').upcase]
86
+ end
87
+
88
+ def meta_vars
89
+ {
90
+ 'HTTP_SOAPACTION' => @request.env['HTTP_SOAPAction']
91
+ }
92
+ end
93
+
94
+ def cookies
95
+ if cookie = @request.env['HTTP_Cookie'] || @request.env['Cookie']
96
+ [WEBrick::Cookie.parse(cookie)]
97
+ else
98
+ EMPTY_COOKIES
99
+ end
100
+ end
101
+
102
+ def user
103
+ @request.env['REMOTE_USER']
104
+ end
105
+ end
106
+
107
+ def initialize(appname, default_namespace)
108
+ super(appname)
109
+ set_log(STDERR)
110
+ self.level = ERROR
111
+ @default_namespace = default_namespace
112
+ @remote_host = ENV['REMOTE_HOST'] || ENV['REMOTE_ADDR'] || 'unknown'
113
+ @router = ::SOAP::RPC::Router.new(self.class.name)
114
+ @soaplet = ::SOAP::RPC::SOAPlet.new(@router)
115
+ on_init
116
+ end
117
+
118
+ def on_init
119
+ # do extra initialization in a derived class if needed.
120
+ end
121
+
122
+ def mapping_registry
123
+ @router.mapping_registry
124
+ end
125
+
126
+ def mapping_registry=(mapping_registry)
127
+ @router.mapping_registry = mapping_registry
128
+ end
129
+
130
+ def literal_mapping_registry
131
+ @router.literal_mapping_registry
132
+ end
133
+
134
+ def literal_mapping_registry=(literal_mapping_registry)
135
+ @router.literal_mapping_registry = literal_mapping_registry
136
+ end
137
+
138
+ def generate_explicit_type
139
+ @router.generate_explicit_type
140
+ end
141
+
142
+ def generate_explicit_type=(generate_explicit_type)
143
+ @router.generate_explicit_type = generate_explicit_type
144
+ end
145
+
146
+ # servant entry interface
147
+
148
+ def add_rpc_servant(obj, namespace = @default_namespace)
149
+ @router.add_rpc_servant(obj, namespace)
150
+ end
151
+ alias add_servant add_rpc_servant
152
+
153
+ def add_headerhandler(obj)
154
+ @router.add_headerhandler(obj)
155
+ end
156
+ alias add_rpc_headerhandler add_headerhandler
157
+
158
+ def filterchain
159
+ @router.filterchain
160
+ end
161
+
162
+ # method entry interface
163
+
164
+ def add_rpc_method(obj, name, *param)
165
+ add_rpc_method_with_namespace_as(@default_namespace, obj, name, name, *param)
166
+ end
167
+ alias add_method add_rpc_method
168
+
169
+ def add_rpc_method_as(obj, name, name_as, *param)
170
+ add_rpc_method_with_namespace_as(@default_namespace, obj, name, name_as, *param)
171
+ end
172
+ alias add_method_as add_rpc_method_as
173
+
174
+ def add_rpc_method_with_namespace(namespace, obj, name, *param)
175
+ add_rpc_method_with_namespace_as(namespace, obj, name, name, *param)
176
+ end
177
+ alias add_method_with_namespace add_rpc_method_with_namespace
178
+
179
+ def add_rpc_method_with_namespace_as(namespace, obj, name, name_as, *param)
180
+ qname = XSD::QName.new(namespace, name_as)
181
+ soapaction = nil
182
+ param_def = SOAPMethod.derive_rpc_param_def(obj, name, *param)
183
+ @router.add_rpc_operation(obj, qname, soapaction, name, param_def)
184
+ end
185
+ alias add_method_with_namespace_as add_rpc_method_with_namespace_as
186
+
187
+ def add_rpc_operation(receiver, qname, soapaction, name, param_def, opt = {})
188
+ @router.add_rpc_operation(receiver, qname, soapaction, name, param_def, opt)
189
+ end
190
+
191
+ def add_document_operation(receiver, soapaction, name, param_def, opt = {})
192
+ @router.add_document_operation(receiver, soapaction, name, param_def, opt)
193
+ end
194
+
195
+ def set_fcgi_request(request)
196
+ @fcgi = request
197
+ end
198
+
199
+ private
200
+
201
+ HTTPVersion = WEBrick::HTTPVersion.new('1.0') # dummy; ignored
202
+
203
+ def run
204
+ res = WEBrick::HTTPResponse.new({:HTTPVersion => HTTPVersion})
205
+ begin
206
+ @log.info { "received a request from '#{ @remote_host }'" }
207
+ if @fcgi
208
+ req = SOAPFCGIRequest.new(@fcgi)
209
+ else
210
+ req = SOAPStdinRequest.new($stdin)
211
+ end
212
+ @soaplet.do_POST(req, res)
213
+ rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout => ex
214
+ res.set_error(ex)
215
+ rescue HTTPStatus::Error => ex
216
+ res.set_error(ex)
217
+ rescue HTTPStatus::Status => ex
218
+ res.status = ex.code
219
+ rescue StandardError, NameError => ex # for Ruby 1.6
220
+ res.set_error(ex, true)
221
+ ensure
222
+ if defined?(MOD_RUBY)
223
+ r = Apache.request
224
+ r.status = res.status
225
+ r.content_type = res.content_type
226
+ r.send_http_header
227
+ buf = res.body
228
+ else
229
+ buf = ''
230
+ res.send_response(buf)
231
+ buf.sub!(/^[^\r]+\r\n/, '') # Trim status line.
232
+ end
233
+ @log.debug { "SOAP CGI Response:\n#{ buf }" }
234
+ if @fcgi
235
+ @fcgi.out.print buf
236
+ @fcgi.finish
237
+ @fcgi = nil
238
+ else
239
+ print buf
240
+ end
241
+ end
242
+ 0
243
+ end
244
+ end
245
+
246
+
247
+ end
248
+ end