DefV-soap4r 1.5.8.2

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