2003-07-22  Lluis Sanchez Gual  <lluis@ximian.com>

	* WebServiceHandler.cs: Fixed Invoke(). ParameterInfo.Position is now
	  zero-based, like in MS.NET.
	
2003-07-16  Lluis Sanchez Gual  <lluis@ximian.com>

	* SoapHttpClientProtocol.cs: Removed debug WriteLine.
	
2003-07-10  Lluis Sanchez Gual  <lluis@ximian.com>

	* HttpSoapWebServiceHandler.cs: MS puts the soap action in quotation marks??
	  Fix for this case.
	* SoapHttpClientProtocol.cs: Implemented support for asynchronous calls 
	  (BeginInvoke and EndInvoke).

2003-07-09  Lluis Sanchez Gual  <lluis@ximian.com>

	* SoapHttpClientProtocol.cs, HttpSoapWebServiceHandler.cs, Methods.cs: 
	  Added support for soap extensions. Moved some code to
	  WebServiceHelper. Implemented support for the two types of RoutingStyle. Added support
	  for In and Out headers. Improved management of exceptions.
	* SoapClientMessage.cs: code to retrieve soap headers moved to SoapMessage.
	* SoapExtension.cs: Added methods for getting and creating soap extensions.
	* SoapMessage.cs: Added methods for getting and assigning headers to an object.
	* SoapServerMessage.cs: Added setter for MethodStubInfo. Other minor fixes.
	* WebServiceHandler.cs: Added support for In and Out headers. Fixed management of exceptions.
	* WebServiceHandlerFactory.cs: Check if the request protocol is supported.
	* WebServiceHelper.cs: Added method for reading a soap request.

2003-07-04  Lluis Sanchez Gual  <lluis@ximian.com>

	* LogicalMethodInfo.cs: Fixed Invoke method. If return type is void,
	  then the result object array only contain output parameters.

	* Methods.cs: In class MethodStubInfo, added support from some server properties
	  taken from WebMethodAttribute. Now MethodStubInfo can be created without SoapDocument*
	  or SoapRpc* attributes, in which case takes default values from TypeStubInfo.
	  Added method for getting header info.
	  In class Fault: added constructor for creating a fault from a SoapException.
	  In class TypeStubInfo: new way to manage serializers for headers. Now it is possible to
	  get a header using a name and namespace (used when deserializing).

	* SoapHttpClientProtocol.cs: moved WriteSoapEnvelope method to WebServiceHelper (so it can be shared).
	  Also moved other serialization stuff to WebServiceHelper.

	* SoapMessage.cs: Added some convenient constructors and internal properties.
	  Implemented GetOutParameterValue and GetReturnValue.

	* SoapServerMessage.cs: Implemented.

	* WebServiceHandler.cs: Implemented method Invoke.

	* WebServiceHandlerFactory.cs: Basic implementation.

	* WebServiceHelper.cs: Added. Has some methods shared between client and server classes.

	* HttpSoapWebServiceHandler.cs: Added. IHttpHandler implementation for HttpSoap requests.

2003-06-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>

	* HttpWebClientProtocol.cs: handle cookies if the request is a
	HttpWebRequest. It gets the cookies set in the response and sends them
	on subsequent requests.

	* SoapHttpClientProtocol.cs:
	(GetWebRequest): just calls the base method.
	(SendRequest): set the method here.
	(Invoke): call GetWebResponse instead of request.GetResponse.

	* WebClientProtocol.cs:
	(GetWebRequest): set some properties of the request.
	(GetWebResponse): if we get a WebException containing a response, return
	that as the response and ignore the exception.
	(GetWebResponse (req, async)): only call EndGetResponse.

2003-06-14  Lluis Sanchez Gual  <lluis@ximian.com>

	* Methods.cs: Added information about headers in MethodStubInfo. Added cache of serializers
	  in TypeStubInfo so serializers for headers they can be shared by several methods.
	* SoapClientMessage.cs: Headers added in the constructor.
	* SoapMessage.cs: Added header list initialization.
	* SoapHttpClientProtocol.cs: Added support soap headers.

