* HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs, HttpSimpleTypeStubInfo.cs,
[mono.git] / mcs / class / System.Web.Services / System.Web.Services.Protocols / ChangeLog
1 2003-10-13  Lluis Sanchez Gual <lluis@ximian.com>
2
3         * HttpGetTypeStubInfo.cs, HttpPostTypeStubInfo.cs, HttpSimpleTypeStubInfo.cs,
4           HttpSoapWebServiceHandler.cs, Methods.cs, SoapHttpClientProtocol.cs,
5           TypeStubManager.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
12           properties.
13         * WebServiceHelper.cs: Removed unused method GetServiceNamespace().
14         * XmlReturnReader.cs, XmlReturnWriter.cs: Get the namespace for the return
15           type from LogicalTypeInfo.
16
17 2003-10-12  Lluis Sanchez Gual <lluis@ximian.com>
18
19         * SoapHttpClientProtocol.cs: Replaced AsyncInfo by a new 
20           SoapWebClientAsyncResult class derived from WebClientAsyncResult.
21         * WebClientAsyncResult.cs: Removed unneeded members.
22
23 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24
25         * SoapDocumentationHandler.cs: don't close the response stream here
26         to allow filtering.
27
28 2003-10-06  Lluis Sanchez Gual <lluis@ximian.com>
29
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.
37
38 2003-10-04  Lluis Sanchez Gual <lluis@ximian.com>
39
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.
58
59 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
60
61         * SoapDocumentationHandler.cs: it does not generate the documentation
62         page any more. GetDescription and GetSchemas are now internal.
63
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.
68
69 2003-10-01  Lluis Sanchez Gual <lluis@ximian.com>
70
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
77           : Implemented.
78         
79         * HttpSoapWebServiceHandler.cs, SoapClientMessage.cs, SoapServerMessage.cs,
80           SoapDocumentationHandler.cs, SoapHttpClientProtocol.cs, 
81           WebServiceHelper.cs: Changed due to modifications in  TypeStubInfo.
82           
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.
87
88 2003-09-29  Lluis Sanchez Gual  <lluis@ximian.com>
89         
90         * Methods.cs: Little fix in binding check.
91         * SoapExtension.cs: Implemented ChainStream. Changed some methods from
92           public to internal.
93         * SoapClientMessage: Implemented EnsureInStage.
94         * SoapServerMessage: Implemented EnsureInStage, EnsureOutStage.
95           
96 2003-09-28  Lluis Sanchez Gual  <lluis@ximian.com>
97         
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.
103         
104 2003-09-14  Lluis Sanchez Gual  <lluis@ximian.com>
105         
106         * SoapDocumentationHandler.cs: Added support for on-the-fly proxy
107           code generation in documentation pages.
108
109 2003-09-04  Lluis Sanchez Gual  <lluis@ximian.com>
110
111         * Methods.cs: Added support for bare parameter style. Fixed some defaults.
112
113 2003-09-01  Lluis Sanchez Gual  <lluis@ximian.com>
114
115         * Methods.cs: In TypeStubInfo, added Documentation field.
116
117 2003-07-28  Lluis Sanchez Gual  <lluis@ximian.com>
118
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
126           Bindings properties.
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.
132         
133 2003-07-22  Lluis Sanchez Gual  <lluis@ximian.com>
134
135         * WebServiceHandler.cs: Fixed Invoke(). ParameterInfo.Position is now
136           zero-based, like in MS.NET.
137         
138 2003-07-16  Lluis Sanchez Gual  <lluis@ximian.com>
139
140         * SoapHttpClientProtocol.cs: Removed debug WriteLine.
141         
142 2003-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
143
144         * HttpSoapWebServiceHandler.cs: MS puts the soap action in quotation marks??
145           Fix for this case.
146         * SoapHttpClientProtocol.cs: Implemented support for asynchronous calls 
147           (BeginInvoke and EndInvoke).
148
149 2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>
150
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.
162
163 2003-07-04  Lluis Sanchez Gual  <lluis@ximian.com>
164
165         * LogicalMethodInfo.cs: Fixed Invoke method. If return type is void,
166           then the result object array only contain output parameters.
167
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).
175
176         * SoapHttpClientProtocol.cs: moved WriteSoapEnvelope method to WebServiceHelper (so it can be shared).
177           Also moved other serialization stuff to WebServiceHelper.
178
179         * SoapMessage.cs: Added some convenient constructors and internal properties.
180           Implemented GetOutParameterValue and GetReturnValue.
181
182         * SoapServerMessage.cs: Implemented.
183
184         * WebServiceHandler.cs: Implemented method Invoke.
185
186         * WebServiceHandlerFactory.cs: Basic implementation.
187
188         * WebServiceHelper.cs: Added. Has some methods shared between client and server classes.
189
190         * HttpSoapWebServiceHandler.cs: Added. IHttpHandler implementation for HttpSoap requests.
191
192 2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
193
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.
197
198         * SoapHttpClientProtocol.cs:
199         (GetWebRequest): just calls the base method.
200         (SendRequest): set the method here.
201         (Invoke): call GetWebResponse instead of request.GetResponse.
202
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.
208
209 2003-06-14  Lluis Sanchez Gual  <lluis@ximian.com>
210
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.
216
217 2003-06-13  Lluis Sanchez Gual  <lluis@ximian.com>
218
219         * Methods.cs: Added serializer to MethodStubInfo for deserializing faults.
220         * SoapHttpClientProtocol.cs: Added support for faults.
221
222 2003-06-10  Lluis Sanchez Gual  <lluis@ximian.com>
223
224         * Methods.cs: removed handler for UnknownNode event
225
226 2003-06-05  Lluis Sanchez Gual  <lluis@ximian.com>
227
228         * Methods.cs: added support for encoded format
229
230 2003-06-01  Miguel de Icaza  <miguel@ximian.com>
231
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.
235
236         (MakeRequestSerializer, MakeResponseSerializer): Use the empty
237         element for the return values.
238
239         * SoapRpcMethodAttribute.cs: Drop the default name on the
240         SoapRpcMethodAttribute, it was incorrectly given a default name.
241
242 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
243
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.
248
249         Kill SoapBindingUse, we only use this during validation.
250
251         Turn out Google uses RPC/Literal, and its a good demo.
252
253         (MakeResponseSerializer): OneWay is not the only
254         condition to catch;  Also void return types are not required to
255         have a response.
256
257         (MakeRequestSerializer): InParameters *might* be ref parameters,
258         deal with that here too.
259
260         Add some debugging code for tracking down missing implementation
261         details in serialization creation.
262
263         (MakeResponseSerializer): DUH.  Use the
264         ResponseName/ResponseNamespace for the member import, not the
265         RequestName and RequestNamespace.  The bugs of cut-and-paste.
266
267 2003-05-29  Miguel de Icaza  <miguel@ximian.com>
268
269         * SoapHttpClientProtocol.cs (CreateMessage): Kill.  Move
270         functionality to Invoke.
271
272         (Invoke): Use new TypeStubInfo/MethodStubInfo instead.
273
274         * SoapClientMessage.cs: Drop old mechanism, use MethodStubInfo instead.
275
276         * Methods.cs: New file.  Contains the managed for TypeStubs and
277         MethodInfoStubs.   
278
279         A MethodInfoStub contains the serializers we use for the SOAP
280         request. 
281
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.
285
286 2003-05-28  Miguel de Icaza  <miguel@ximian.com>
287
288         * LogicalMethodInfo.cs (Create): Implement begin/end method
289         pairing.
290         (Name): Implement. 
291         (EndMethodInfo): Always return end_method_info.
292
293 2003-04-30  Miguel de Icaza  <miguel@ximian.com>
294
295         * SoapHttpClientProtocol.cs: Flag the methods in the chain that
296         gets the caller method as non-inlineable.
297
298 2003-04-29  Miguel de Icaza  <miguel@ximian.com>
299
300         * SoapHttpClientProtocol.cs (CreateMessage): Extract information
301         from the method to be called.
302
303         * SoapDocumentMethodAttribute.cs: Do not initialize all the fields
304         on the attribute at bootstrap, for default values, just compute
305         them when queried.
306
307         * SoapMessage.cs (SetStage): New internal method, used to register
308         the stage as we move along the soap pipeline.
309
310         * LogicalMethodInfo.cs: Most of this is implemented.  Its only
311         missing a few bits in the Create() method.
312
313         * SoapHttpClientProtocol.cs: Begin implementation of Invoke, which
314         lead to other dependencies to be implemented.
315
316         * LogicalMethodInfo.cs: Mostly complete.  It is only missing the
317         async features (BeginInvoke/EndInvoke) on a LogicalMethodInfo.
318
319         * WebClientProtocol.cs (GetWebRequest): Track the web request, so
320         we can abort it later.
321         (Abort): Call abort on the underlying transport.
322
323 2002-08-24  Tim Coleman <tim@timcoleman.com>
324         * HttpServerProtocol.cs:
325         * WebServiceHandler.cs:
326                 Some commented code added, from analysing 
327                 an exception trace.
328         * MimeReturnWriter.cs:
329         * XmlReturnWriter.cs:
330                 New stubs added.
331
332 2002-08-23  Tim Coleman <tim@timcoleman.com>
333         * ServerProtocol.cs:
334         * SoapServerProtocol.cs:
335                 More cleanup, comparison with class status.
336         * WebServiceHandler.cs:
337         * HttpServerProtocol.cs:
338                 New stubs added.
339
340 2002-08-15  Tim Coleman <tim@timcoleman.com>
341         * ServerProtocol.cs:
342         * SoapServerProtocol.cs:
343                 Some more implementation.
344
345 2002-08-06  Tim Coleman <tim@timcoleman.com>
346         * ServerProtocol.cs:
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.
355
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:
361         * SoapMessage.cs:
362         * SoapServerMessage.cs:
363         * WebClientAsyncResult.cs:
364                 Add internal constructor, as found on class
365                 status page; modify some properties.
366
367 2002-07-23  Tim Coleman <tim@timcoleman.com>
368         * SoapException.cs: modified constructors to
369                 call base class correctly.
370         * WebClientAsyncResult: some implementation
371
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
385         * SoapMessage.cs:
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
393
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
401                 .NET.
402         * SoapMessage.cs: 
403                 Removed constructor which should not be present.
404         * SoapException.cs:
405                 Made protected fields private as they should
406                 be.
407         * SoapHeaderException.cs:
408                 Modifications to constructors to propertly
409                 call base class constructor
410
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
416
417 2002-07-22  Tim Coleman <tim@timcoleman.com>
418         * SoapHeaderException.cs:
419                 New file added
420
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 :
433         * MimeFormatter.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 :
442         * SoapException.cs :
443         * SoapExtension.cs :
444         * SoapExtensionAttribute.cs :
445         * SoapHeader.cs :
446         * SoapHeaderAttribute.cs :
447         * SoapHeaderCollection.cs :
448         * SoapHeaderDirection.cs :
449         * SoapHttpClientProtocol.cs :
450         * SoapMessage.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
469                 project status page.
470
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:
480        * MatchAttribute.cs:
481        * MimeFormatter.cs:
482        * MimeParameterReader.cs:
483        * MimeParameterWriter.cs:
484        * MimeReturnReader.cs:
485        * NopReturnReader.cs:
486        * PatternMatcher.cs:
487        * SoapClientMessage.cs:
488        * SoapDocumentMethodAttribute.cs:
489        * SoapDocumentServiceAttribute.cs:
490        * SoapException.cs:
491        * SoapExtensionAttribute.cs:
492        * SoapExtension.cs:
493        * SoapHeaderAttribute.cs:
494        * SoapHeaderCollection.cs:
495        * SoapHeader.cs:
496        * SoapHeaderDirection.cs:
497        * SoapHttpClientProtocol.cs:
498        * SoapMessage.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.
518
519 2002-07-19 Tim Coleman  <tim@timcoleman.com>
520         * ChangeLog:
521         * LogicalMethodInfo.cs:
522         * LogicalMethodTypes.cs:
523                 Add required classes to maek System.Web.Services.Description
524                 buildable.