Commit Graph

29 Commits

Author SHA1 Message Date
Kent Sibilev
2f5ee5a812 Ensure that DispatcherError is being thrown correctly when a malformed request is received.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5713 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-11 21:09:47 +00:00
Kent Sibilev
abe8fa73a9 Added support for decimal types. Closes #6676.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5670 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-12-03 20:30:34 +00:00
Kent Sibilev
d37604f03e Fixed XMLRPC multicall when one of the called methods returns a struct object.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4810 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-08-23 09:34:46 +00:00
David Heinemeier Hansson
d4b27a0b36 Fix soap type registration of multidimensional arrays (closes #4232) [Kent]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3903 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-17 22:20:09 +00:00
David Heinemeier Hansson
3d4965765c Fix a ton of issues with AWS (yes, Kent saved it from being unbundled in 1.1) #4038 [Kent Sibilev]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3750 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2006-03-03 03:19:37 +00:00
Leon Breedt
9d79880e81 add 'system.multicall' support to XML-RPC. boxcarred methods must still exist
on the target service(s), value casting will still be performed, and recursive
'system.multicall' calls are not allowed.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2021 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-08-16 05:45:03 +00:00
Leon Breedt
eaadd18f3f Add API::Base.soap_client and API::Base.xmlrpc_client helper methods to construct
an internal client.

Example:

{{{
$ ./script/console
>> c = MyApi.soap_client 'http://app.com/ws/api'
>> c.method arg1, arg2
}}}


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1994 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-08-12 16:38:42 +00:00
Leon Breedt
03d9159025 we should respect charset for incoming messages and not assuming incoming is
always UTF-8, and only force UTF-8 for our response.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1842 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-07-16 21:08:27 +00:00
Leon Breedt
dfc422b784 always send back SOAP responses as UTF-8, we can't guarantee that SOAP4R
supports any encoding sent by caller.

add documentation describing how to ensure :string types don't get converted
into :base64 by SOAP4R when containing non-ASCII chars and $KCODE is not set
to a value.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1822 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-07-13 06:05:13 +00:00
David Heinemeier Hansson
72104faa58 Tuned documentation for release (AWS)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1727 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-07-06 08:25:04 +00:00
Leon Breedt
ebb6fb0928 fix WSDL generation, change the way protocols are instantiated, and add
the ability to override the namespace used in WSDL instead of always forcing
'urn:ActionWebService'


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1501 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-25 06:27:39 +00:00
Leon Breedt
fa7f4a0664 Add workaround for SOAP4R changing find_mapped_soap_class return value [Shugo Maeda]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1409 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-06-13 03:22:01 +00:00
Leon Breedt
47a7084b94 add base64 signature type (thanks, Shugo Maeda!)
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1293 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-05-07 22:57:08 +00:00
Leon Breedt
8694a79bb2 default to using UTF-8 as response encoding for SOAP if none is
supplied, but if an encoding is supplied by caller, use that for the
response instead (NAKAMURA Hiroshi)


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1245 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-28 17:55:34 +00:00
Leon Breedt
896fea505b add charset=utf-8 to SOAP response content type, and make base_uri
respect relative_url_root for the endpoint of SOAP messages (Shugo
Maeda). if WSDL was retrieved over HTTPS, use HTTPS in the endpoint
URLs as well.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1244 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-28 01:19:52 +00:00
Leon Breedt
1155ea0aa3 initial go at making :layered dispatching generate WSDL for SOAP, and have
:layered process SOAP method calls correctly as well, may be unstable


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1097 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-05 21:37:48 +00:00
Leon Breedt
97e39fcb64 make XMLRPC::FaultException have a #message, otherwise the thrown exception
is useless in functional test backtraces


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1093 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-05 16:25:47 +00:00
Leon Breedt
361dcad8fd be explicit about the object to do #instance_eval in for delegated dispatching,
clean up iterations to use #zip (bitsweat), 


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1090 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-05 05:39:45 +00:00
Leon Breedt
353497458b filter out embedded nil values for XML-RPC
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1073 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-02 22:05:16 +00:00
Leon Breedt
aaea48fe98 * collapse 'ws' back into protocols, it just added complexity and indirection, and was hard to extend.
* extract casting into seperate support file
* ensure casting always does the right thing for return values, should fix interoperability issues with Ecto and possibly other XML-RPC clients
* add functional unit tests for scaffolding
* represent signature items with classes instead of symbols/Class objects, much more flexible
* tweak logging to always show casted versions of parameters and return values, if possible.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1072 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-04-02 21:03:36 +00:00
Leon Breedt
b94bd32f31 first pass of web service scaffolding. add ability to quickly generate an
action pack request for a protocol, add missing log_error when we fail to parse
protocol messages. add RDoc for scaffolding and functional testing.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1037 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-29 12:31:39 +00:00
Leon Breedt
b14e5d8334 don't hide exceptions when we fail to parse XML-RPC messages.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1031 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-28 06:55:30 +00:00
Leon Breedt
594063f23c generalize casting code to be used by both SOAP and XML-RPC (previously only XML-RPC). switch
to better model for API methods, and improve the ability to generate protocol requests/response,
will be required by upcoming scaffolding.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1030 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-28 03:20:13 +00:00
Leon Breedt
75c304f82f make the response QName match up with that declared for the message in the
WSDL, to not do so violates the spec. also fixes this error that occurred with
SOAP::WSDLDriverFactory: "RuntimeError: Cannot find {}return as a children of {urn:ServiceName}messageName"


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@920 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-20 07:14:12 +00:00
Leon Breedt
9776bfc8a0 dup the value received from @request, so we modify the copy and not the original,
and avoid frozen errors.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@912 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-03-15 21:07:48 +00:00
Leon Breedt
100015cd80 Make all custom types and method calls are declared in the 'urn:ActionWebService'
namespace as a default, fixes SOAP marshaling for .NET, a regression since the merge.

Make array annotation be recursive in WS::Marshaling::SoapMarshaling, this makes
typed arrays buried in nested structures still be annotated correctly.

Support :layered dispatching mode for XML-RPC namespaced method names.

Change WS::ParamInfo.create signature to require type_binding, and update all
uses of this.

Restore #default_api_method functionality, fixes a regression since the merge.

Fix marshalling of ActiveRecord::Base derivatives, fixes a regression since the merge.

This changeset closes #676, #677, and #678.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@811 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-27 21:21:40 +00:00
Leon Breedt
6f5a7b2004 merged the changes for the upcoming 0.6.0:
seperate out protocol marshaling into a small 'ws' library in vendor, so that
AWS itself only does integration with ActionPack, and so we can keep protocol
specific code in AWS proper to a minimum. refactor unit tests to get 95%
code coverage (for a baseline).

be far more relaxed about the types given to us by the remote side, don't do
any poor man's type checking, just try to cast and marshal to the correct types if
possible, and if not, return what they gave us anyway. this should make interoperating
with fuzzy XML-RPC clients easier.

if exception reporting is turned on, do best-effort error responses, so that
we can avoid "Internal protocol error" with no details if there is a bug in
AWS itself.

also perform extensive cleanups on AWS proper.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@800 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-25 23:39:39 +00:00
Leon Breedt
418d487020 refactoring:
* move dispatching out of the Container into Dispatcher, it makes more sense
    for Container to only contain the list of web services defined
    in it.

  * collapse Wsdl and ActionController "routers" into
    an ActionController-specific module, no advantage
    to having them seperate as they were quite tightly
    coupled. rename to Dispatcher, to avoi
    confusion with Routing.

  * add a "_thing" suffix to concept-specific filenames. this is so that
    we don't end up with many soap.rb files, for example.

  * remove "virtual invocation" support. adds complexity, and it doesn't
    seem to add any value.


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@679 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-19 08:29:42 +00:00
Leon Breedt
ec03a60181 rename entire package to Action Web Service
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@672 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
2005-02-18 23:55:29 +00:00