2003-06-13  Lluis Sanchez Gual  <lluis@ximian.com>

	* Methods.cs: Added serializer to MethodStubInfo for deserializing faults.
	* SoapHttpClientProtocol.cs: Added support for faults.

2003-06-10  Lluis Sanchez Gual  <lluis@ximian.com>

	* Methods.cs: removed handler for UnknownNode event

2003-06-05  Lluis Sanchez Gual  <lluis@ximian.com>

	* Methods.cs: added support for encoded format

2003-06-01  Miguel de Icaza  <miguel@ximian.com>

	* Methods.cs (MethodStubInfo): If creating an RPC call, pass an
	optional XmlElementAttribute with the namespace set to null;  Use
	this on each element of the request and response serializers.

	(MakeRequestSerializer, MakeResponseSerializer): Use the empty
	element for the return values.

	* SoapRpcMethodAttribute.cs: Drop the default name on the
	SoapRpcMethodAttribute, it was incorrectly given a default name.

2003-05-30  Miguel de Icaza  <miguel@ximian.com>

	* Methods.cs (MethodStubInfo): Start support for RPC style as well
	as Literal style.  Take an object instead of a
	SoapDocumentMethodAttribute, and allow the value to be also a
	SoapRpcMethodAttribute.  Pull data from both.

	Kill SoapBindingUse, we only use this during validation.

	Turn out Google uses RPC/Literal, and its a good demo.

	(MakeResponseSerializer): OneWay is not the only
	condition to catch;  Also void return types are not required to
	have a response.

	(MakeRequestSerializer): InParameters *might* be ref parameters,
	deal with that here too.

	Add some debugging code for tracking down missing implementation
	details in serialization creation.

	(MakeResponseSerializer): DUH.  Use the
	ResponseName/ResponseNamespace for the member import, not the
	RequestName and RequestNamespace.  The bugs of cut-and-paste.

2003-05-29  Miguel de Icaza  <miguel@ximian.com>

	* SoapHttpClientProtocol.cs (CreateMessage): Kill.  Move
	functionality to Invoke.

	(Invoke): Use new TypeStubInfo/MethodStubInfo instead.

	* SoapClientMessage.cs: Drop old mechanism, use MethodStubInfo instead.

	* Methods.cs: New file.  Contains the managed for TypeStubs and
	MethodInfoStubs.   

	A MethodInfoStub contains the serializers we use for the SOAP
	request. 

	* SoapClientMessage.cs: Drop parameters from the clientmessage, it
	does not belong here.  Drop oneway, we canextract that from the
	SoapDocumentMethodAttribute class that we pass.

2003-05-28  Miguel de Icaza  <miguel@ximian.com>

	* LogicalMethodInfo.cs (Create): Implement begin/end method
	pairing.
	(Name): Implement. 
	(EndMethodInfo): Always return end_method_info.

2003-04-30  Miguel de Icaza  <miguel@ximian.com>

	* SoapHttpClientProtocol.cs: Flag the methods in the chain that
	gets the caller method as non-inlineable.

2003-04-29  Miguel de Icaza  <miguel@ximian.com>

	* SoapHttpClientProtocol.cs (CreateMessage): Extract information
	from the method to be called.

	* SoapDocumentMethodAttribute.cs: Do not initialize all the fields
	on the attribute at bootstrap, for default values, just compute
	them when queried.

	* SoapMessage.cs (SetStage): New internal method, used to register
	the stage as we move along the soap pipeline.

	* LogicalMethodInfo.cs: Most of this is implemented.  Its only
	missing a few bits in the Create() method.

	* SoapHttpClientProtocol.cs: Begin implementation of Invoke, which
	lead to other dependencies to be implemented.

	* LogicalMethodInfo.cs: Mostly complete.  It is only missing the
	async features (BeginInvoke/EndInvoke) on a LogicalMethodInfo.

	* WebClientProtocol.cs (GetWebRequest): Track the web request, so
	we can abort it later.
	(Abort): Call abort on the underlying transport.

