2011-09-07  Sebastien Pouliot  <sebastien@xamarin.com>

	Add null-check on 'partDesc'. Fix bug #612 (WCF regression)

2011-08-24  Atsushi Eno  <atsushi@ximian.com>

	When there is void return, the common message formatter should
	ignore it.

	This case occurs when MessageContract is used and there is no
	member for the return value.

2011-08-24  Atsushi Eno  <atsushi@ximian.com>

	This filter should ignore port, and should not filter out
	anonymous URIs.

2011-08-02  Nicolas GRAZIANO  <nicolas.graziano@ineo-gdfsuez.com>

	TypedMessageConverter do not take into account the xml attribute
	which modify the serialization.

	Correction and Unit Test.

2011-08-02  Atsushi Eno  <atsushi@ximian.com>

	Fill/reflect ReturnValue to and from corresponding message part.

	This may have fixed bug #41.

2011-06-28  Atsushi Eno  <atsushi@ximian.com>

	Implement support for Stream param with WebHttpBinding raw content
	format.

2011-04-25  Atsushi Eno  <atsushi@ximian.com>

	Enable environment-controled output on non-moon profile too. Add
	error logging.

2011-04-20  Atsushi Eno  <atsushi@ximian.com>

	Get real fix for bug #687902. Revert request processor
	IDisposable.

	and handle session shutdown when creating InstanceContext. Also
	add note on DisposeInstance(), which got me stuck.

2011-04-20  Atsushi Eno  <atsushi@ximian.com>

	Ongoing service channel closing fix and session management in
	ChannelDispatcher.

	It is part of bugfix 687902.

	To get the bug fixed, the new "using" sections in
	ChannelDispatcher.cs to explicitly dispose channels. But this
	causes regression in PerSession-based tests. So some new session
	management code is (likely) required as well.

	It will also alter "mixed" MaxConcurrentCalls and
	MaxConcurrentSessions with correct management code.

2011-04-08  Atsushi Eno  <atsushi@ximian.com>

	Add XmlSerializerFormatAttribute support in mobile profiles.

	Unlike moonlight, XmlSerializer is in the framework lib (sys.xml),
	so we don't have to split them out to Sys.Xml.Serialization.dll.

2011-04-08  Atsushi Eno  <atsushi@ximian.com>

	Split XmlMessagesFormatter out. It is for use in
	Sys.Xml.Serialization.dll.

	XmlMessagesFormatter will be used in Sys.Xml.Serialization.dll and
	this type should not be excluded by !NET_2_1 or !MOONLIGHT. It is
	not doable if this class is in BaseMessagesFormatter.cs.

2011-04-07  Atsushi Eno  <atsushi@ximian.com>

	Some XmlSerializerFormatAttribute and
	XmlSerializerOperationBehavior refactoring.

2011-03-16  Atsushi Eno  <atsushi@ximian.com>

	Add endpoint behavior support in NET_2_1, which involved not a few
	additions.

2011-03-14  Peter Gerbrandt  <pg@viadux.de>

	Apply DataContractSerializerOperationBehavior.

2011-03-07  Atsushi Eno  <atsushi@ximian.com>

	Replace SRE-based client proxy generator with RealProxy.

	Now PE verified workaround should be unnecessary.

2011-02-24  Atsushi Eno  <atsushi@ximian.com>

	Another fix to not write null header. Add UniqueId deserialization
	workaround.

2011-02-18  Atsushi Eno  <atsushi@ximian.com>

	Do not try to serialize null header item.

2011-02-15  Atsushi Eno  <atsushi@ximian.com>

	Message headers are now serialized and deserialized for
	MessageHeaderDescription.

2011-02-09  Atsushi Eno  <atsushi@ximian.com>

	Support ServiceKnownTypes. Fixed another case on bug #652331.

2011-02-07  Atsushi Eno  <atsushi@ximian.com>

	Open and close client/service runtime channels in chains. Fixed
	bug #663278.

2011-02-07  Atsushi Eno  <atsushi@ximian.com>

	handle IsTerminating.

2011-02-04  Atsushi Eno  <atsushi@ximian.com>

	Callback contract should be distinguished from others for
	DispatchOperation.

2011-01-21  Atsushi Eno  <atsushi@ximian.com>

	Fix regression, avoid null key.

2011-01-21  Atsushi Eno  <atsushi@ximian.com>

	And rename source file name.

