New test.
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Protocols / ChangeLog
1 2006-09-06  Lluis Sanchez Gual <lluis@novell.com> 
2
3         * ValueCollectionParameterReader.cs, MimeFormatter.cs: Support enums in
4         the http get and post protocols. Fixes bug #78461.
5
6 2006-09-06  Lluis Sanchez Gual <lluis@novell.com>
7
8         * SoapException.cs: Fix property name.
9
10 2006-09-05  Ankit Jain <jankit@novell.com>
11
12         * LogicalMethodTypes.cs:
13         * SoapMessageStage.cs:
14         * SoapServiceRoutingStyle.cs:
15         * SoapHeaderDirection.cs:
16         * SoapParameterStyle.cs:
17         * SoapProtocolVersion.cs: Remove [Serializable].
18
19 2006-08-30  Konstantin Triger <kostat@mainsoft.com>
20
21         * WebClientProtocol.cs: implemented WebClientProtocol.UseDefaultCredentials().
22
23 2006-06-08  Chris Toshok  <toshok@ximian.com>
24
25         * WebServiceHandlerFactory.cs: remove the CONFIGURATION_2_0 from
26         ifdefs. NET_2_0 implies this now.
27
28         * SoapExtension.cs: same.
29
30         * SoapDocumentationHandler.cs: same.
31
32 2006-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
33
34         * SoapExtension.cs: fixed ExecuteProcessMessage signature, added 
35         stream parameter in order to update SoapMessage stream
36         * SoapMessage.cs: removed unused ctor, added internal property to
37         set SoapMessage's stream member
38         * HttpSoapWebServiceHandler.cs, SoapHttpClientProtocol.cs: updated
39         usage of ExecuteProcessMessage
40
41 2006-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
42
43         * SoapServerMessage.cs: fixed SoapServerMessage constructors to
44         remove quotes from SoapAction http header when initializing local
45         action member
46
47 2006-03-15  Vladimir Krasnov  <vladimirk@mainsoft.com>
48
49         * HttpSoapWebServiceHandler.cs, SoapServerMessage.cs: fixed
50         SoapMessage.ContentEncoding that used in ProcessMessage method
51         in SoapExtension
52
53 2006-03-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
54
55         * TypeStubManager.cs: fixed type_to_manager member to be initialized
56         per appdoamin (within TARGET_JVM block)
57
58 2006-03-12  Vladimir Krasnov  <vladimirk@mainsoft.com>
59
60         * SoapDocumentationHandler.cs: TARGET_JVM blocks added to exclude
61         not supported methods
62
63 2006-01-12  Ben Maurer  <bmaurer@andrew.cmu.edu>
64
65         * WebClientProtocol.cs: Add a 2.0 stub
66
67 2006-01-04  Chris Toshok  <toshok@ximian.com>
68
69         * SoapDocumentationHandler.cs: add CONFIGURATION_2_0 stuff.
70
71 2006-01-04  Chris Toshok  <toshok@ximian.com>
72
73         * WebServiceHandlerFactory.cs: add CONFIGURATION_2_0 stuff.
74
75         * SoapExtension.cs: add CONFIGURATION_2_0 stuff.
76
77 2005-09-26  Lluis Sanchez Gual <lluis@novell.com>
78
79         * LogicalMethodInfo.cs: GetCustomAttribute* does not return
80         inherited attributes in MS.NET.
81
82 2005-08-15 Gert Driesen <drieseng@users.sourceforge.net>
83
84         * SoapException.cs: Only mark serializable on 2.0 profile.
85         * SoapHeaderException.cs: Only mark serializable on 2.0 profile.
86         * WebClientProtocol.cs: DefaultValue of RequestEncoding must be null
87         to match MS.NET. Fixed line endings.
88
89 2005-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
90
91         * SoapDocumentationHandler.cs: workaround for a bug in the HttpRequest
92         QueryString property. Under MS, GetKey (0) yields null.
93
94 2005-06-30  Konstantin Triger <kostat@mainsoft.com>
95
96         * HttpSoapWebServiceHandler.cs:
97         * HttpSimpleWebServiceHandler.cs: Disposing the WebService instance
98         after a WebMethod invocation.
99
100 2005-06-14  Lluis Sanchez Gual <lluis@novell.com>
101
102         * SoapHttpClientProtocol.cs: 
103         * WebServiceHelper.cs:
104         * Methods.cs: Changed the way headers are serialized. Instead of having
105         a serializer per header type, we now have a serializer per method, and
106         headers are serialized using a member mapping.
107         
108         * HttpSoapWebServiceHandler.cs: Handle one way methods properly.
109         Fixes bug #70699.
110
111 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
112
113         * HttpSoapWebServiceHandler.cs: use the HttpResponse.BufferOutput
114         instead of our own MemoryStream when buffering is enabled. Flush the
115         response instead of closing it, as that allows for Content-Length to
116         be sent from HttpResponse and helps reusing connections.
117
118 2005-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
119
120         * WebServiceHelper.cs: don't even try to read the response if its length
121         is known to be 0.
122
123         * SoapHttpClientProtocol.cs: for successful responses on methods that
124         are not one-way, don't return immediately if the content length is 0 so
125         that the check for Content-Type takes place.
126
127 2005-06-07  Kornél Pál <kornelpal@hotmail.com>
128
129         * WebServiceHandlerFactory.cs: Throw InvalidOperationException instead of
130         returning DummyHttpHandler when the request format is not supported.
131
132 2005-06-06  Kornél Pál <kornelpal@hotmail.com>
133
134         * WebServiceHandlerFactory.cs: Added support for HttpPostLocalhost and HttpSoap12
135
136 2005-06-05 Konstantin Triger <kostat@mainsoft.com>
137
138         * SoapHttpClientProtocol.cs: Close WebResponse to free resources
139         * WebClientProtocol.cs, TypeStubManager.cs, SoapExtension.cs: moving static fields to AppDomain in Java builds
140
141 2005-02-07  Lluis Sanchez Gual <lluis@novell.com>
142
143         * XmlReturnWriter.cs, SoapDocumentationHandler.cs: Use utf-8 encoding
144         when generating xml responses, wsdl documents and schemas. This fixes
145         bug #72202.
146
147 2004-12-09  Lluis Sanchez Gual <lluis@novell.com> 
148
149         * ValueCollectionParameterReader.cs: Parse parameters in the correct
150         way, Convert.ChangeType is not enough. This fixes bug #70266.
151         Removed some types that are not supported as parameters.
152         * MimeFormatter.cs: Added methods for xml <-> object conversion.
153         * UrlEncodedParameterWriter.cs: Use a more elaborate method for converting
154         from object to string, ToString() is not enough.
155
156 2004-12-09  Lluis Sanchez Gual <lluis@novell.com>
157
158         * TypeStubManager.cs: Removed redundat hastable access.
159         * SoapHttpClientProtocol.cs: Accept responses with ContentLength==0.
160         This fixes bug #70310.
161
162 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
163
164         * SoapHttpClientProtocol.cs: dispose the StreamReader that wraps the
165         response stream.
166
167 2004-09-15  Lluis Sanchez Gual <lluis@novell.com>
168
169         * Methods.cs: Use the service namespace as the base for the soap action.
170           This fixes bug #60379.
171
172 2004-08-25  Lluis Sanchez Gual <lluis@novell.com>
173
174         * HttpSoapWebServiceHandler.cs, WebServiceHandler.cs: Do not assign the
175           context to the service. It already gets it from HttpContext.Current.
176
177 2004-07-27  Lluis Sanchez Gual  <lluis@ximian.com>
178
179         * HttpSimpleClientProtocol.cs, HttpWebClientProtocol.cs, 
180           SoapHttpClientProtocol.cs: Implemented support for the new async model.
181         * InvokeCompletedEventArgs.cs: Implemented.
182
183 2004-07-20  Lluis Sanchez Gual  <lluis@ximian.com>
184
185         * HttpWebClientProtocol.cs: Add received cookies to cookieContainer when
186           getting the response, do not wait for the next request to do it.
187
188 2004-07-13  Lluis Sanchez Gual  <lluis@ximian.com>
189
190         * HttpWebClientProtocol.cs, Soap12FaultCodes.cs, SoapClientMessage.cs,
191           SoapException.cs, SoapHeader.cs, SoapHeaderException.cs, 
192           SoapHttpClientProtocol.cs, SoapMessage.cs, SoapRpcMethodAttribute.cs,
193           SoapRpcServiceAttribute.cs, SoapServerMessage.cs: Api fixage (mainly
194           missing attributes).
195
196 2004-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
197
198         * HttpSimpleClientProtocol.cs, HttpWebClientProtocol.cs, 
199           SoapClientMessage.cs, SoapHttpClientProtocol.cs, SoapServerMessage.cs:
200           Added 2.0 stubs.
201         * SoapException.cs, SoapHeader.cs, SoapHeaderException.cs, SoapMessage.cs,
202           SoapRpcMethodAttribute.cs, SoapRpcServiceAttribute.cs: Implemented some
203           new methods and properties.
204         * WebClientProtocol.cs: uri field must be internal.
205
206 2004-07-05  Lluis Sanchez Gual  <lluis@ximian.com>
207
208         * Methods.cs: When using RPC, ignore RequestElementName and MessageName, 
209           and always uses the method name (MS.NET seems to do this).
210
211 2004-07-02  Lluis Sanchez Gual  <lluis@ximian.com>
212
213         * XmlReturnWriter.cs: Add XmlIncludes to the reflection importer when
214           reflecting the return type.
215
216 2004-07-01  Lluis Sanchez Gual  <lluis@ximian.com>
217
218         * Methods.cs: Check for null when looking for a header serializer, since
219           unknown headers don't have a serializer.
220         * SoapHeader.cs: Check for empty string before setting 
221           EncodedMustUnderstand.
222
223 2004-07-01  Lluis Sanchez Gual  <lluis@ximian.com>
224
225         * Methods.cs, SoapMessage.cs: Added support for unknown headers.
226         * SoapHeader.cs, SoapUnknownHeader.cs: Added new constructor that takes an
227           XmlElement with header info.
228         * WebServiceHelper.cs: Write the encodingStyle attribute when using the
229           encoded format. Added support for unknown headers.
230
231 2004-06-22  Lluis Sanchez Gual  <lluis@ximian.com>
232
233         * XmlReturnReader.cs, XmlReturnWriter.cs: Generate the serializer with
234           the root attribute taken from the method attributes.
235
236 2004-06-10  Lluis Sanchez Gual  <lluis@ximian.com>
237
238         * TypeStubManager.cs: Improved locking in GetLogicalTypeInfo().
239         * WebServiceHandler.cs: Removed unneded methods.
240
241 2004-06-02  Lluis Sanchez Gual  <lluis@ximian.com>
242
243         * LogicalMethodInfo.cs: Don't crash in GetCustomAttribute if the requested
244           attribute is not found.
245
246 2004-06-01  Gert Driesen <drieseng@users.sourceforge.net>
247
248         * HttpSoapWebServiceHandler.cs: Removed unused variables.
249         * SoapHeaderAttribute.cs: Added Obsolete attribute.
250
251 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
252
253         * SoapClientMessage.cs: Get the MethodInfo from the corresponding
254           SoapMethodStubInfo.
255
256 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
257
258         * SoapHttpClientProtocol.cs: when the response has a not acceptable
259         status code, the WebException we throw has a status of ProtocolError.
260         Fixes bug #58564.
261
262 2004-05-12  Lluis Sanchez Gual  <lluis@ximian.com>
263
264         * LogicalMethodInfo.cs: Made EnableSession property internal.
265
266 2004-05-12  Lluis Sanchez Gual  <lluis@ximian.com>
267
268         * HttpSimpleWebServiceHandler.cs: Added GetRequestMethod(), which is used
269           by the handler factory to check if the target method needs session or not.
270           Also factorized error handling in WriteError().
271         * HttpSoapWebServiceHandler.cs: Added GetRequestMethod(), for the same 
272           reason. Assign the context to the WebService just before invoking the
273           method.
274         * SoapHttpClientProtocol.cs: Use helper method to create the xml writer.
275         * WebServiceHandler.cs: Added virtual GetRequestMethod().
276         * WebServiceHandlerFactory.cs: Use an http handler wrapper when the target
277           method requires session support.
278         * WebServiceHelper.cs: Added some helper methods.
279
280 2004-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
281
282         * SoapDocumentationHandler.cs: added internal property to get the page
283         handler when available.
284
285         * WebServiceHandlerFactory.cs: wrap the documentation handler in a class
286         that implements IRequiresSessionState and, if requested,
287         IReadOnlySessionState, so that we can use Sesion object in the default
288         WSDL help generator.
289
290 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
291
292         * HttpSoapWebServiceHandler.cs: finish the request after serializing
293         the fault message.
294
295 2004-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
296
297         * HttpGetWebServiceHandler.cs:
298         * HttpPostWebServiceHandler.cs: removed.
299
300         * HttpSimpleWebServiceHandler.cs: changed ctor parameters and added
301         EnableSession property.
302
303         * WebServiceHandler.cs: added EnableSession virtual property.
304
305         * WebServiceHandlerFactory.cs: added a new handler that implements
306         IRequiresSessionState used for HttpGet and HttpPost.
307         (GetHandler): for HttpGet and HttpPost check if the method requires to
308         have a Session object and use the new SimpleSyncSessionHandler in that
309         case.
310
311         Still missing proper session handler for SOAP requests.
312
313 2004-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
314
315         * HttpSimpleWebServiceHandler.cs:
316         * HttpSoapWebServiceHandler.cs: use the session if the method has
317         EnableSession set.
318
319         * LogicalMethodInfo.cs: added EnableSession property.
320
321         * WebServiceHandler.cs: set the Session object of the WebService.
322
323 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
324
325         * WebServiceHelper.cs: In GetContentEncoding, chop off the single & double
326           quotes around the encoding name. Patch by George Kodinov. This fixes
327           bug #55806.
328
329 2004-03-10  Lluis Sanchez Gual  <lluis@ximian.com>
330
331         * HttpSoapWebServiceHandler.cs: Set the properties ContentType and 
332           ContentEncoding in SoapServerMessage.
333         * LogicalMethodInfo.cs: Implemented AsyncResultParameter, BeginInvoke and
334           EndInvoke. Fixed ComputeParameters, so it computes the correct parameters
335           for async logical methods.
336         * Methods.cs: Check that client proxies have one and only one 
337           WebServiceBindingAttribute.
338         * PatternMatcher.cs: Implemented (in fact, just moved code from 
339           TextReturnReader.cs)
340         * SoapDocumentationHandler.cs: Add soap bindings in the generated
341           discovery document.
342         * SoapHttpClientProtocol.cs: Implemented method Discover().
343         * SoapMessage.cs: Implemented property ContentEncoding.
344         * TextReturnReader.cs: Moved code to PatternMatcher.cs.
345         
346 2004-02-27  Lluis Sanchez Gual  <lluis@ximian.com>
347
348         * Fault.cs: Moved Fault class from Methods.cd to this file. It also includes
349           a generated serializer.
350         * HttpSoapWebServiceHandler.cs, WebServiceHelper.cs: Use the new static Fault serializer.
351         * Methods.cs: Include types declared with XmlInclude and SoapInclude to the
352           reflection importer. Moved Fault and its serializer to Fault.cs
353         * SoapHttpClientProtocol.cs: Removed unused method.
354
355 2004-02-12  Lluis Sanchez Gual <lluis@ximian.com>
356
357         * WebServiceHelper.cs: When reading a soap request, skip empty headers. 
358           This fixes bug #51846.
359
360 2004-01-27  Lluis Sanchez Gual <lluis@ximian.com>
361
362         * WebServiceHandler.cs: inheritance from WebService is not mandatory.
363
364 2004-02-05  Alon Gazit <along@mainsoft.com>
365
366        * HttpMethodAttribute.cs:
367        * MatchAttribute.cs:
368        * SoapDocumentMethodAttribute.cs:
369        * SoapDocumentServiceAttribute.cs:
370        * SoapHeaderAttribute.cs:
371        * SoapRpcMethodAttribute.cs:
372        * SoapRpcServiceAttribute.cs: This attribute is inherited by
373                 derived classes.changed the AttributeUsage attribute.
374
375 2004-02-05  Alon Gazit <along@mainsoft.com>
376
377         * SoapHeaderAttribute.cs: This attribute is multiuse.
378         Changed the AttributeUsage attribute.
379
380 2004-01-27  Lluis Sanchez Gual <lluis@ximian.com>
381
382         * SoapDocumentMethodAttribute.cs: Fixed bug in ResponseNamespace.
383
384 2004-01-24  Lluis Sanchez Gual <lluis@ximian.com>
385
386         * HttpWebClientProtocol.cs: Added missing property.
387         * Methods.cs: Default binding for a method must be null.
388         * SoapHeaderDirection.cs: Added missing enum value.
389         * SoapMessage.cs: Added missing property.
390         * TypeStubManager.cs: Removed unneded check from AddBinding.
391           In GetBinding(), return default binding if name is null.
392         * ValueCollectionParameterReader.cs: IsPrimitive must be internal.
393
394 2004-01-21  Lluis Sanchez Gual <lluis@ximian.com>
395
396         * HttpSoapWebServiceHandler.cs, SoapHttpClientProtocol.cs: Do not use 
397           indented format for requests and responses. SOAPAction header value
398           must be quoted (fix by Yaacov Akiba Slama).
399         
400 2004-01-21  Lluis Sanchez Gual <lluis@ximian.com>
401
402         * Methods.cs: Set the correct namespaces for Fault. This fixes bug #53117.
403           Based on the fix by Eran Domb.
404
405 2004-01-19  Lluis Sanchez Gual <lluis@ximian.com>
406
407         * Methods.cs: Get the method namespace from the binding, not from the web
408         service.
409         * TypeStubManager.cs: When adding a binding, ignore it if it has already
410         been added. Changed WebServiceLiteralNamespace by the method
411         GetWebServiceLiteralNamespace. The literal namespace depends on the binding
412         namespace, so it has to be provided as parameter.
413         * XmlReturnReader.cs, XmlReturnWriter.cs: Use GetWebServiceLiteralNamespace 
414         instead of WebServiceLiteralNamespace.
415
416 2004-01-14  Lluis Sanchez Gual <lluis@ximian.com>
417
418         * Methods.cs: Set the correct element name and namespace for headers (those
419         are not managed like other data classes).
420
421 2004-01-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
422
423         * HttpSoapWebServiceHandler.cs:
424         * HttpSimpleWebServiceHandler.cs: set
425         base.Context property.
426
427         * WebServiceHandler.cs: added set_Context and set the context for the
428         WebService when creating the instance.
429
430 2003-12-23  Lluis Sanchez Gual <lluis@ximian.com>
431
432         * SoapDocumentationHandler.cs: Added support for DISCO file generation.
433
434 2003-12-16  Lluis Sanchez Gual <lluis@ximian.com>
435
436         * HttpSimpleClientProtocol.cs: Do not encode the request url, since it is
437           already encoded by the MimeParameterWriter.
438         * MatchAttribute.cs: Set default value for Group to 1.
439         * TextReturnReader.cs: Implemented. With this it is possible to create an
440           XML web service that parse the contents of a web page.
441
442 2003-12-15  Lluis Sanchez Gual <lluis@ximian.com>
443
444         * HttpSoapWebServiceHandler.cs: Added check for valid SOAPAction header.
445           Fixed bug when routing style is RequestElement.
446           Removed GetMethodFromAction. This is done now in the type stub.
447           Other minor fixes.
448         * Methods.cs, WebServiceHelper.cs: Faults are always serialized using 
449           literal format. Removed unneded code.
450         
451 2003-12-12  Lluis Sanchez Gual <lluis@ximian.com>
452
453         * Methods.cs: Added special handling for RPC format.
454         
455 2003-11-27  Lluis Sanchez Gual <lluis@ximian.com>
456
457         * Methods.cs: Added correct namespace for serialization in Fault class.
458         * SoapHttpClientProtocol.cs: Changed the method used to check if the
459           result is a fault. Now the check is done inside 
460           WebServiceHelper.ReadSoapMessage. Removed some debug writelines.
461         * WebServiceHelper.cs: If the message body is a fault, use the fault
462           serializer.
463
464 2003-11-24  Lluis Sanchez Gual <lluis@ximian.com>
465
466         * Methods.cs, TypeStubManager.cs, SoapMessage.cs: Removed TODO comment.
467         * SoapDocumentationHandler.cs: Check that the documentation page exist.
468         * SoapHttpClientProtocol.cs: Removed cast from WebResponse to
469           HttpWebResponse. This fixes bug #51281.
470
471 2003-11-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
472
473         * HttpSoapWebServiceHandler.cs: WebException is ok here for wrong 
474         content encoding...
475         * SoapHttpClientProtocol.cs: ... but here, we should throw an
476         InvalidOperationException including the full response.
477
478         * WebServiceHelper.cs:
479         (GetContentEncoding): now fills an output variable with the name of the
480         content encoding used.
481         (InvalidOperation): new method to build the message for
482         InvalidOperationException.
483
484 2003-11-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
485
486         * SoapHttpClientProtocol.cs:
487         * WebServiceHelper.cs: throw a WebException instead of an Exception.
488         Fixes bug #51193.
489
490 2003-10-26  Miguel de Icaza  <miguel@ximian.com>
491
492         * WebServiceHelper.cs: Compute content type and encoding
493         correctly in the absence of extra options.
494
495 2003-10-22  Lluis Sanchez Gual <lluis@ximian.com>
496
497         * Methods.cs: Class Fault is now public, so it can be serialized.
498
499 2003-10-15  Lluis Sanchez Gual <lluis@ximian.com>
500
501         * TypeStubManager.cs: Added OperationName property.
502
503 2003-10-13  Lluis Sanchez Gual <lluis@ximian.com>
504
505         * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs, HttpSimpleTypeStubInfo.cs,
506           HttpSoapWebServiceHandler.cs, Methods.cs, SoapHttpClientProtocol.cs,
507           TypeStubManager.cs
508           Added class LogicalTypeInfo, which contains info common to all protocols
509           through which a web service can be accessed. Also, modified the way
510           Serializers are created. Instead of creating one by one, they are now
511           created all at once. This will make serialization creation more efficient
512           when the serializer code generator is in place.
513         * SoapRpcMethodAttribute.cs: Set the correct default values for the
514           properties.
515         * WebServiceHelper.cs: Removed unused method GetServiceNamespace().
516         * XmlReturnReader.cs, XmlReturnWriter.cs: Get the namespace for the return
517           type from LogicalTypeInfo.
518
519 2003-10-12  Lluis Sanchez Gual <lluis@ximian.com>
520
521         * SoapHttpClientProtocol.cs: Replaced AsyncInfo by a new 
522           SoapWebClientAsyncResult class derived from WebClientAsyncResult.
523         * WebClientAsyncResult.cs: Removed unneeded members.
524
525 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
526
527         * SoapDocumentationHandler.cs: don't close the response stream here
528         to allow filtering.
529
530 2003-10-06  Lluis Sanchez Gual <lluis@ximian.com>
531
532         * HtmlFormParameterWriter.cs: Fixed WriteRequest().
533         * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs: Check that 
534           HttpMethodAttribute is present in proxy's method.
535         * HttpSimpleClientProtocol.cs: Forgot to call InitializeRequest before
536           getting the request stream.
537         * UrlEncodedParameterWriter.cs: in Encode(), take into account that
538           requestEncoding can be null.
539
540 2003-10-04  Lluis Sanchez Gual <lluis@ximian.com>
541
542         * SoapDocumentationHandler.cs: Moved here the code from 
543           WebServiceHandlerFactory that generates the documentation page.
544         * WebServiceHandlerFactory.cs: Moved the code that generates the doc page
545           to SoapDocumentationHandler.cs.
546         * HttpGetClientProtocol.cs, HttpGetWebServiceHandler.cs,
547           HttpPostClientProtocol.cs, HttpPostWebServiceHandler.cs,
548           HttpSimpleWebServiceHandler.cs, HttpSoapWebServiceHandler.cs,
549           SoapHttpClientProtocol.cs: Changed parameters of GetTypeStub call.
550         * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs: Added ProtocolName
551           property. Added check for valid parameters.
552         * HttpSimpleTypeStubInfo.cs: Define return MimeFormatter in constructor.
553         * Methods.cs: BindingInfo and related properties moved to base TypeStubInfo.
554           Added properties for XmlImporter and SoapImporter.
555         * TypeStubManager.cs: Added BindingInfo and related properties.
556           Changed GetTypeStub method. Now it takes the name of the protocol for
557           which to get the type stub info.
558         * ValueCollectionParameterReader.cs: IsSupported should only return true
559           for input primitive parameters or array of primitives.
560
561 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
562
563         * SoapDocumentationHandler.cs: it does not generate the documentation
564         page any more. GetDescription and GetSchemas are now internal.
565
566         * WebServiceHandlerFactory.cs: generate the documentation page without
567         doing a Transfer () but instead creating a Page instance from the wsdl
568         help file. This file is located from the configuration file that
569         contains the <wsdlHelpGenerator> tag.
570
571 2003-10-01  Lluis Sanchez Gual <lluis@ximian.com>
572
573         * HtmlFormParameterReader.cs, HtmlFormParameterWriter.cs, 
574           HttpGetClientProtocol.cs, HttpPostClientProtocol.cs, 
575           HttpSimpleClientProtocol.cs, MimeFormatter.cs, MimeParameterWriter.cs,
576           NopReturnReader.cs, UrlEncodedParameterWriter.cs, UrlParameterReader.cs,
577           UrlParameterWriter.cs, ValueCollectionParameterReader.cs, 
578           WebClientAsyncResult.cs, XmlReturnReader.cs, XmlReturnWriter.cs
579           : Implemented.
580         
581         * HttpSoapWebServiceHandler.cs, SoapClientMessage.cs, SoapServerMessage.cs,
582           SoapDocumentationHandler.cs, SoapHttpClientProtocol.cs, 
583           WebServiceHelper.cs: Changed due to modifications in  TypeStubInfo.
584           
585         * Methods.cs: Moved common code to TypeStubInfo.cs.
586         * WebServiceHandler.cs: Moved invoke code to HttpSoapWebServiceHandler.cs
587         * ServerProtocol.cs, SoapServerProtocol.cs: Fixed formatting.
588         * WebServiceHandlerFactory.cs: Added support for HttpGet and HttpPost.
589
590 2003-09-29  Lluis Sanchez Gual  <lluis@ximian.com>
591         
592         * Methods.cs: Little fix in binding check.
593         * SoapExtension.cs: Implemented ChainStream. Changed some methods from
594           public to internal.
595         * SoapClientMessage: Implemented EnsureInStage.
596         * SoapServerMessage: Implemented EnsureInStage, EnsureOutStage.
597           
598 2003-09-28  Lluis Sanchez Gual  <lluis@ximian.com>
599         
600         * HttpSoapWebServiceHandler.cs: In SerializeResponse method, improved
601           management of exceptions. Also added support for BufferResponse flag.
602         * Methods.cs: Added MethodAttribute property in MethodStubInfo. Added
603           XmlImporter, SoapImporter and Type properties in TypeStubInfo.
604         * SoapMessage.cs: little fix.
605         
606 2003-09-14  Lluis Sanchez Gual  <lluis@ximian.com>
607         
608         * SoapDocumentationHandler.cs: Added support for on-the-fly proxy
609           code generation in documentation pages.
610
611 2003-09-04  Lluis Sanchez Gual  <lluis@ximian.com>
612
613         * Methods.cs: Added support for bare parameter style. Fixed some defaults.
614
615 2003-09-01  Lluis Sanchez Gual  <lluis@ximian.com>
616
617         * Methods.cs: In TypeStubInfo, added Documentation field.
618
619 2003-07-28  Lluis Sanchez Gual  <lluis@ximian.com>
620
621         * HttpSoapWebServiceHandler.cs: 
622         * Methods.cs: Added SoapBindingStyle, SoapBindingUse, InputMembersMapping
623           and OutputMembersMapping properties in MethodStubInfo.
624           Use default value defined in TypeStubInfo for RequestNamespace,
625           ResponseNamespace and other properties.
626           Added class BindingInfo to store information about class bindings.
627           In TypeStubInfo added SoapBindingStyle, DefaultBinding, Methods and
628           Bindings properties.
629         * SoapRpcMethodAttribute.cs: Use WebServiceAttribute.DefaultNamespace constant 
630           instead of hardcoded namespace name.
631         * WebServiceHandlerFactory.cs: Create new SoapDocumentationHandler for
632           documentation requests.
633         * SoapDocumentationHandler.cs: new handler that generates WS documentation.
634         
635 2003-07-22  Lluis Sanchez Gual  <lluis@ximian.com>
636
637         * WebServiceHandler.cs: Fixed Invoke(). ParameterInfo.Position is now
638           zero-based, like in MS.NET.
639         
640 2003-07-16  Lluis Sanchez Gual  <lluis@ximian.com>
641
642         * SoapHttpClientProtocol.cs: Removed debug WriteLine.
643         
644 2003-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
645
646         * HttpSoapWebServiceHandler.cs: MS puts the soap action in quotation marks??
647           Fix for this case.
648         * SoapHttpClientProtocol.cs: Implemented support for asynchronous calls 
649           (BeginInvoke and EndInvoke).
650
651 2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>
652
653         * SoapHttpClientProtocol.cs, HttpSoapWebServiceHandler.cs, Methods.cs: 
654           Added support for soap extensions. Moved some code to
655           WebServiceHelper. Implemented support for the two types of RoutingStyle. Added support
656           for In and Out headers. Improved management of exceptions.
657         * SoapClientMessage.cs: code to retrieve soap headers moved to SoapMessage.
658         * SoapExtension.cs: Added methods for getting and creating soap extensions.
659         * SoapMessage.cs: Added methods for getting and assigning headers to an object.
660         * SoapServerMessage.cs: Added setter for MethodStubInfo. Other minor fixes.
661         * WebServiceHandler.cs: Added support for In and Out headers. Fixed management of exceptions.
662         * WebServiceHandlerFactory.cs: Check if the request protocol is supported.
663         * WebServiceHelper.cs: Added method for reading a soap request.
664
665 2003-07-04  Lluis Sanchez Gual  <lluis@ximian.com>
666
667         * LogicalMethodInfo.cs: Fixed Invoke method. If return type is void,
668           then the result object array only contain output parameters.
669
670         * Methods.cs: In class MethodStubInfo, added support from some server properties
671           taken from WebMethodAttribute. Now MethodStubInfo can be created without SoapDocument*
672           or SoapRpc* attributes, in which case takes default values from TypeStubInfo.
673           Added method for getting header info.
674           In class Fault: added constructor for creating a fault from a SoapException.
675           In class TypeStubInfo: new way to manage serializers for headers. Now it is possible to
676           get a header using a name and namespace (used when deserializing).
677
678         * SoapHttpClientProtocol.cs: moved WriteSoapEnvelope method to WebServiceHelper (so it can be shared).
679           Also moved other serialization stuff to WebServiceHelper.
680
681         * SoapMessage.cs: Added some convenient constructors and internal properties.
682           Implemented GetOutParameterValue and GetReturnValue.
683
684         * SoapServerMessage.cs: Implemented.
685
686         * WebServiceHandler.cs: Implemented method Invoke.
687
688         * WebServiceHandlerFactory.cs: Basic implementation.
689
690         * WebServiceHelper.cs: Added. Has some methods shared between client and server classes.
691
692         * HttpSoapWebServiceHandler.cs: Added. IHttpHandler implementation for HttpSoap requests.
693
694 2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
695
696         * HttpWebClientProtocol.cs: handle cookies if the request is a
697         HttpWebRequest. It gets the cookies set in the response and sends them
698         on subsequent requests.
699
700         * SoapHttpClientProtocol.cs:
701         (GetWebRequest): just calls the base method.
702         (SendRequest): set the method here.
703         (Invoke): call GetWebResponse instead of request.GetResponse.
704
705         * WebClientProtocol.cs:
706         (GetWebRequest): set some properties of the request.
707         (GetWebResponse): if we get a WebException containing a response, return
708         that as the response and ignore the exception.
709         (GetWebResponse (req, async)): only call EndGetResponse.
710
711 2003-06-14  Lluis Sanchez Gual  <lluis@ximian.com>
712
713         * Methods.cs: Added information about headers in MethodStubInfo. Added cache of serializers
714           in TypeStubInfo so serializers for headers they can be shared by several methods.
715         * SoapClientMessage.cs: Headers added in the constructor.
716         * SoapMessage.cs: Added header list initialization.
717         * SoapHttpClientProtocol.cs: Added support soap headers.
718
719 2003-06-13  Lluis Sanchez Gual  <lluis@ximian.com>
720
721         * Methods.cs: Added serializer to MethodStubInfo for deserializing faults.
722         * SoapHttpClientProtocol.cs: Added support for faults.
723
724 2003-06-10  Lluis Sanchez Gual  <lluis@ximian.com>
725
726         * Methods.cs: removed handler for UnknownNode event
727
728 2003-06-05  Lluis Sanchez Gual  <lluis@ximian.com>
729
730         * Methods.cs: added support for encoded format
731
732 2003-06-01  Miguel de Icaza  <miguel@ximian.com>
733
734         * Methods.cs (MethodStubInfo): If creating an RPC call, pass an
735         optional XmlElementAttribute with the namespace set to null;  Use
736         this on each element of the request and response serializers.
737
738         (MakeRequestSerializer, MakeResponseSerializer): Use the empty
739         element for the return values.
740
741         * SoapRpcMethodAttribute.cs: Drop the default name on the
742         SoapRpcMethodAttribute, it was incorrectly given a default name.
743
744 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
745
746         * Methods.cs (MethodStubInfo): Start support for RPC style as well
747         as Literal style.  Take an object instead of a
748         SoapDocumentMethodAttribute, and allow the value to be also a
749         SoapRpcMethodAttribute.  Pull data from both.
750
751         Kill SoapBindingUse, we only use this during validation.
752
753         Turn out Google uses RPC/Literal, and its a good demo.
754
755         (MakeResponseSerializer): OneWay is not the only
756         condition to catch;  Also void return types are not required to
757         have a response.
758
759         (MakeRequestSerializer): InParameters *might* be ref parameters,
760         deal with that here too.
761
762         Add some debugging code for tracking down missing implementation
763         details in serialization creation.
764
765         (MakeResponseSerializer): DUH.  Use the
766         ResponseName/ResponseNamespace for the member import, not the
767         RequestName and RequestNamespace.  The bugs of cut-and-paste.
768
769 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
770
771         * SoapHttpClientProtocol.cs (CreateMessage): Kill.  Move
772         functionality to Invoke.
773
774         (Invoke): Use new TypeStubInfo/MethodStubInfo instead.
775
776         * SoapClientMessage.cs: Drop old mechanism, use MethodStubInfo instead.
777
778         * Methods.cs: New file.  Contains the managed for TypeStubs and
779         MethodInfoStubs.   
780
781         A MethodInfoStub contains the serializers we use for the SOAP
782         request. 
783
784         * SoapClientMessage.cs: Drop parameters from the clientmessage, it
785         does not belong here.  Drop oneway, we canextract that from the
786         SoapDocumentMethodAttribute class that we pass.
787
788 2003-05-28  Miguel de Icaza  <miguel@ximian.com>
789
790         * LogicalMethodInfo.cs (Create): Implement begin/end method
791         pairing.
792         (Name): Implement. 
793         (EndMethodInfo): Always return end_method_info.
794
795 2003-04-30  Miguel de Icaza  <miguel@ximian.com>
796
797         * SoapHttpClientProtocol.cs: Flag the methods in the chain that
798         gets the caller method as non-inlineable.
799
800 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
801
802         * SoapHttpClientProtocol.cs (CreateMessage): Extract information
803         from the method to be called.
804
805         * SoapDocumentMethodAttribute.cs: Do not initialize all the fields
806         on the attribute at bootstrap, for default values, just compute
807         them when queried.
808
809         * SoapMessage.cs (SetStage): New internal method, used to register
810         the stage as we move along the soap pipeline.
811
812         * LogicalMethodInfo.cs: Most of this is implemented.  Its only
813         missing a few bits in the Create() method.
814
815         * SoapHttpClientProtocol.cs: Begin implementation of Invoke, which
816         lead to other dependencies to be implemented.
817
818         * LogicalMethodInfo.cs: Mostly complete.  It is only missing the
819         async features (BeginInvoke/EndInvoke) on a LogicalMethodInfo.
820
821         * WebClientProtocol.cs (GetWebRequest): Track the web request, so
822         we can abort it later.
823         (Abort): Call abort on the underlying transport.
824
825 2002-08-24  Tim Coleman <tim@timcoleman.com>
826         * HttpServerProtocol.cs:
827         * WebServiceHandler.cs:
828                 Some commented code added, from analysing 
829                 an exception trace.
830         * MimeReturnWriter.cs:
831         * XmlReturnWriter.cs:
832                 New stubs added.
833
834 2002-08-23  Tim Coleman <tim@timcoleman.com>
835         * ServerProtocol.cs:
836         * SoapServerProtocol.cs:
837                 More cleanup, comparison with class status.
838         * WebServiceHandler.cs:
839         * HttpServerProtocol.cs:
840                 New stubs added.
841
842 2002-08-15  Tim Coleman <tim@timcoleman.com>
843         * ServerProtocol.cs:
844         * SoapServerProtocol.cs:
845                 Some more implementation.
846
847 2002-08-06  Tim Coleman <tim@timcoleman.com>
848         * ServerProtocol.cs:
849                 Add new class as implied by class statuc page.
850                 SoapServerProtocol is derived from this.
851         * SoapServerProtocol.cs:
852                 Change base class to ServerProtocol.  Add some
853                 properties shown by class status page.
854         * SoapClientMethod.cs:
855                 This class should not be sealed.  Add some
856                 fields shown by the class status page.
857
858 2002-07-25  Tim Coleman <tim@timcoleman.com>
859         * SoapClientMethod.cs:
860         * SoapServerProtocol.cs:
861                 Add new internal classes as discovered.
862         * SoapClientMessage.cs:
863         * SoapMessage.cs:
864         * SoapServerMessage.cs:
865         * WebClientAsyncResult.cs:
866                 Add internal constructor, as found on class
867                 status page; modify some properties.
868
869 2002-07-23  Tim Coleman <tim@timcoleman.com>
870         * SoapException.cs: modified constructors to
871                 call base class correctly.
872         * WebClientAsyncResult: some implementation
873
874 2002-07-23  Tim Coleman <tim@timcoleman.com>
875         * HttpGetClientProtocol.cs:
876         * HttpPostClientProtocol.cs
877                 Implemented the GetWebRequest method
878         * HttpSimpleClientProtocol:
879                 Some implementation of the EndInvoke method
880         * HttpWebClientProtocol.cs:
881                 Set the UserAgent string appropriately
882                 Implemented the GetWebRequest method
883                 Implemented the GetWebResponse methods
884         * SoapHttpClientProtocol.cs:
885                 Removed unused fields
886                 Implemented the GetWebRequest method
887         * SoapMessage.cs:
888                 Implemented the EnsureStage method
889         * WebClientProtocol.cs:
890                 Added a static constructor to construct the cache
891                 Implemented the Abort method
892                 Implemented the AddToCache, GetFromCache methods
893                 Implemented the GetWebRequest method
894                 Implemented the GetWebResponse methods
895
896 2002-07-23  Tim Coleman <tim@timcoleman.com>
897         * LogicalMethodTypes.cs:
898         * SoapHeaderDirection.cs:
899         * SoapMessageStage.cs:
900         * SoapParameterStyle.cs:
901         * SoapServiceRoutingStyle.cs:
902                 Explicitly define values in enum to match
903                 .NET.
904         * SoapMessage.cs: 
905                 Removed constructor which should not be present.
906         * SoapException.cs:
907                 Made protected fields private as they should
908                 be.
909         * SoapHeaderException.cs:
910                 Modifications to constructors to propertly
911                 call base class constructor
912
913 2002-07-22  Tim Coleman <tim@timcoleman.com>
914         * SoapHeaderException.cs:
915                 Fixed name error in constructor
916         * SoapUnknownHeader.cs:
917                 Added reference to System.Xml.Serialization
918
919 2002-07-22  Tim Coleman <tim@timcoleman.com>
920         * SoapHeaderException.cs:
921                 New file added
922
923 2002-07-22  Tim Coleman <tim@timcoleman.com>    
924         * AnyReturnReader.cs:
925         * HtmlFormParameterReader.cs :
926         * HtmlFormParameterWriter.cs :
927         * HttpGetClientProtocol.cs :
928         * HttpMethodAttribute.cs :
929         * HttpPostClientProtocol.cs :
930         * HttpSimpleClientProtocol.cs :
931         * HttpWebClientProtocol.cs :
932         * LogicalMethodInfo.cs :
933         * LogicalMethodTypes.cs :
934         * MatchAttribute.cs :
935         * MimeFormatter.cs :
936         * MimeParameterReader.cs :
937         * MimeParameterWriter.cs :
938         * MimeReturnReader.cs :
939         * NopReturnReader.cs :
940         * PatternMatcher.cs :
941         * SoapClientMessage.cs :
942         * SoapDocumentMethodAttribute.cs :
943         * SoapDocumentServiceAttribute.cs :
944         * SoapException.cs :
945         * SoapExtension.cs :
946         * SoapExtensionAttribute.cs :
947         * SoapHeader.cs :
948         * SoapHeaderAttribute.cs :
949         * SoapHeaderCollection.cs :
950         * SoapHeaderDirection.cs :
951         * SoapHttpClientProtocol.cs :
952         * SoapMessage.cs :
953         * SoapMessageStage.cs :
954         * SoapParameterStyle.cs :
955         * SoapRpcMethodAttribute.cs :
956         * SoapRpcServiceAttribute.cs :
957         * SoapServerMessage.cs :
958         * SoapServiceRoutingStyle.cs :
959         * SoapUnknownHeader.cs :
960         * TextReturnReader.cs :
961         * UrlEncodedParameterWriter.cs :
962         * UrlParameterReader.cs :
963         * UrlParameterWriter.cs :
964         * ValueCollectionParameterReader.cs :
965         * WebClientAsyncResult.cs :
966         * WebClientProtocol.cs :
967         * WebServiceHandlerFactory.cs :
968         * XmlReturnReader.cs :
969                 Add missing methods and attributes to make as few missing
970                 things as possible in this namespace.  This is from the
971                 project status page.
972
973 2002-07-20 Tim Coleman  <tim@timcoleman.com>
974        * AnyReturnReader.cs:
975        * HtmlFormParameterReader.cs:
976        * HtmlFormParameterWriter.cs:
977        * HttpGetClientProtocol.cs:
978        * HttpMethodAttribute.cs:
979        * HttpPostClientProtocol.cs:
980        * HttpSimpleClientProtocol.cs:
981        * HttpWebClientProtocol.cs:
982        * MatchAttribute.cs:
983        * MimeFormatter.cs:
984        * MimeParameterReader.cs:
985        * MimeParameterWriter.cs:
986        * MimeReturnReader.cs:
987        * NopReturnReader.cs:
988        * PatternMatcher.cs:
989        * SoapClientMessage.cs:
990        * SoapDocumentMethodAttribute.cs:
991        * SoapDocumentServiceAttribute.cs:
992        * SoapException.cs:
993        * SoapExtensionAttribute.cs:
994        * SoapExtension.cs:
995        * SoapHeaderAttribute.cs:
996        * SoapHeaderCollection.cs:
997        * SoapHeader.cs:
998        * SoapHeaderDirection.cs:
999        * SoapHttpClientProtocol.cs:
1000        * SoapMessage.cs:
1001        * SoapMessageStage.cs:
1002        * SoapParameterStyle.cs:
1003        * SoapRpcMethodAttribute.cs:
1004        * SoapRpcServiceAttribute.cs:
1005        * SoapServerMessage.cs:
1006        * SoapServiceRoutingStyle.cs:
1007        * SoapUnknownHeader.cs:
1008        * TextReturnReader.cs:
1009        * UrlEncodedParameterWriter.cs:
1010        * UrlParameterReader.cs:
1011        * UrlParameterWriter.cs:
1012        * ValueCollectionParameterReader.cs:
1013        * WebClientAsyncResult.cs:
1014        * WebClientProtocol.cs:
1015        * WebServiceHandlerFactory.cs:
1016        * XmlReturnReader.cs:
1017                Added new stubbs and some implementation
1018        * LogicalMethodTypes.cs:
1019                Added [Serializable] attribute which was missing.
1020
1021 2002-07-19 Tim Coleman  <tim@timcoleman.com>
1022         * ChangeLog:
1023         * LogicalMethodInfo.cs:
1024         * LogicalMethodTypes.cs:
1025                 Add required classes to maek System.Web.Services.Description
1026                 buildable.