2002-08-24  Tim Coleman <tim@timcoleman.com>
	* HttpServerProtocol.cs:
	* WebServiceHandler.cs:
		Some commented code added, from analysing 
		an exception trace.
	* MimeReturnWriter.cs:
	* XmlReturnWriter.cs:
		New stubs added.

2002-08-23  Tim Coleman <tim@timcoleman.com>
	* ServerProtocol.cs:
	* SoapServerProtocol.cs:
		More cleanup, comparison with class status.
	* WebServiceHandler.cs:
	* HttpServerProtocol.cs:
		New stubs added.

2002-08-15  Tim Coleman <tim@timcoleman.com>
	* ServerProtocol.cs:
	* SoapServerProtocol.cs:
		Some more implementation.

2002-08-06  Tim Coleman <tim@timcoleman.com>
        * ServerProtocol.cs:
                Add new class as implied by class statuc page.
                SoapServerProtocol is derived from this.
        * SoapServerProtocol.cs:
                Change base class to ServerProtocol.  Add some
		properties shown by class status page.
        * SoapClientMethod.cs:
                This class should not be sealed.  Add some
		fields shown by the class status page.

2002-07-25  Tim Coleman <tim@timcoleman.com>
	* SoapClientMethod.cs:
	* SoapServerProtocol.cs:
		Add new internal classes as discovered.
	* SoapClientMessage.cs:
	* SoapMessage.cs:
	* SoapServerMessage.cs:
	* WebClientAsyncResult.cs:
		Add internal constructor, as found on class
		status page; modify some properties.

2002-07-23  Tim Coleman <tim@timcoleman.com>
	* SoapException.cs: modified constructors to
		call base class correctly.
	* WebClientAsyncResult: some implementation

2002-07-23  Tim Coleman <tim@timcoleman.com>
	* HttpGetClientProtocol.cs:
	* HttpPostClientProtocol.cs
		Implemented the GetWebRequest method
	* HttpSimpleClientProtocol:
		Some implementation of the EndInvoke method
	* HttpWebClientProtocol.cs:
		Set the UserAgent string appropriately
		Implemented the GetWebRequest method
		Implemented the GetWebResponse methods
	* SoapHttpClientProtocol.cs:
		Removed unused fields
		Implemented the GetWebRequest method
	* SoapMessage.cs:
		Implemented the EnsureStage method
	* WebClientProtocol.cs:
		Added a static constructor to construct the cache
		Implemented the Abort method
		Implemented the AddToCache, GetFromCache methods
		Implemented the GetWebRequest method
		Implemented the GetWebResponse methods

2002-07-23  Tim Coleman <tim@timcoleman.com>
	* LogicalMethodTypes.cs:
	* SoapHeaderDirection.cs:
	* SoapMessageStage.cs:
	* SoapParameterStyle.cs:
	* SoapServiceRoutingStyle.cs:
		Explicitly define values in enum to match
		.NET.
	* SoapMessage.cs: 
		Removed constructor which should not be present.
	* SoapException.cs:
		Made protected fields private as they should
		be.
	* SoapHeaderException.cs:
		Modifications to constructors to propertly
		call base class constructor

2002-07-22  Tim Coleman <tim@timcoleman.com>
	* SoapHeaderException.cs:
		Fixed name error in constructor
	* SoapUnknownHeader.cs:
		Added reference to System.Xml.Serialization

2002-07-22  Tim Coleman <tim@timcoleman.com>
	* SoapHeaderException.cs:
		New file added