2011-01-21  Atsushi Eno  <atsushi@ximian.com>

	Rename InstanceBhavior, too ambiguous among IXxxBehavior
	interfaces.

2011-01-21  Atsushi Eno  <atsushi@ximian.com>

	Sessions should not be keyed by MessageId but be done by channel
	SessionId.

2010-10-20  Marek Habersack  <grendel@twistedcode.net>

	[wcf] make /js and /jsdebug dispatchers work.

	There were several issues here:

	- The IChannelDispatcherBoundListener was defined twice, in two
	different namespaces, and it caused code in
	ChannelDispatcher.Attach not to set its associated listener's
	ChannelDispatcher property to the correct value. This, in turn,
	caused incorrect HttpListenerManagerTable operation, where it
	would put the "/js" and "/jsdebug" dispatchers in separate
	HttpListenerManagers, instead of in the main (base) service's one.
	- After fixing the above, it turned out that SvcHttpHandler
	selected the manager based on the host's base address, when it
	should first try to find one whose URL matches the current request
	exactly.

2010-09-29  Atsushi Eno  <atsushi@ximian.com>

	Fix the issue that callback contract often gets confused by
	picking unexpected contract type.

	The problem is that DispatchRuntime.Type is a service
	implementation type that could implement two or more contract
	interfaces, and it was in random order how ServiceProxyGenerator
	picks up the contract type. Now it looks for correct contract type
	instead of the service type by exactly looking for the target
	contract in the endpoint (dispatcher).

2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>

	* InputOrReplyProcessor.cs : remove SecurityHandler. WS-Trust must
	  be handled before endpoint dispatching (it must not pass contract
	  filter) and doesn't make sense to be here.
	* SecurityHandler.cs : move to old-code.

2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>

	* SecurityHandler.cs : add new using. Though this class will vanish.

2010-07-12  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : apply ErrorHandlers to IInputChannel too.

2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>

	* PostReceiveRequestHandler.cs : don't replace correctly passed-by-
	  reference Message with wrong, consumed Message.

2010-07-09  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : do not swallow exception during
	  RequestContext.get_RequestMessage() and thus return SOAP Fault for
	  MessageSecurityException to the client.

2010-07-08  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : support ErrorHandlers.

2010-07-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs :
	  moved IChannelDispatcherBoundListener from HttpChannelListener.cs.

2010-07-02  Atsushi Enomoto  <atsushi@ximian.com>

	* MessageProcessingContext.cs : update possibly-updated ReplyMessage
	  to send, by message inspectors. Fix by Clovis Ribeiro, should fix
	  bug #619534.

2010-06-24  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : enable service throttling again.
	  This time Http(Listener), ASP.NET and TCP listeners all work.

2010-06-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : raise an error if IChannelListener is
	  already opened when it's opening.

2010-06-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ServiceThrottle.cs : take ChannelDispatcher to validate setters.

2010-06-17  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : add simple bool field to mark for mex channel.

2010-06-17  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : MessageVersion check is moved to
	  ServiceHostBase.

2010-06-14  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs, MessageProcessingContext.cs :
	  ChannelDispatcher may be null, so check its availability before
	  using it. Don't use it, when possible.
	* DispatchOperation.cs : remove unused member.

2010-06-04  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs, BaseMessagesFormatter.cs:
	  Now MessageDescription.Direction is differentiated from "IsRequest"
	  property, to precisely identify request/reply in callbacks. Also
	  now we don't have to create extraneous ContractDescription for
	  callbacks.

2010-06-03  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs, DispatchRuntime.cs, ClientRuntime.cs :
	  now Callback[Dispatch|Client]Runtime properties are always filled
	  so that users can configure the callback runtimes (not sure such
	  configured runtimes work fine yet, but it is a required step).
	* InputOrReplyRequestProcessor.cs : instead of HasCallbackRuntime
	  hack, use CallbackClientRuntime.CallbackContractType for checking
	  callback existence.

2010-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientOperation.cs, DispatchOperation.cs : remove extra fields.

2010-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientOperation.cs : do the same for client side too.

2010-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : on callback channels ChannelDispatcher is
	  not available. Wait for something like ClientRuntime.ChannelFactory.

2010-05-28  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : some comments.
	* DispatchOperation.cs : remove on-the-fly dependency on 
	  OperationDescription. Add immutable check on each property.

2010-05-27  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : fill CallbackDispatchRuntime. Add some
	  FIXME comments for ongoing fixes.

