1 2003-10-13 Lluis Sanchez Gual <lluis@ximian.com>
3 * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs, HttpSimpleTypeStubInfo.cs,
4 HttpSoapWebServiceHandler.cs, Methods.cs, SoapHttpClientProtocol.cs,
6 Added class LogicalTypeInfo, which contains info common to all protocols
7 through which a web service can be accessed. Also, modified the way
8 Serializers are created. Instead of creating one by one, they are now
9 created all at once. This will make serialization creation more efficient
10 when the serializer code generator is in place.
11 * SoapRpcMethodAttribute.cs: Set the correct default values for the
13 * WebServiceHelper.cs: Removed unused method GetServiceNamespace().
14 * XmlReturnReader.cs, XmlReturnWriter.cs: Get the namespace for the return
15 type from LogicalTypeInfo.
17 2003-10-12 Lluis Sanchez Gual <lluis@ximian.com>
19 * SoapHttpClientProtocol.cs: Replaced AsyncInfo by a new
20 SoapWebClientAsyncResult class derived from WebClientAsyncResult.
21 * WebClientAsyncResult.cs: Removed unneeded members.
23 2003-10-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
25 * SoapDocumentationHandler.cs: don't close the response stream here
28 2003-10-06 Lluis Sanchez Gual <lluis@ximian.com>
30 * HtmlFormParameterWriter.cs: Fixed WriteRequest().
31 * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs: Check that
32 HttpMethodAttribute is present in proxy's method.
33 * HttpSimpleClientProtocol.cs: Forgot to call InitializeRequest before
34 getting the request stream.
35 * UrlEncodedParameterWriter.cs: in Encode(), take into account that
36 requestEncoding can be null.
38 2003-10-04 Lluis Sanchez Gual <lluis@ximian.com>
40 * SoapDocumentationHandler.cs: Moved here the code from
41 WebServiceHandlerFactory that generates the documentation page.
42 * WebServiceHandlerFactory.cs: Moved the code that generates the doc page
43 to SoapDocumentationHandler.cs.
44 * HttpGetClientProtocol.cs, HttpGetWebServiceHandler.cs,
45 HttpPostClientProtocol.cs, HttpPostWebServiceHandler.cs,
46 HttpSimpleWebServiceHandler.cs, HttpSoapWebServiceHandler.cs,
47 SoapHttpClientProtocol.cs: Changed parameters of GetTypeStub call.
48 * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs: Added ProtocolName
49 property. Added check for valid parameters.
50 * HttpSimpleTypeStubInfo.cs: Define return MimeFormatter in constructor.
51 * Methods.cs: BindingInfo and related properties moved to base TypeStubInfo.
52 Added properties for XmlImporter and SoapImporter.
53 * TypeStubManager.cs: Added BindingInfo and related properties.
54 Changed GetTypeStub method. Now it takes the name of the protocol for
55 which to get the type stub info.
56 * ValueCollectionParameterReader.cs: IsSupported should only return true
57 for input primitive parameters or array of primitives.
59 2003-10-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
61 * SoapDocumentationHandler.cs: it does not generate the documentation
62 page any more. GetDescription and GetSchemas are now internal.
64 * WebServiceHandlerFactory.cs: generate the documentation page without
65 doing a Transfer () but instead creating a Page instance from the wsdl
66 help file. This file is located from the configuration file that
67 contains the <wsdlHelpGenerator> tag.
69 2003-10-01 Lluis Sanchez Gual <lluis@ximian.com>
71 * HtmlFormParameterReader.cs, HtmlFormParameterWriter.cs,
72 HttpGetClientProtocol.cs, HttpPostClientProtocol.cs,
73 HttpSimpleClientProtocol.cs, MimeFormatter.cs, MimeParameterWriter.cs,
74 NopReturnReader.cs, UrlEncodedParameterWriter.cs, UrlParameterReader.cs,
75 UrlParameterWriter.cs, ValueCollectionParameterReader.cs,
76 WebClientAsyncResult.cs, XmlReturnReader.cs, XmlReturnWriter.cs
79 * HttpSoapWebServiceHandler.cs, SoapClientMessage.cs, SoapServerMessage.cs,
80 SoapDocumentationHandler.cs, SoapHttpClientProtocol.cs,
81 WebServiceHelper.cs: Changed due to modifications in TypeStubInfo.
83 * Methods.cs: Moved common code to TypeStubInfo.cs.
84 * WebServiceHandler.cs: Moved invoke code to HttpSoapWebServiceHandler.cs
85 * ServerProtocol.cs, SoapServerProtocol.cs: Fixed formatting.
86 * WebServiceHandlerFactory.cs: Added support for HttpGet and HttpPost.
88 2003-09-29 Lluis Sanchez Gual <lluis@ximian.com>
90 * Methods.cs: Little fix in binding check.
91 * SoapExtension.cs: Implemented ChainStream. Changed some methods from
93 * SoapClientMessage: Implemented EnsureInStage.
94 * SoapServerMessage: Implemented EnsureInStage, EnsureOutStage.
96 2003-09-28 Lluis Sanchez Gual <lluis@ximian.com>
98 * HttpSoapWebServiceHandler.cs: In SerializeResponse method, improved
99 management of exceptions. Also added support for BufferResponse flag.
100 * Methods.cs: Added MethodAttribute property in MethodStubInfo. Added
101 XmlImporter, SoapImporter and Type properties in TypeStubInfo.
102 * SoapMessage.cs: little fix.
104 2003-09-14 Lluis Sanchez Gual <lluis@ximian.com>
106 * SoapDocumentationHandler.cs: Added support for on-the-fly proxy
107 code generation in documentation pages.
109 2003-09-04 Lluis Sanchez Gual <lluis@ximian.com>
111 * Methods.cs: Added support for bare parameter style. Fixed some defaults.
113 2003-09-01 Lluis Sanchez Gual <lluis@ximian.com>
115 * Methods.cs: In TypeStubInfo, added Documentation field.
117 2003-07-28 Lluis Sanchez Gual <lluis@ximian.com>
119 * HttpSoapWebServiceHandler.cs:
120 * Methods.cs: Added SoapBindingStyle, SoapBindingUse, InputMembersMapping
121 and OutputMembersMapping properties in MethodStubInfo.
122 Use default value defined in TypeStubInfo for RequestNamespace,
123 ResponseNamespace and other properties.
124 Added class BindingInfo to store information about class bindings.
125 In TypeStubInfo added SoapBindingStyle, DefaultBinding, Methods and
127 * SoapRpcMethodAttribute.cs: Use WebServiceAttribute.DefaultNamespace constant
128 instead of hardcoded namespace name.
129 * WebServiceHandlerFactory.cs: Create new SoapDocumentationHandler for
130 documentation requests.
131 * SoapDocumentationHandler.cs: new handler that generates WS documentation.
133 2003-07-22 Lluis Sanchez Gual <lluis@ximian.com>
135 * WebServiceHandler.cs: Fixed Invoke(). ParameterInfo.Position is now
136 zero-based, like in MS.NET.
138 2003-07-16 Lluis Sanchez Gual <lluis@ximian.com>
140 * SoapHttpClientProtocol.cs: Removed debug WriteLine.
142 2003-07-10 Lluis Sanchez Gual <lluis@ximian.com>
144 * HttpSoapWebServiceHandler.cs: MS puts the soap action in quotation marks??
146 * SoapHttpClientProtocol.cs: Implemented support for asynchronous calls
147 (BeginInvoke and EndInvoke).
149 2003-07-09 Lluis Sanchez Gual <lluis@ximian.com>
151 * SoapHttpClientProtocol.cs, HttpSoapWebServiceHandler.cs, Methods.cs:
152 Added support for soap extensions. Moved some code to
153 WebServiceHelper. Implemented support for the two types of RoutingStyle. Added support
154 for In and Out headers. Improved management of exceptions.
155 * SoapClientMessage.cs: code to retrieve soap headers moved to SoapMessage.
156 * SoapExtension.cs: Added methods for getting and creating soap extensions.
157 * SoapMessage.cs: Added methods for getting and assigning headers to an object.
158 * SoapServerMessage.cs: Added setter for MethodStubInfo. Other minor fixes.
159 * WebServiceHandler.cs: Added support for In and Out headers. Fixed management of exceptions.
160 * WebServiceHandlerFactory.cs: Check if the request protocol is supported.
161 * WebServiceHelper.cs: Added method for reading a soap request.
163 2003-07-04 Lluis Sanchez Gual <lluis@ximian.com>
165 * LogicalMethodInfo.cs: Fixed Invoke method. If return type is void,
166 then the result object array only contain output parameters.
168 * Methods.cs: In class MethodStubInfo, added support from some server properties
169 taken from WebMethodAttribute. Now MethodStubInfo can be created without SoapDocument*
170 or SoapRpc* attributes, in which case takes default values from TypeStubInfo.
171 Added method for getting header info.
172 In class Fault: added constructor for creating a fault from a SoapException.
173 In class TypeStubInfo: new way to manage serializers for headers. Now it is possible to
174 get a header using a name and namespace (used when deserializing).
176 * SoapHttpClientProtocol.cs: moved WriteSoapEnvelope method to WebServiceHelper (so it can be shared).
177 Also moved other serialization stuff to WebServiceHelper.
179 * SoapMessage.cs: Added some convenient constructors and internal properties.
180 Implemented GetOutParameterValue and GetReturnValue.
182 * SoapServerMessage.cs: Implemented.
184 * WebServiceHandler.cs: Implemented method Invoke.
186 * WebServiceHandlerFactory.cs: Basic implementation.
188 * WebServiceHelper.cs: Added. Has some methods shared between client and server classes.
190 * HttpSoapWebServiceHandler.cs: Added. IHttpHandler implementation for HttpSoap requests.
192 2003-06-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
194 * HttpWebClientProtocol.cs: handle cookies if the request is a
195 HttpWebRequest. It gets the cookies set in the response and sends them
196 on subsequent requests.
198 * SoapHttpClientProtocol.cs:
199 (GetWebRequest): just calls the base method.
200 (SendRequest): set the method here.
201 (Invoke): call GetWebResponse instead of request.GetResponse.
203 * WebClientProtocol.cs:
204 (GetWebRequest): set some properties of the request.
205 (GetWebResponse): if we get a WebException containing a response, return
206 that as the response and ignore the exception.
207 (GetWebResponse (req, async)): only call EndGetResponse.
209 2003-06-14 Lluis Sanchez Gual <lluis@ximian.com>
211 * Methods.cs: Added information about headers in MethodStubInfo. Added cache of serializers
212 in TypeStubInfo so serializers for headers they can be shared by several methods.
213 * SoapClientMessage.cs: Headers added in the constructor.
214 * SoapMessage.cs: Added header list initialization.
215 * SoapHttpClientProtocol.cs: Added support soap headers.
217 2003-06-13 Lluis Sanchez Gual <lluis@ximian.com>
219 * Methods.cs: Added serializer to MethodStubInfo for deserializing faults.
220 * SoapHttpClientProtocol.cs: Added support for faults.
222 2003-06-10 Lluis Sanchez Gual <lluis@ximian.com>
224 * Methods.cs: removed handler for UnknownNode event
226 2003-06-05 Lluis Sanchez Gual <lluis@ximian.com>
228 * Methods.cs: added support for encoded format
230 2003-06-01 Miguel de Icaza <miguel@ximian.com>
232 * Methods.cs (MethodStubInfo): If creating an RPC call, pass an
233 optional XmlElementAttribute with the namespace set to null; Use
234 this on each element of the request and response serializers.
236 (MakeRequestSerializer, MakeResponseSerializer): Use the empty
237 element for the return values.
239 * SoapRpcMethodAttribute.cs: Drop the default name on the
240 SoapRpcMethodAttribute, it was incorrectly given a default name.
242 2003-05-30 Miguel de Icaza <miguel@ximian.com>
244 * Methods.cs (MethodStubInfo): Start support for RPC style as well
245 as Literal style. Take an object instead of a
246 SoapDocumentMethodAttribute, and allow the value to be also a
247 SoapRpcMethodAttribute. Pull data from both.
249 Kill SoapBindingUse, we only use this during validation.
251 Turn out Google uses RPC/Literal, and its a good demo.
253 (MakeResponseSerializer): OneWay is not the only
254 condition to catch; Also void return types are not required to
257 (MakeRequestSerializer): InParameters *might* be ref parameters,
258 deal with that here too.
260 Add some debugging code for tracking down missing implementation
261 details in serialization creation.
263 (MakeResponseSerializer): DUH. Use the
264 ResponseName/ResponseNamespace for the member import, not the
265 RequestName and RequestNamespace. The bugs of cut-and-paste.
267 2003-05-29 Miguel de Icaza <miguel@ximian.com>
269 * SoapHttpClientProtocol.cs (CreateMessage): Kill. Move
270 functionality to Invoke.
272 (Invoke): Use new TypeStubInfo/MethodStubInfo instead.
274 * SoapClientMessage.cs: Drop old mechanism, use MethodStubInfo instead.
276 * Methods.cs: New file. Contains the managed for TypeStubs and
279 A MethodInfoStub contains the serializers we use for the SOAP
282 * SoapClientMessage.cs: Drop parameters from the clientmessage, it
283 does not belong here. Drop oneway, we canextract that from the
284 SoapDocumentMethodAttribute class that we pass.
286 2003-05-28 Miguel de Icaza <miguel@ximian.com>
288 * LogicalMethodInfo.cs (Create): Implement begin/end method
291 (EndMethodInfo): Always return end_method_info.
293 2003-04-30 Miguel de Icaza <miguel@ximian.com>
295 * SoapHttpClientProtocol.cs: Flag the methods in the chain that
296 gets the caller method as non-inlineable.
298 2003-04-29 Miguel de Icaza <miguel@ximian.com>
300 * SoapHttpClientProtocol.cs (CreateMessage): Extract information
301 from the method to be called.
303 * SoapDocumentMethodAttribute.cs: Do not initialize all the fields
304 on the attribute at bootstrap, for default values, just compute
307 * SoapMessage.cs (SetStage): New internal method, used to register
308 the stage as we move along the soap pipeline.
310 * LogicalMethodInfo.cs: Most of this is implemented. Its only
311 missing a few bits in the Create() method.
313 * SoapHttpClientProtocol.cs: Begin implementation of Invoke, which
314 lead to other dependencies to be implemented.
316 * LogicalMethodInfo.cs: Mostly complete. It is only missing the
317 async features (BeginInvoke/EndInvoke) on a LogicalMethodInfo.
319 * WebClientProtocol.cs (GetWebRequest): Track the web request, so
320 we can abort it later.
321 (Abort): Call abort on the underlying transport.
323 2002-08-24 Tim Coleman <tim@timcoleman.com>
324 * HttpServerProtocol.cs:
325 * WebServiceHandler.cs:
326 Some commented code added, from analysing
328 * MimeReturnWriter.cs:
329 * XmlReturnWriter.cs:
332 2002-08-23 Tim Coleman <tim@timcoleman.com>
334 * SoapServerProtocol.cs:
335 More cleanup, comparison with class status.
336 * WebServiceHandler.cs:
337 * HttpServerProtocol.cs:
340 2002-08-15 Tim Coleman <tim@timcoleman.com>
342 * SoapServerProtocol.cs:
343 Some more implementation.
345 2002-08-06 Tim Coleman <tim@timcoleman.com>
347 Add new class as implied by class statuc page.
348 SoapServerProtocol is derived from this.
349 * SoapServerProtocol.cs:
350 Change base class to ServerProtocol. Add some
351 properties shown by class status page.
352 * SoapClientMethod.cs:
353 This class should not be sealed. Add some
354 fields shown by the class status page.
356 2002-07-25 Tim Coleman <tim@timcoleman.com>
357 * SoapClientMethod.cs:
358 * SoapServerProtocol.cs:
359 Add new internal classes as discovered.
360 * SoapClientMessage.cs:
362 * SoapServerMessage.cs:
363 * WebClientAsyncResult.cs:
364 Add internal constructor, as found on class
365 status page; modify some properties.
367 2002-07-23 Tim Coleman <tim@timcoleman.com>
368 * SoapException.cs: modified constructors to
369 call base class correctly.
370 * WebClientAsyncResult: some implementation
372 2002-07-23 Tim Coleman <tim@timcoleman.com>
373 * HttpGetClientProtocol.cs:
374 * HttpPostClientProtocol.cs
375 Implemented the GetWebRequest method
376 * HttpSimpleClientProtocol:
377 Some implementation of the EndInvoke method
378 * HttpWebClientProtocol.cs:
379 Set the UserAgent string appropriately
380 Implemented the GetWebRequest method
381 Implemented the GetWebResponse methods
382 * SoapHttpClientProtocol.cs:
383 Removed unused fields
384 Implemented the GetWebRequest method
386 Implemented the EnsureStage method
387 * WebClientProtocol.cs:
388 Added a static constructor to construct the cache
389 Implemented the Abort method
390 Implemented the AddToCache, GetFromCache methods
391 Implemented the GetWebRequest method
392 Implemented the GetWebResponse methods
394 2002-07-23 Tim Coleman <tim@timcoleman.com>
395 * LogicalMethodTypes.cs:
396 * SoapHeaderDirection.cs:
397 * SoapMessageStage.cs:
398 * SoapParameterStyle.cs:
399 * SoapServiceRoutingStyle.cs:
400 Explicitly define values in enum to match
403 Removed constructor which should not be present.
405 Made protected fields private as they should
407 * SoapHeaderException.cs:
408 Modifications to constructors to propertly
409 call base class constructor
411 2002-07-22 Tim Coleman <tim@timcoleman.com>
412 * SoapHeaderException.cs:
413 Fixed name error in constructor
414 * SoapUnknownHeader.cs:
415 Added reference to System.Xml.Serialization
417 2002-07-22 Tim Coleman <tim@timcoleman.com>
418 * SoapHeaderException.cs:
421 2002-07-22 Tim Coleman <tim@timcoleman.com>
422 * AnyReturnReader.cs:
423 * HtmlFormParameterReader.cs :
424 * HtmlFormParameterWriter.cs :
425 * HttpGetClientProtocol.cs :
426 * HttpMethodAttribute.cs :
427 * HttpPostClientProtocol.cs :
428 * HttpSimpleClientProtocol.cs :
429 * HttpWebClientProtocol.cs :
430 * LogicalMethodInfo.cs :
431 * LogicalMethodTypes.cs :
432 * MatchAttribute.cs :
434 * MimeParameterReader.cs :
435 * MimeParameterWriter.cs :
436 * MimeReturnReader.cs :
437 * NopReturnReader.cs :
438 * PatternMatcher.cs :
439 * SoapClientMessage.cs :
440 * SoapDocumentMethodAttribute.cs :
441 * SoapDocumentServiceAttribute.cs :
444 * SoapExtensionAttribute.cs :
446 * SoapHeaderAttribute.cs :
447 * SoapHeaderCollection.cs :
448 * SoapHeaderDirection.cs :
449 * SoapHttpClientProtocol.cs :
451 * SoapMessageStage.cs :
452 * SoapParameterStyle.cs :
453 * SoapRpcMethodAttribute.cs :
454 * SoapRpcServiceAttribute.cs :
455 * SoapServerMessage.cs :
456 * SoapServiceRoutingStyle.cs :
457 * SoapUnknownHeader.cs :
458 * TextReturnReader.cs :
459 * UrlEncodedParameterWriter.cs :
460 * UrlParameterReader.cs :
461 * UrlParameterWriter.cs :
462 * ValueCollectionParameterReader.cs :
463 * WebClientAsyncResult.cs :
464 * WebClientProtocol.cs :
465 * WebServiceHandlerFactory.cs :
466 * XmlReturnReader.cs :
467 Add missing methods and attributes to make as few missing
468 things as possible in this namespace. This is from the
471 2002-07-20 Tim Coleman <tim@timcoleman.com>
472 * AnyReturnReader.cs:
473 * HtmlFormParameterReader.cs:
474 * HtmlFormParameterWriter.cs:
475 * HttpGetClientProtocol.cs:
476 * HttpMethodAttribute.cs:
477 * HttpPostClientProtocol.cs:
478 * HttpSimpleClientProtocol.cs:
479 * HttpWebClientProtocol.cs:
482 * MimeParameterReader.cs:
483 * MimeParameterWriter.cs:
484 * MimeReturnReader.cs:
485 * NopReturnReader.cs:
487 * SoapClientMessage.cs:
488 * SoapDocumentMethodAttribute.cs:
489 * SoapDocumentServiceAttribute.cs:
491 * SoapExtensionAttribute.cs:
493 * SoapHeaderAttribute.cs:
494 * SoapHeaderCollection.cs:
496 * SoapHeaderDirection.cs:
497 * SoapHttpClientProtocol.cs:
499 * SoapMessageStage.cs:
500 * SoapParameterStyle.cs:
501 * SoapRpcMethodAttribute.cs:
502 * SoapRpcServiceAttribute.cs:
503 * SoapServerMessage.cs:
504 * SoapServiceRoutingStyle.cs:
505 * SoapUnknownHeader.cs:
506 * TextReturnReader.cs:
507 * UrlEncodedParameterWriter.cs:
508 * UrlParameterReader.cs:
509 * UrlParameterWriter.cs:
510 * ValueCollectionParameterReader.cs:
511 * WebClientAsyncResult.cs:
512 * WebClientProtocol.cs:
513 * WebServiceHandlerFactory.cs:
514 * XmlReturnReader.cs:
515 Added new stubbs and some implementation
516 * LogicalMethodTypes.cs:
517 Added [Serializable] attribute which was missing.
519 2002-07-19 Tim Coleman <tim@timcoleman.com>
521 * LogicalMethodInfo.cs:
522 * LogicalMethodTypes.cs:
523 Add required classes to maek System.Web.Services.Description