2002-07-22  Tim Coleman <tim@timcoleman.com>	
	* AnyReturnReader.cs:
	* HtmlFormParameterReader.cs :
	* HtmlFormParameterWriter.cs :
	* HttpGetClientProtocol.cs :
	* HttpMethodAttribute.cs :
	* HttpPostClientProtocol.cs :
	* HttpSimpleClientProtocol.cs :
	* HttpWebClientProtocol.cs :
	* LogicalMethodInfo.cs :
	* LogicalMethodTypes.cs :
	* MatchAttribute.cs :
	* MimeFormatter.cs :
	* MimeParameterReader.cs :
	* MimeParameterWriter.cs :
	* MimeReturnReader.cs :
	* NopReturnReader.cs :
	* PatternMatcher.cs :
	* SoapClientMessage.cs :
	* SoapDocumentMethodAttribute.cs :
	* SoapDocumentServiceAttribute.cs :
	* SoapException.cs :
	* SoapExtension.cs :
	* SoapExtensionAttribute.cs :
	* SoapHeader.cs :
	* SoapHeaderAttribute.cs :
	* SoapHeaderCollection.cs :
	* SoapHeaderDirection.cs :
	* SoapHttpClientProtocol.cs :
	* SoapMessage.cs :
	* SoapMessageStage.cs :
	* SoapParameterStyle.cs :
	* SoapRpcMethodAttribute.cs :
	* SoapRpcServiceAttribute.cs :
	* SoapServerMessage.cs :
	* SoapServiceRoutingStyle.cs :
	* SoapUnknownHeader.cs :
	* TextReturnReader.cs :
	* UrlEncodedParameterWriter.cs :
	* UrlParameterReader.cs :
	* UrlParameterWriter.cs :
	* ValueCollectionParameterReader.cs :
	* WebClientAsyncResult.cs :
	* WebClientProtocol.cs :
	* WebServiceHandlerFactory.cs :
	* XmlReturnReader.cs :
		Add missing methods and attributes to make as few missing
		things as possible in this namespace.  This is from the
		project status page.

2002-07-20 Tim Coleman  <tim@timcoleman.com>
       * AnyReturnReader.cs:
       * HtmlFormParameterReader.cs:
       * HtmlFormParameterWriter.cs:
       * HttpGetClientProtocol.cs:
       * HttpMethodAttribute.cs:
       * HttpPostClientProtocol.cs:
       * HttpSimpleClientProtocol.cs:
       * HttpWebClientProtocol.cs:
       * MatchAttribute.cs:
       * MimeFormatter.cs:
       * MimeParameterReader.cs:
       * MimeParameterWriter.cs:
       * MimeReturnReader.cs:
       * NopReturnReader.cs:
       * PatternMatcher.cs:
       * SoapClientMessage.cs:
       * SoapDocumentMethodAttribute.cs:
       * SoapDocumentServiceAttribute.cs:
       * SoapException.cs:
       * SoapExtensionAttribute.cs:
       * SoapExtension.cs:
       * SoapHeaderAttribute.cs:
       * SoapHeaderCollection.cs:
       * SoapHeader.cs:
       * SoapHeaderDirection.cs:
       * SoapHttpClientProtocol.cs:
       * SoapMessage.cs:
       * SoapMessageStage.cs:
       * SoapParameterStyle.cs:
       * SoapRpcMethodAttribute.cs:
       * SoapRpcServiceAttribute.cs:
       * SoapServerMessage.cs:
       * SoapServiceRoutingStyle.cs:
       * SoapUnknownHeader.cs:
       * TextReturnReader.cs:
       * UrlEncodedParameterWriter.cs:
       * UrlParameterReader.cs:
       * UrlParameterWriter.cs:
       * ValueCollectionParameterReader.cs:
       * WebClientAsyncResult.cs:
       * WebClientProtocol.cs:
       * WebServiceHandlerFactory.cs:
       * XmlReturnReader.cs:
               Added new stubbs and some implementation
       * LogicalMethodTypes.cs:
               Added [Serializable] attribute which was missing.

2002-07-19 Tim Coleman  <tim@timcoleman.com>
	* ChangeLog:
	* LogicalMethodInfo.cs:
	* LogicalMethodTypes.cs:
		Add required classes to maek System.Web.Services.Description
		buildable.