2010-05-26  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : assign RelatesTo header item here.

2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : disable slottling again :( It still fails
	  to process concurrent requests if there is service metadata channel
	  and MaxConcurrentSessions > 1 on non-ASP.NET channels.

2010-05-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : enable throttling again. Though issues
	  regarding parallel request is not here (multiple dispatchers
	  can accept a channels for each), and HTTP channels do not accept
	  more than one channel at a time anyways.

2010-04-28  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : add workaround to set ChannelDispatcher
	  to IChannelListener. Avoid null ChannelDispatcher in http listener.

2010-04-20  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : workaround NRE issue in AsyncCallTest.
	  The original code was worse than this workaround.

2010-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointAddressMessageFilter.cs : check null arg. Return false for
	  no To header case and do not result in NRE.f

2010-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* BaseMessagesFormatter.cs : hasParameter check is incorrectly
	  restrictive to reject some kinds of pairs.

2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>

	* FaultContractInfo.cs : add serializer property.

2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientOperation.cs : do not automatically fill FaultContractInfos.

2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : implement FaultContractInfos support.
	* ErrorProcessingHandler.cs : update comment. It is not relevant.

2010-04-02  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : fill FaultContractInfos.
	* DispatchOperation.cs : do not fill them dynamically/automatically.
	* ErrorProcessingHandler.cs : added some FIXME notes.

2010-03-30  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : differentiate EndpointNotFound and
	  ActionNotSupported so that FaultConverter can create appropriate
	  fault messages. Removed extra filter condition on null To item.
	  And create fault messages on *any* server side error, do not let
	  request client infinitely wait for the response until timeout.

	  (RunDestinationUnreachableTest() is still not working but it works
	  when it is SOAP 1.2.)

2010-03-30  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : for faults, use fault namespace, not that of
	  ReplyAction. Added FIXME comment regarding dispatcher.

2010-03-25  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : removed unused code.

2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : return EndpointDispatcher at initializing
	  for internal use. Add some locks. Patch by Matt Dargavel.

2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : fix wrong method call in open_delegate.
	  Patch by Matt Dargavel.

2010-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : give the actual exception message instead
	  of "error occured".

2010-03-18  Atsushi Enomoto  <atsushi@ximian.com>

	* XPathMessageContext.cs : implement.
	* XPathMessageFilterTable.cs : add some missing overloads.

2010-02-26  Atsushi Enomoto  <atsushi@ximian.com>

	* InputOrReplyRequestProcessor.cs : now ServiceRuntimeChannel is
	  moved to fake public namespace.

2010-02-18  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : revert previous change - it could result
	  in blocking some threads and block nunit completion.

2010-02-04  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : now I can enable service throttling to
	  handle more than one concurrent channels as ASP.NET reply channel
	  got fixed.

2010-01-25  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : actually instance context provider could be
	  null through the entire service run.

	  Fixed all current nunit failures!

2010-01-22  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : do not try to iterate channel acceptor when
	  it is being closed.

2010-01-19  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : another error audit.

2010-01-13  Atsushi Enomoto  <atsushi@ximian.com>

	* FaultContractInfo.cs : implement.
	* DispatchOperation.cs, ClientOperation.cs: fill Faults.

2010-01-08  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs, InputOrReplyRequestProcessor.cs :
	  Pass service type to correctly retrieve ServiceContractAttribute
	  from the service type, not callback type.

2010-01-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : make sure to unlock channel acceptor wait
	  handle when the delegated method resulted in an error.

2009-12-26  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : close such channels that failed to receive
	  request or input.

2009-12-26  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : shortened code and scattered monotodos.

2009-12-10  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : fix async operation handling. Since
	  the entire handler chain is designed to be in synchronous, one
	  single handler must not leave its work incomplete (async). Just
	  wait for the async process completion within the handler.

2009-12-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : fix regression; ServiceBehaviorAttribute
	  could be set explicitly null.

2009-12-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : handle AddressFilterMode (.Any only yet).
	* OperationInvokerHandler.cs : fix wrong IAsyncResult use.

2009-12-07  Atsushi Enomoto  <atsushi@ximian.com>

	* InstanceBehavior.cs : allow nonpublic instance.
	* DefaultOperationInvoker.cs : do use IsSynchronous correctly.

2009-10-22  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : disable concurrent channel acceptance
	  until it gets working fine.

2009-10-16  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : fix warnings.

2009-10-16  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientOperation.cs, ClientRuntime.cs : another couple of changes
	  are required to not use non-SL types.

2009-10-16  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : enable Operations property on monotouch.
	  Hopefully it will enable us to build WebHttpBinding.

2009-10-09  Atsushi Enomoto  <atsushi@ximian.com>

	 * ChannelDispatcher.cs : OnOpened/OnOpening constraints related
	   changes were required here too. Actually it simplified code.

2009-10-06  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : a bit more explaining message.

2009-10-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : make sure to close, *and* abort channels
	  in case they failed to close. Also consider close timeouts.
	  Rename a field to make less confusing.

2009-09-17  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, EndpointDispatcher.cs :
	  when an EndpointDispatcher is added to ChannelDispatcher, its
	  ChannelDispatcher property is automatically filled. To do this,
	  create a derived collection type for Endpoints (that's what .NET
	  does). Remove extra InitializeEndpoint() argument.

2009-09-17  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : make error message a bit verbose.

2009-09-16  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : make sure to close the request context,
	  some channels such as http keeps opening it. Patch by Levi Bard.
	  Fixed bug #533776.

2009-09-14  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : do not try to wait for channel closer
	  handle when the loop is not started yet. This fixes lengthy wait
	  in the nunit tests.

2009-09-11  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : AddressFilter is always non-null.
	* DispatchRuntime.cs : CallbackClientRuntime seems to be created even
	  for non-callback dispatchers. Fixing this also results in fixes in
	  couple of nunit regressions.
	* InputOrReplyRequestProcessor.cs : the change above required fix
	  here too (it has null check).

2009-09-11  Atsushi Enomoto  <atsushi@ximian.com>

	* BaseMessagesFormatter.cs, DefaultOperationInvoker.cs:
	  Fix the crash that ref parameter in contract methods caused.

2009-09-04  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs, ReplyHandler.cs :
	  - Eliminate ReplyHandler use. What is does is simple reply, while
	    it brings inconsistency between sync and async models.
	    What reply handler used to do are now integrated.
	  - Support ErrorHandlers and InputSessionShutdownHandlers.
	    Actually ErrorHandlers were processed at wrong place and they
	    weren't called where they are expected.
	* InputOrReplyRequestProcessor.cs : hence eliminated ReplyHandler.
	* BaseRequestProcessor.cs : add FIXME notes on ErrorHandlers.

2009-09-04  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : remove obsoleted method.

2009-09-02  Atsushi Enomoto  <atsushi@ximian.com>

	* BaseMessagesFormatter.cs :
	  implement XmlBodyWriter.OnCreateBufferedCopy().

2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>

	* CallbackInstanceContextProvider.cs : new instance context provider
	  used by duplex client dispatcher.

2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>

	* SecurityHandler.cs : skip callback duplex blocker.

2009-08-24  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs, ChannelDispatcher.cs : differentiate
	  service dispatch and callback client dispatch at initialization.

2009-08-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : also made reference to host optional.

2009-08-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : isolated loop manager class from parent,
	  as well as moved some code from parent.

2009-08-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcherCollection.cs : remove extra members.

2009-08-21  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, EndpointDispatcher.cs :
	  moved some initialization code from ServiceHostBase, to start
	  reducing dependencies on ServiceHostBase.

2009-08-20  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : handle unknown message in host event.

2009-08-17  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : do not try to create wrong filter.

2009-08-14  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : EndpointNotFoundException message could
	  be a bit kindful.

2009-08-11  Atsushi Enomoto  <atsushi@ximian.com>

	* IOperationInvoker.cs : fix interface.
	* DefaultOperationInvoker.cs : refresh implementation of the above.
	* BaseMessagesFormatter.cs, OperationInvokerHandler.cs :
	  dependent changes for above.

2009-08-07  Atsushi Enomoto  <atsushi@ximian.com>

	* InputOrReplyRequestProcessor.cs : now it could return an instance
	  of dynamically generated proxy over DuplexServiceRuntimeChannel.

2009-08-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : oops, it should have been committed at a time.
	  Change .ctor() args. Make some properties auto.

2009-08-07  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : callback runtime is set later.

2009-08-06  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs :
	  .ctor() just needs contract. Fill some properties.

2009-08-04  Atsushi Enomoto  <atsushi@ximian.com>

	* ReplyHandler.cs : there is better way to check IsOneWay.

2009-08-04  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokerHandler.cs : One way operation has no reply.
	* ReplyHandler.cs : ditto.

2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : raise error on multiple endpoint match
	  (documented at EndpointDispatcher.FilterPriority).

2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : move Open() inside acceptor lock, so that
	  the channel does not have to be fired Receive() before Open().

2009-07-14  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : add ValidateMustUnderstand.
	* DispatchOperation.cs : add AutoDisposeParameters.

2009-07-02  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : when service instance is provided to the
	  ServiceHost, do not reject Type-less state.

2009-06-29  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : do not iterate extra channel acceptance
	  and hence close channels a bit more gracefully.

2009-06-25  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : instead of discarding channels, reuse them
	  unless it is closed by session manager (session manager does not
	  work, so channels are not actually closed automatically yet).

2009-06-25  Atsushi Enomoto  <atsushi@ximian.com>

	* SessionInstanceContextProvider.cs : new instance context provider.

2009-06-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : do not fill InstanceContextProvider here.
	* ChannelDispatcher.cs : do it here instead.
	* ChannelDispatcherCollection.cs : remove TODOs.

2009-06-23  Atsushi Enomoto  <atsushi@ximian.com>

	* InputOrReplyRequestProcessor.cs : bogus initialization.

2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : significant changes:
	  - simplified Open/Close async.
	  - implement OnAbort().
	  - create ServiceThrottle when it is null.
	  - Channels are accepted as much as the throttle allows, and
	    process requests when accepted an input (now it holds more than
	    one channel).
	  - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
	    for async pattern.
	  - Close all channels and the listener when it is closed.
	  - Cosmetic simplification on channel acceptor delegate creation.

2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : avoid NRE (actually it should eliminate
	  Thread.Abort()). Added some comments on throttling.

2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>

	* ServiceThrottle.cs : implement.

2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs :
	  Add call to base (see CommunicationObject change).

2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : handle more errors gracefully.

2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>

	* ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
	  they also premise request-reply channel and broke duplex channels.

2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : open channel before using it.

2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>

	* ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
	  MessageProcessingContext.cs : reply processing is also needed by
	  non-request channels (i.e. duplex). Current code basis lacked
	  such possibility. Quick fix by adding duplex support in
	  ReplyHandler so far.

2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, SecurityHandler.cs,
	  InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
	  remove default communication timeouts from several types. They
	  bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
	  use it when required (it was actually *only* request processor).

2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : wrong channel argument.

2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : some comment.
	* ChannelDispatcher.cs : ongoing changes to handle listeners and
	  accepted channels at more precise state. Listeners are opened,
	  without accepting channels. Some setup code is done at OnOpen(),
	  while some are done at OnOpened().

2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : implement GetFormatter() at service side too.

2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>

	* OperationInvokeHandler.cs : replace MS copycat exception message.

2009-02-26  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : fill contractType in .ctor().

2009-02-04  Atsushi Enomoto  <atsushi@ximian.com>

	* BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().

2008-06-18  Noam Lampert <noaml@mainsoft.com>

	* ChannelDispatcher.cs: Avoid aborting host process on faulty input message.

2008-05-22  Noam Lampert <noaml@mainsoft.com>

	* OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
	  errors. Serlialize the correct (inner) exception.
	  
2008-05-22  Roei Erez  <roeie@mainsoft.com>
	* fix ContractDescription.GetContract implementation
	* Refactor Request processing
	* Add support for message inspectors
	* Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
	like: ReleaseServiceInstance, Open, Close...
	* Add relevant test cases.

2008-05-01  Eyal Alaluf <eyala@mainsoft.com>

	* BaseMessagesFormatter.cs: Handle methods with out parameters that return
	  void.
	* DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.

2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>

	* DispatchOperation.cs: removed dependency on OperationDescription, 
	allows usage of custom channel dispatcher without endpoint was explicitly 
	built

2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>

	* MexInstanceContextProvider.cs - remove unused code.

2008-04-21  Roei Erez <roeie@mainsoft.com>

	* ChannelDispatcher.cs - Change order of Dispatcher shutdown

2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on 
	ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
	without endpoint was explicitly built
	* EndpointDispatcher.cs: Filters lazy evaluation, refactored
	communication processing, logic moved to channel dispatcher

2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* ActionMessageFilter.cs: fixed Match, match for "*" action

2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>

	* DispatchOperation.cs: fixed ProcessRequest, fault message creation

2008-04-10  Eyal Alaluf <eyala@mainsoft.com>

	* DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
	* BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
	  defined here instead of the other way around.
	  Added support for by-ref and out parameters.
	  Added support for XmlSerializerFormat serializaters..
	* DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create

2008-04-09  Roei Erez <roeie@mainsoft.com>

	* Remove unused nethod from previous commit

2008-04-08  Roei Erez <roeie@mainsoft.com>

	* ChannelDispatcher.cs
	  - fix 'Attach' logic
	  - Add support for Endpoints property
	  - Remove the hack of 'endpoint_dispatcher' field
	* ChannelDispatcherCollection.cs
	  - Add support for 'Attach' 'Detach'
	* EndpointDispatcher.cs
	  - By default create MatchAllMessageFilter.

2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : we don't need AddressFilter workaround
	  from Feb. 14 anymore.

2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : after service method call, apply outgoing
	  headers and properties to the returned message.

2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : populate DispatchOperations before applying
	  IEndpointBehaviors so that those behaviors can modify dispatch
	  operations.

2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : Action may be null. For such cases, use 
	  MessageDirection to determine the message description.

2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
	  Use ordinal string comparison.
	* PrefixEndpointAddressMessageFilter.cs : implement Match() (both).

2008-02-14  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : moved AddressFilter application only when
	  DispatchOperation was not selected (it is sort of workaround).

2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
	  message contract type to process result, not the parameter.

2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>

	* SingletonInstanceContextProvider.cs : new.

2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : dependent changes on
	  message serializer and deserializer.

2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs :
	  use it for deserialization as well.

2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : consider message contracts
	  during message serialization/deserialization.

2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : now dispatcher-side foundation for token
	  negotiation is ready. Handle negotiation message on its own way.
	* DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
	  simply raise an error and let FaultConverter do better work.

2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : use ErrorHandlers when error was raised.
	  Handle exceptions to make into SOAP Fault, using FaultConverter.
	* ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
	* ChannelDispatcherBase.cs : removed MonoTODOs.

2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
	  moved most of request/input processing to EndpointDispatcher.cs.
	  Also, ChannelDispatcher now contains code for behavior
	  initialization.

2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : some cosmetic refactoring on error handling
	  with comments.

2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
	  Support OperationContext and OperationContextScope with
	  ServiceRuntimeChannel as its .ctor() input.

2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs : raise an error when the DispatchOperation
	  returned null Message.

2006-10-18  Ankit Jain  <jankit@novell.com>

	* MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
	* DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
	the provider can be null.
	* EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.

2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : slightly improved exception message.

2006-10-06  Ankit Jain  <jankit@novell.com>

	* ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
	ReceiveRequest can return null.

2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : added MaxFaultSize.

2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : don't reject anonymous and null To.

2006-10-04  Ankit Jain  <jankit@novell.com>

	* ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a 
	Fault message if message's To doesn't match the endpoint.
	(ListenerLoopManager.CreateDestinationUnreachable): New.
	* IInstanceContextProvider.cs: New.
	* MexInstanceContextProvider.cs: New. InstanceContextProvider for
	MetadataExchange.
	(MetadataExchange): Implementation of IMetadataExchange.
	* DispatchRuntime.cs (InstanceContextProvider): Add missing property.
	* DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
	if available to obtain service instance.
	* EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
	* EndpointAddressMessageFilter.cs (Match): Implement.

2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : added InteractiveChannelInitializer.

2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : removed extra comment.

2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : workaround to send exception detail.

2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>

	* ICallContextInitializer.cs : new file.
	* DispatchOperation.cs : use above.
	  Not sure if it works correctly though.

2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : when there is an error during
	  ProcessRequest(), wrap the exception with MessageFault and return
	  a fault message.

2006-08-10  Duncan Mak  <duncan@novell.com>

	* ExceptionHandler.cs: New file.

	* ServiceThrottle.cs (MaxConnections): Renamed to
	MaxConcurrentSessions.
	(MaxInstances): Renamed to MaxConcurrentInstances.

2006-07-27  Atsushi Enomoto  <atsushi@ximian.com>

	* IInteractiveChannelInitializer.cs : new file.

2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>

	* IErrorHandler.cs : API updates.

2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchRuntime.cs :
	  it was selecting UnhandledOperation unexpectedly.
	* DispatchOperation.cs : added FIXME comment.

2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : Remove hack for non-
	  (de)serializing Message-based methods. They are now moved to
	  ClientBase and ServiceHostBase to explicitly set
	  [Serialize|Deserialize][Request|Reply].

2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : don't omit action on
	  SerializeRequest. Do it in SerializeReply.

2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : When addressing version is
	  None, then omit reply action. This logic is moved from MessageImpl.

2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs :
	  return message, not parameter[0]. Removed some extra FIXMEs.

2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : when the parameter is
	  Message and the return type is Message, then do not use
	  XmlObjectSerializer.

2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>

	* PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
	  new types in June CTP.
	* ISharedInstanceSessionLifetime.cs:
	  removed in June CTP.
	* ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
	  DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
	  ClientOperation.cs, ActionMessageFilterTable.cs,
	  EndpointAddressMessageFilterTable.cs :
	  several minor fixes for June CTP.

2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : MessageFault.DefaultAction vanished.

2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>

	* IClientFormatter.cs, IClientMessageFormatter.cs,
	  IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
	  renamed former to latter, for each.

2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, DispatchRuntime.cs :
	  IRequestContext -> RequestContext.

2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, IDispatchFormatter.cs,
	  DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
	  DispatchOperation.cs, ClientOperation.cs :
	  some June CTP updates.

2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : implement SerializeRequest()
	  and DeserializeReply(). Now simple ClientBase<T> sample is working.

2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientOperation.cs : added GetFormatter() to support message
	  serialization/deserialization.
	* DispatchOperation.cs : made some internal members private
	  (they are exposed extraneously). Commented out debugging code.

2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs : In SerializeReply(), use
	  custom BodyWriter() and use MessagePartDescription names. Now
	  return value and other (ref/out) parameters could be equivalently
	  serialized (at this method; to support them more love is needed).

2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs :
	  Action for response is null (though it is likely conditional).

2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>

	* DefaultMessageOperationFormatter.cs :
	  true DeserializeReply implementation using Message.CreateMessage()
	  with DataContractSerializer (not complete though).

2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs, DispatchOperation.cs,
	  ChannelDispatcherBase.cs :
	  some updated API fixes.

2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>

	* EndpointDispatcher.cs : moved from Sys.ServiceModel.

2006-04-20  Atsushi Enomoto  <atsushi@ximian.com>

	* ClientRuntime.cs : some minor collection instantiation and comments.

2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : Implemented internal MessageVersion.
	  hacked instance provision by using Activator.CreateInstance.
	* DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
	  be functional. Implemented SerializeReply.

2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : return SOAP fault message for nonexistent
	  request Action.
	* DefaultMessageOperationFormatter.cs : implemented
	  DeserializeRequest(), though there is no working example.

2006-03-17  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchOperation.cs : implemented logic to acquire
	  OperationDescription. Added code for default IDispatchFormatter
	  implementation.
	* DispatchRuntime.cs : fix warning.
	* DefaultMessageOperationFormatter.cs : new file, for default
	  IDispatchFormatter implementation (not done yet).
	* ChannelDispatcher.cs : create EndpointDispatcher in Attach and
	  bind to this instance.

2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcherCollection.cs : added parameterless ctor().
	* ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
	  Set some initial field values as proved in unit tests.
	  Request/input processing is still ongoing.

2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs
	  DispatchRuntime.cs
	  DispatchOperation.cs : added request/input processing code.

2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.

2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : Added request-processing code.

2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>

	* ChannelDispatcher.cs : implement Attach() and Detach() more to work.

2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>

	* DispatchBehavior.cs : 
	  Dependent fixes for System.IdentityModel reorgainzation.

2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>

	* FilterNodeQuotaExceededException.cs
	  FilterInvalidBodyAccessException.cs DispatchBehavior.cs
	  DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
	  MatchNoneFilter.cs ActionFilter.cs
	  MultipleFilterMatchesException.cs Filter.cs
	  IInstanceContextInitializer.cs XPathFilter.cs
	  IDispatchOperationSelector.cs MatchAllFilter.cs
	  ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
	  EndpointFilterTable.cs XPathMessageContext.cs
	  IEndpointDispatcher.cs ProxyBehavior.cs
	  ProxyOperation.cs XPathFilterTable.cs
	  EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
	  IFilterTable.cs IOperationInvoker.cs :
	  moved from System.ServiceModel due to the API changes.
