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.
- data/bin/wsdl2ruby.rb +139 -0
- data/bin/xsd2ruby.rb +91 -0
- data/lib/soap/attachment.rb +109 -0
- data/lib/soap/attrproxy.rb +35 -0
- data/lib/soap/baseData.rb +1095 -0
- data/lib/soap/element.rb +278 -0
- data/lib/soap/encodingstyle/aspDotNetHandler.rb +208 -0
- data/lib/soap/encodingstyle/handler.rb +121 -0
- data/lib/soap/encodingstyle/literalHandler.rb +196 -0
- data/lib/soap/encodingstyle/soapHandler.rb +560 -0
- data/lib/soap/filter.rb +14 -0
- data/lib/soap/filter/filterchain.rb +52 -0
- data/lib/soap/filter/handler.rb +32 -0
- data/lib/soap/filter/streamhandler.rb +30 -0
- data/lib/soap/generator.rb +299 -0
- data/lib/soap/header/handler.rb +62 -0
- data/lib/soap/header/handlerset.rb +71 -0
- data/lib/soap/header/mappinghandler.rb +48 -0
- data/lib/soap/header/simplehandler.rb +45 -0
- data/lib/soap/httpconfigloader.rb +140 -0
- data/lib/soap/mapping.rb +13 -0
- data/lib/soap/mapping/encodedregistry.rb +539 -0
- data/lib/soap/mapping/factory.rb +389 -0
- data/lib/soap/mapping/literalregistry.rb +392 -0
- data/lib/soap/mapping/mapping.rb +577 -0
- data/lib/soap/mapping/registry.rb +296 -0
- data/lib/soap/mapping/rubytypeFactory.rb +446 -0
- data/lib/soap/mapping/schemadefinition.rb +171 -0
- data/lib/soap/mapping/typeMap.rb +107 -0
- data/lib/soap/mapping/wsdlencodedregistry.rb +212 -0
- data/lib/soap/mapping/wsdlliteralregistry.rb +249 -0
- data/lib/soap/marshal.rb +60 -0
- data/lib/soap/mimemessage.rb +243 -0
- data/lib/soap/nestedexception.rb +43 -0
- data/lib/soap/netHttpClient.rb +242 -0
- data/lib/soap/ns.rb +39 -0
- data/lib/soap/parser.rb +253 -0
- data/lib/soap/processor.rb +67 -0
- data/lib/soap/property.rb +340 -0
- data/lib/soap/proxy.rb +15 -0
- data/lib/soap/rpc/cgistub.rb +248 -0
- data/lib/soap/rpc/driver.rb +222 -0
- data/lib/soap/rpc/element.rb +375 -0
- data/lib/soap/rpc/httpserver.rb +143 -0
- data/lib/soap/rpc/methodDef.rb +69 -0
- data/lib/soap/rpc/proxy.rb +573 -0
- data/lib/soap/rpc/router.rb +663 -0
- data/lib/soap/rpc/rpc.rb +26 -0
- data/lib/soap/rpc/soaplet.rb +201 -0
- data/lib/soap/rpc/standaloneServer.rb +44 -0
- data/lib/soap/soap.rb +154 -0
- data/lib/soap/streamHandler.rb +302 -0
- data/lib/soap/version.rb +9 -0
- data/lib/soap/wsdlDriver.rb +165 -0
- data/lib/wsdl/binding.rb +66 -0
- data/lib/wsdl/data.rb +65 -0
- data/lib/wsdl/definitions.rb +237 -0
- data/lib/wsdl/documentation.rb +33 -0
- data/lib/wsdl/import.rb +81 -0
- data/lib/wsdl/importer.rb +39 -0
- data/lib/wsdl/info.rb +51 -0
- data/lib/wsdl/message.rb +55 -0
- data/lib/wsdl/operation.rb +152 -0
- data/lib/wsdl/operationBinding.rb +241 -0
- data/lib/wsdl/param.rb +94 -0
- data/lib/wsdl/parser.rb +165 -0
- data/lib/wsdl/part.rb +53 -0
- data/lib/wsdl/port.rb +67 -0
- data/lib/wsdl/portType.rb +76 -0
- data/lib/wsdl/service.rb +62 -0
- data/lib/wsdl/soap/address.rb +41 -0
- data/lib/wsdl/soap/binding.rb +50 -0
- data/lib/wsdl/soap/body.rb +59 -0
- data/lib/wsdl/soap/cgiStubCreator.rb +93 -0
- data/lib/wsdl/soap/classDefCreator.rb +434 -0
- data/lib/wsdl/soap/classDefCreatorSupport.rb +241 -0
- data/lib/wsdl/soap/classNameCreator.rb +55 -0
- data/lib/wsdl/soap/clientSkeltonCreator.rb +107 -0
- data/lib/wsdl/soap/complexType.rb +174 -0
- data/lib/wsdl/soap/data.rb +43 -0
- data/lib/wsdl/soap/definitions.rb +201 -0
- data/lib/wsdl/soap/driverCreator.rb +121 -0
- data/lib/wsdl/soap/element.rb +34 -0
- data/lib/wsdl/soap/encodedMappingRegistryCreator.rb +74 -0
- data/lib/wsdl/soap/fault.rb +57 -0
- data/lib/wsdl/soap/header.rb +87 -0
- data/lib/wsdl/soap/headerfault.rb +57 -0
- data/lib/wsdl/soap/literalMappingRegistryCreator.rb +116 -0
- data/lib/wsdl/soap/mappingRegistryCreator.rb +59 -0
- data/lib/wsdl/soap/mappingRegistryCreatorSupport.rb +377 -0
- data/lib/wsdl/soap/methodDefCreator.rb +200 -0
- data/lib/wsdl/soap/operation.rb +113 -0
- data/lib/wsdl/soap/servantSkeltonCreator.rb +92 -0
- data/lib/wsdl/soap/servletStubCreator.rb +105 -0
- data/lib/wsdl/soap/standaloneServerStubCreator.rb +101 -0
- data/lib/wsdl/soap/wsdl2ruby.rb +226 -0
- data/lib/wsdl/types.rb +45 -0
- data/lib/wsdl/wsdl.rb +25 -0
- data/lib/wsdl/xmlSchema/all.rb +25 -0
- data/lib/wsdl/xmlSchema/annotation.rb +35 -0
- data/lib/wsdl/xmlSchema/any.rb +62 -0
- data/lib/wsdl/xmlSchema/anyAttribute.rb +49 -0
- data/lib/wsdl/xmlSchema/attribute.rb +105 -0
- data/lib/wsdl/xmlSchema/attributeGroup.rb +69 -0
- data/lib/wsdl/xmlSchema/choice.rb +59 -0
- data/lib/wsdl/xmlSchema/complexContent.rb +98 -0
- data/lib/wsdl/xmlSchema/complexExtension.rb +120 -0
- data/lib/wsdl/xmlSchema/complexRestriction.rb +105 -0
- data/lib/wsdl/xmlSchema/complexType.rb +194 -0
- data/lib/wsdl/xmlSchema/content.rb +96 -0
- data/lib/wsdl/xmlSchema/data.rb +117 -0
- data/lib/wsdl/xmlSchema/element.rb +154 -0
- data/lib/wsdl/xmlSchema/enumeration.rb +37 -0
- data/lib/wsdl/xmlSchema/fractiondigits.rb +38 -0
- data/lib/wsdl/xmlSchema/group.rb +101 -0
- data/lib/wsdl/xmlSchema/import.rb +54 -0
- data/lib/wsdl/xmlSchema/importHandler.rb +46 -0
- data/lib/wsdl/xmlSchema/importer.rb +103 -0
- data/lib/wsdl/xmlSchema/include.rb +49 -0
- data/lib/wsdl/xmlSchema/length.rb +38 -0
- data/lib/wsdl/xmlSchema/list.rb +49 -0
- data/lib/wsdl/xmlSchema/maxexclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/maxinclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/maxlength.rb +38 -0
- data/lib/wsdl/xmlSchema/minexclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/mininclusive.rb +38 -0
- data/lib/wsdl/xmlSchema/minlength.rb +38 -0
- data/lib/wsdl/xmlSchema/parser.rb +168 -0
- data/lib/wsdl/xmlSchema/pattern.rb +37 -0
- data/lib/wsdl/xmlSchema/ref.rb +34 -0
- data/lib/wsdl/xmlSchema/schema.rb +179 -0
- data/lib/wsdl/xmlSchema/sequence.rb +55 -0
- data/lib/wsdl/xmlSchema/simpleContent.rb +70 -0
- data/lib/wsdl/xmlSchema/simpleExtension.rb +63 -0
- data/lib/wsdl/xmlSchema/simpleRestriction.rb +133 -0
- data/lib/wsdl/xmlSchema/simpleType.rb +88 -0
- data/lib/wsdl/xmlSchema/totaldigits.rb +38 -0
- data/lib/wsdl/xmlSchema/union.rb +36 -0
- data/lib/wsdl/xmlSchema/unique.rb +35 -0
- data/lib/wsdl/xmlSchema/whitespace.rb +38 -0
- data/lib/wsdl/xmlSchema/xsd2ruby.rb +176 -0
- data/lib/xsd/charset.rb +190 -0
- data/lib/xsd/codegen.rb +13 -0
- data/lib/xsd/codegen/classdef.rb +209 -0
- data/lib/xsd/codegen/commentdef.rb +35 -0
- data/lib/xsd/codegen/gensupport.rb +277 -0
- data/lib/xsd/codegen/methoddef.rb +71 -0
- data/lib/xsd/codegen/moduledef.rb +209 -0
- data/lib/xsd/datatypes.rb +1466 -0
- data/lib/xsd/datatypes1999.rb +21 -0
- data/lib/xsd/iconvcharset.rb +34 -0
- data/lib/xsd/mapping.rb +69 -0
- data/lib/xsd/namedelements.rb +133 -0
- data/lib/xsd/ns.rb +183 -0
- data/lib/xsd/qname.rb +80 -0
- data/lib/xsd/xmlparser.rb +77 -0
- data/lib/xsd/xmlparser/libxmlparser.rb +116 -0
- data/lib/xsd/xmlparser/parser.rb +101 -0
- data/lib/xsd/xmlparser/rexmlparser.rb +59 -0
- data/lib/xsd/xmlparser/xmlparser.rb +51 -0
- data/lib/xsd/xmlparser/xmlscanner.rb +150 -0
- data/test/16runner.rb +69 -0
- data/test/helper.rb +7 -0
- data/test/interopR2/README.txt +2 -0
- data/test/interopR2/SOAPBuildersInterop_R2.wsdl +461 -0
- data/test/interopR2/SOAPBuildersInterop_R2GrB.wsdl +19 -0
- data/test/interopR2/base.rb +289 -0
- data/test/interopR2/client.NetRemoting.rb +18 -0
- data/test/interopR2/client.rb +1235 -0
- data/test/interopR2/client4S4C.rb +16 -0
- data/test/interopR2/client4S4C2.rb +15 -0
- data/test/interopR2/clientASP.NET.rb +18 -0
- data/test/interopR2/clientApacheAxis.rb +17 -0
- data/test/interopR2/clientApacheSOAP.rb +18 -0
- data/test/interopR2/clientBEAWebLogic.rb +18 -0
- data/test/interopR2/clientBase.rb +1968 -0
- data/test/interopR2/clientCapeConnect.rb +19 -0
- data/test/interopR2/clientDelphi.rb +20 -0
- data/test/interopR2/clientEasySoap.rb +15 -0
- data/test/interopR2/clientFrontier.rb +26 -0
- data/test/interopR2/clientGLUE.rb +33 -0
- data/test/interopR2/clientHP.rb +14 -0
- data/test/interopR2/clientJAX-RPC.rb +20 -0
- data/test/interopR2/clientJSOAP.rb +15 -0
- data/test/interopR2/clientKafkaXSLT.rb +16 -0
- data/test/interopR2/clientMSSOAPToolkit2.0.rb +18 -0
- data/test/interopR2/clientMSSOAPToolkit3.0.rb +18 -0
- data/test/interopR2/clientNuSOAP.rb +20 -0
- data/test/interopR2/clientNuWave.rb +16 -0
- data/test/interopR2/clientOpenLink.rb +16 -0
- data/test/interopR2/clientOracle.rb +16 -0
- data/test/interopR2/clientPEAR.rb +19 -0
- data/test/interopR2/clientPhalanx.rb +19 -0
- data/test/interopR2/clientSIMACE.rb +19 -0
- data/test/interopR2/clientSOAP4R.rb +19 -0
- data/test/interopR2/clientSOAP__Lite.rb +15 -0
- data/test/interopR2/clientSQLData.rb +19 -0
- data/test/interopR2/clientSilverStream.rb +18 -0
- data/test/interopR2/clientSpray2001.rb +18 -0
- data/test/interopR2/clientSun.rb +20 -0
- data/test/interopR2/clientVWOpentalkSoap.rb +20 -0
- data/test/interopR2/clientWASP.rb +20 -0
- data/test/interopR2/clientWASPC.rb +19 -0
- data/test/interopR2/clientWebMethods.rb +16 -0
- data/test/interopR2/clientWhiteMesa.rb +29 -0
- data/test/interopR2/clientWingfoot.rb +16 -0
- data/test/interopR2/clientXMLBus.rb +20 -0
- data/test/interopR2/clientXMLRPC-EPI.rb +18 -0
- data/test/interopR2/clientXSOAP.rb +15 -0
- data/test/interopR2/clientZSI.rb +20 -0
- data/test/interopR2/clienteSOAP.rb +19 -0
- data/test/interopR2/clientgSOAP.rb +19 -0
- data/test/interopR2/clientkSOAP.rb +18 -0
- data/test/interopR2/iSimonReg.rb +113 -0
- data/test/interopR2/interopResultBase.rb +115 -0
- data/test/interopR2/interopService.rb +248 -0
- data/test/interopR2/rwikiInteropService.rb +106 -0
- data/test/interopR2/server.cgi +271 -0
- data/test/interopR2/server.rb +276 -0
- data/test/interopR2/simonReg.rb +124 -0
- data/test/interopR2/test.sh +49 -0
- data/test/interopR4/client.rb +113 -0
- data/test/runner.rb +8 -0
- data/test/sm11/classDef.rb +157 -0
- data/test/sm11/client.rb +543 -0
- data/test/sm11/driver.rb +184 -0
- data/test/sm11/servant.rb +1068 -0
- data/test/sm11/server.rb +26 -0
- data/test/soap/asp.net/hello.wsdl +96 -0
- data/test/soap/asp.net/test_aspdotnet.rb +124 -0
- data/test/soap/auth/htdigest +2 -0
- data/test/soap/auth/htpasswd +2 -0
- data/test/soap/auth/test_basic.rb +118 -0
- data/test/soap/auth/test_digest.rb +119 -0
- data/test/soap/calc/calc.rb +18 -0
- data/test/soap/calc/calc2.rb +30 -0
- data/test/soap/calc/server.cgi +16 -0
- data/test/soap/calc/server.rb +18 -0
- data/test/soap/calc/server2.rb +21 -0
- data/test/soap/calc/test_calc.rb +53 -0
- data/test/soap/calc/test_calc2.rb +57 -0
- data/test/soap/calc/test_calc_cgi.rb +72 -0
- data/test/soap/case/test_mapping.rb +58 -0
- data/test/soap/fault/test_customfault.rb +61 -0
- data/test/soap/fault/test_fault.rb +47 -0
- data/test/soap/fault/test_soaparray.rb +36 -0
- data/test/soap/filter/test_filter.rb +147 -0
- data/test/soap/header/server.cgi +121 -0
- data/test/soap/header/test_authheader.rb +241 -0
- data/test/soap/header/test_authheader_cgi.rb +122 -0
- data/test/soap/header/test_simplehandler.rb +117 -0
- data/test/soap/helloworld/hw_s.rb +17 -0
- data/test/soap/helloworld/test_helloworld.rb +45 -0
- data/test/soap/htpasswd +2 -0
- data/test/soap/literalArrayMapping/amazonEc.rb +4779 -0
- data/test/soap/literalArrayMapping/amazonEcDriver.rb +173 -0
- data/test/soap/literalArrayMapping/amazonresponse.xml +100 -0
- data/test/soap/literalArrayMapping/test_definedarray.rb +35 -0
- data/test/soap/marshal/marshaltestlib.rb +498 -0
- data/test/soap/marshal/test_digraph.rb +57 -0
- data/test/soap/marshal/test_marshal.rb +28 -0
- data/test/soap/marshal/test_struct.rb +48 -0
- data/test/soap/ssl/README +1 -0
- data/test/soap/ssl/ca.cert +23 -0
- data/test/soap/ssl/client.cert +19 -0
- data/test/soap/ssl/client.key +15 -0
- data/test/soap/ssl/server.cert +19 -0
- data/test/soap/ssl/server.key +15 -0
- data/test/soap/ssl/sslsvr.rb +59 -0
- data/test/soap/ssl/subca.cert +21 -0
- data/test/soap/ssl/test_ssl.rb +236 -0
- data/test/soap/struct/test_struct.rb +71 -0
- data/test/soap/styleuse/client.rb +21 -0
- data/test/soap/styleuse/server.rb +87 -0
- data/test/soap/swa/test_file.rb +76 -0
- data/test/soap/test_basetype.rb +1091 -0
- data/test/soap/test_cookie.rb +113 -0
- data/test/soap/test_custom_ns.rb +106 -0
- data/test/soap/test_custommap.rb +111 -0
- data/test/soap/test_empty.rb +106 -0
- data/test/soap/test_envelopenamespace.rb +86 -0
- data/test/soap/test_extraattr.rb +55 -0
- data/test/soap/test_generator.rb +32 -0
- data/test/soap/test_httpconfigloader.rb +72 -0
- data/test/soap/test_mapping.rb +132 -0
- data/test/soap/test_nestedexception.rb +71 -0
- data/test/soap/test_nil.rb +71 -0
- data/test/soap/test_no_indent.rb +89 -0
- data/test/soap/test_property.rb +429 -0
- data/test/soap/test_response_as_xml.rb +118 -0
- data/test/soap/test_soapelement.rb +139 -0
- data/test/soap/test_streamhandler.rb +271 -0
- data/test/soap/test_styleuse.rb +327 -0
- data/test/soap/wsdlDriver/README.txt +2 -0
- data/test/soap/wsdlDriver/calc.wsdl +126 -0
- data/test/soap/wsdlDriver/document.wsdl +54 -0
- data/test/soap/wsdlDriver/echo_version.rb +30 -0
- data/test/soap/wsdlDriver/simpletype.wsdl +63 -0
- data/test/soap/wsdlDriver/test_calc.rb +72 -0
- data/test/soap/wsdlDriver/test_document.rb +72 -0
- data/test/soap/wsdlDriver/test_simpletype.rb +82 -0
- data/test/testutil.rb +55 -0
- data/test/wsdl/abstract/abstract.wsdl +176 -0
- data/test/wsdl/abstract/test_abstract.rb +160 -0
- data/test/wsdl/anonymous/expectedClassDef.rb +129 -0
- data/test/wsdl/anonymous/expectedDriver.rb +60 -0
- data/test/wsdl/anonymous/expectedMappingRegistry.rb +177 -0
- data/test/wsdl/anonymous/lp.wsdl +147 -0
- data/test/wsdl/anonymous/test_anonymous.rb +131 -0
- data/test/wsdl/any/any.wsdl +114 -0
- data/test/wsdl/any/expectedDriver.rb +69 -0
- data/test/wsdl/any/expectedEcho.rb +58 -0
- data/test/wsdl/any/expectedMappingRegistry.rb +64 -0
- data/test/wsdl/any/expectedService.rb +70 -0
- data/test/wsdl/any/test_any.rb +194 -0
- data/test/wsdl/axisArray/axisArray.wsdl +87 -0
- data/test/wsdl/axisArray/test_axisarray.rb +125 -0
- data/test/wsdl/choice/choice.wsdl +167 -0
- data/test/wsdl/choice/test_choice.rb +311 -0
- data/test/wsdl/complexcontent/complexContent.wsdl +83 -0
- data/test/wsdl/complexcontent/test_echo.rb +91 -0
- data/test/wsdl/datetime/DatetimeService.rb +45 -0
- data/test/wsdl/datetime/datetime.rb +0 -0
- data/test/wsdl/datetime/datetime.wsdl +45 -0
- data/test/wsdl/datetime/datetimeServant.rb +23 -0
- data/test/wsdl/datetime/test_datetime.rb +88 -0
- data/test/wsdl/document/array/double.wsdl +161 -0
- data/test/wsdl/document/array/test_array.rb +202 -0
- data/test/wsdl/document/document.wsdl +76 -0
- data/test/wsdl/document/number.wsdl +54 -0
- data/test/wsdl/document/ping_nosoapaction.wsdl +66 -0
- data/test/wsdl/document/test_nosoapaction.rb +103 -0
- data/test/wsdl/document/test_number.rb +93 -0
- data/test/wsdl/document/test_rpc.rb +356 -0
- data/test/wsdl/emptycomplextype.wsdl +31 -0
- data/test/wsdl/fault/fault.wsdl +79 -0
- data/test/wsdl/fault/multifault.wsdl +96 -0
- data/test/wsdl/fault/test_fault.rb +120 -0
- data/test/wsdl/fault/test_multifault.rb +135 -0
- data/test/wsdl/group/expectedClassdef.rb +59 -0
- data/test/wsdl/group/expectedDriver.rb +52 -0
- data/test/wsdl/group/expectedMappingRegistry.rb +68 -0
- data/test/wsdl/group/group.wsdl +88 -0
- data/test/wsdl/group/test_rpc.rb +146 -0
- data/test/wsdl/list/list.wsdl +93 -0
- data/test/wsdl/list/test_list.rb +125 -0
- data/test/wsdl/map/map.wsdl +92 -0
- data/test/wsdl/map/map.xml +43 -0
- data/test/wsdl/map/test_map.rb +100 -0
- data/test/wsdl/marshal/person.wsdl +21 -0
- data/test/wsdl/marshal/person_org.rb +24 -0
- data/test/wsdl/marshal/test_wsdlmarshal.rb +76 -0
- data/test/wsdl/multiplefault.wsdl +75 -0
- data/test/wsdl/oneway/oneway.wsdl +36 -0
- data/test/wsdl/oneway/test_oneway.rb +109 -0
- data/test/wsdl/overload/expectedClient.rb +38 -0
- data/test/wsdl/overload/expectedDriver.rb +62 -0
- data/test/wsdl/overload/expectedServant.rb +36 -0
- data/test/wsdl/overload/overload.wsdl +70 -0
- data/test/wsdl/overload/test_overload.rb +132 -0
- data/test/wsdl/qualified/lp.wsdl +47 -0
- data/test/wsdl/qualified/lp.xsd +26 -0
- data/test/wsdl/qualified/np.wsdl +51 -0
- data/test/wsdl/qualified/test_qualified.rb +138 -0
- data/test/wsdl/qualified/test_unqualified.rb +139 -0
- data/test/wsdl/raa/RAAService.rb +126 -0
- data/test/wsdl/raa/README.txt +8 -0
- data/test/wsdl/raa/expectedClassDef.rb +101 -0
- data/test/wsdl/raa/expectedDriver.rb +97 -0
- data/test/wsdl/raa/expectedMappingRegistry.rb +122 -0
- data/test/wsdl/raa/raa.wsdl +264 -0
- data/test/wsdl/raa/test_raa.rb +127 -0
- data/test/wsdl/ref/expectedDriver.rb +52 -0
- data/test/wsdl/ref/expectedProduct.rb +244 -0
- data/test/wsdl/ref/product.wsdl +147 -0
- data/test/wsdl/ref/test_ref.rb +269 -0
- data/test/wsdl/rpc/rpc.wsdl +109 -0
- data/test/wsdl/rpc/test-rpc-lit.wsdl +371 -0
- data/test/wsdl/rpc/test_rpc.rb +177 -0
- data/test/wsdl/rpc/test_rpc_lit.rb +471 -0
- data/test/wsdl/simplecontent/simplecontent.wsdl +84 -0
- data/test/wsdl/simplecontent/test_simplecontent.rb +103 -0
- data/test/wsdl/simpletype/rpc/expectedClient.rb +35 -0
- data/test/wsdl/simpletype/rpc/expectedDriver.rb +59 -0
- data/test/wsdl/simpletype/rpc/expectedEchoVersion.rb +37 -0
- data/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb +58 -0
- data/test/wsdl/simpletype/rpc/expectedServant.rb +33 -0
- data/test/wsdl/simpletype/rpc/expectedService.rb +56 -0
- data/test/wsdl/simpletype/rpc/rpc.wsdl +98 -0
- data/test/wsdl/simpletype/rpc/test_rpc.rb +53 -0
- data/test/wsdl/simpletype/simpletype.wsdl +114 -0
- data/test/wsdl/simpletype/test_simpletype.rb +93 -0
- data/test/wsdl/soap/soapbodyparts.wsdl +103 -0
- data/test/wsdl/soap/test_soapbodyparts.rb +80 -0
- data/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb +22 -0
- data/test/wsdl/soap/wsdl2ruby/expectedClient.rb +35 -0
- data/test/wsdl/soap/wsdl2ruby/expectedDriver.rb +59 -0
- data/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb +37 -0
- data/test/wsdl/soap/wsdl2ruby/expectedServant.rb +33 -0
- data/test/wsdl/soap/wsdl2ruby/expectedService.cgi +49 -0
- data/test/wsdl/soap/wsdl2ruby/expectedService.rb +56 -0
- data/test/wsdl/soap/wsdl2ruby/rpc.wsdl +80 -0
- data/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb +38 -0
- data/test/wsdl/soap/wsdl2ruby/section/section.xsd +31 -0
- data/test/wsdl/soap/wsdl2ruby/section/test_section.rb +54 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/soapenc.wsdl +64 -0
- data/test/wsdl/soap/wsdl2ruby/soapenc/test_soapenc.rb +84 -0
- data/test/wsdl/soap/wsdl2ruby/test_wsdl2ruby.rb +103 -0
- data/test/wsdl/soaptype/soaptype.wsdl +61 -0
- data/test/wsdl/soaptype/test_soaptype.rb +179 -0
- data/test/wsdl/test_emptycomplextype.rb +22 -0
- data/test/wsdl/test_fault.rb +51 -0
- data/test/wsdl/test_multiplefault.rb +42 -0
- data/test/xsd/codegen/test_classdef.rb +245 -0
- data/test/xsd/noencoding.xml +4 -0
- data/test/xsd/test_noencoding.rb +33 -0
- data/test/xsd/test_ns.rb +42 -0
- data/test/xsd/test_xmlschemaparser.rb +23 -0
- data/test/xsd/test_xsd.rb +1639 -0
- data/test/xsd/xmllang.xml +43 -0
- data/test/xsd/xmlschema.xml +12 -0
- data/test/xsd/xsd2ruby/expected_mysample.rb +66 -0
- data/test/xsd/xsd2ruby/expected_mysample_mapper.rb +12 -0
- data/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb +52 -0
- data/test/xsd/xsd2ruby/section.xsd +49 -0
- data/test/xsd/xsd2ruby/test_xsd2ruby.rb +91 -0
- 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
|