1 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
3 * ChannelDispatcher.cs : raise error on multiple endpoint match
4 (documented at EndpointDispatcher.FilterPriority).
6 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
8 * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
9 the channel does not have to be fired Receive() before Open().
11 2009-07-14 Atsushi Enomoto <atsushi@ximian.com>
13 * DispatchRuntime.cs : add ValidateMustUnderstand.
14 * DispatchOperation.cs : add AutoDisposeParameters.
16 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
18 * ChannelDispatcher.cs : when service instance is provided to the
19 ServiceHost, do not reject Type-less state.
21 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
23 * ChannelDispatcher.cs : do not iterate extra channel acceptance
24 and hence close channels a bit more gracefully.
26 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
28 * ChannelDispatcher.cs : instead of discarding channels, reuse them
29 unless it is closed by session manager (session manager does not
30 work, so channels are not actually closed automatically yet).
32 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
34 * SessionInstanceContextProvider.cs : new instance context provider.
36 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
38 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
39 * ChannelDispatcher.cs : do it here instead.
40 * ChannelDispatcherCollection.cs : remove TODOs.
42 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
44 * InputOrReplyRequestProcessor.cs : bogus initialization.
46 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
48 * ChannelDispatcher.cs : significant changes:
49 - simplified Open/Close async.
50 - implement OnAbort().
51 - create ServiceThrottle when it is null.
52 - Channels are accepted as much as the throttle allows, and
53 process requests when accepted an input (now it holds more than
55 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
57 - Close all channels and the listener when it is closed.
58 - Cosmetic simplification on channel acceptor delegate creation.
60 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
62 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
63 Thread.Abort()). Added some comments on throttling.
65 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
67 * ServiceThrottle.cs : implement.
69 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
71 * ChannelDispatcher.cs :
72 Add call to base (see CommunicationObject change).
74 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
76 * ChannelDispatcher.cs : handle more errors gracefully.
78 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
80 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
81 they also premise request-reply channel and broke duplex channels.
83 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
85 * ChannelDispatcher.cs : open channel before using it.
87 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
89 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
90 MessageProcessingContext.cs : reply processing is also needed by
91 non-request channels (i.e. duplex). Current code basis lacked
92 such possibility. Quick fix by adding duplex support in
95 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
97 * ChannelDispatcher.cs, SecurityHandler.cs,
98 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
99 remove default communication timeouts from several types. They
100 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
101 use it when required (it was actually *only* request processor).
103 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
105 * ChannelDispatcher.cs : wrong channel argument.
107 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
109 * DispatchRuntime.cs : some comment.
110 * ChannelDispatcher.cs : ongoing changes to handle listeners and
111 accepted channels at more precise state. Listeners are opened,
112 without accepting channels. Some setup code is done at OnOpen(),
113 while some are done at OnOpened().
115 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
117 * DispatchOperation.cs : implement GetFormatter() at service side too.
119 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
121 * OperationInvokeHandler.cs : replace MS copycat exception message.
123 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
125 * ClientRuntime.cs : fill contractType in .ctor().
127 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
129 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
131 2008-06-18 Noam Lampert <noaml@mainsoft.com>
133 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
135 2008-05-22 Noam Lampert <noaml@mainsoft.com>
137 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
138 errors. Serlialize the correct (inner) exception.
140 2008-05-22 Roei Erez <roeie@mainsoft.com>
141 * fix ContractDescription.GetContract implementation
142 * Refactor Request processing
143 * Add support for message inspectors
144 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
145 like: ReleaseServiceInstance, Open, Close...
146 * Add relevant test cases.
148 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
150 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
152 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
154 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
156 * DispatchOperation.cs: removed dependency on OperationDescription,
157 allows usage of custom channel dispatcher without endpoint was explicitly
160 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
162 * MexInstanceContextProvider.cs - remove unused code.
164 2008-04-21 Roei Erez <roeie@mainsoft.com>
166 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
168 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
170 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
171 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
172 without endpoint was explicitly built
173 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
174 communication processing, logic moved to channel dispatcher
176 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
178 * ActionMessageFilter.cs: fixed Match, match for "*" action
180 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
182 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
184 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
186 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
187 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
188 defined here instead of the other way around.
189 Added support for by-ref and out parameters.
190 Added support for XmlSerializerFormat serializaters..
191 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
193 2008-04-09 Roei Erez <roeie@mainsoft.com>
195 * Remove unused nethod from previous commit
197 2008-04-08 Roei Erez <roeie@mainsoft.com>
199 * ChannelDispatcher.cs
201 - Add support for Endpoints property
202 - Remove the hack of 'endpoint_dispatcher' field
203 * ChannelDispatcherCollection.cs
204 - Add support for 'Attach' 'Detach'
205 * EndpointDispatcher.cs
206 - By default create MatchAllMessageFilter.
208 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
210 * EndpointDispatcher.cs : we don't need AddressFilter workaround
211 from Feb. 14 anymore.
213 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
215 * EndpointDispatcher.cs : after service method call, apply outgoing
216 headers and properties to the returned message.
218 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
220 * ChannelDispatcher.cs : populate DispatchOperations before applying
221 IEndpointBehaviors so that those behaviors can modify dispatch
224 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
226 * DispatchOperation.cs : Action may be null. For such cases, use
227 MessageDirection to determine the message description.
229 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
231 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
232 Use ordinal string comparison.
233 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
235 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
237 * EndpointDispatcher.cs : moved AddressFilter application only when
238 DispatchOperation was not selected (it is sort of workaround).
240 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
242 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
243 message contract type to process result, not the parameter.
245 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
247 * SingletonInstanceContextProvider.cs : new.
249 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
251 * DefaultMessageOperationFormatter.cs : dependent changes on
252 message serializer and deserializer.
254 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
256 * DefaultMessageOperationFormatter.cs :
257 use it for deserialization as well.
259 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
261 * DefaultMessageOperationFormatter.cs : consider message contracts
262 during message serialization/deserialization.
264 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
266 * EndpointDispatcher.cs : now dispatcher-side foundation for token
267 negotiation is ready. Handle negotiation message on its own way.
268 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
269 simply raise an error and let FaultConverter do better work.
271 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
273 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
274 Handle exceptions to make into SOAP Fault, using FaultConverter.
275 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
276 * ChannelDispatcherBase.cs : removed MonoTODOs.
278 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
280 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
281 moved most of request/input processing to EndpointDispatcher.cs.
282 Also, ChannelDispatcher now contains code for behavior
285 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
287 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
290 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
292 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
293 Support OperationContext and OperationContextScope with
294 ServiceRuntimeChannel as its .ctor() input.
296 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
298 * DispatchRuntime.cs : raise an error when the DispatchOperation
299 returned null Message.
301 2006-10-18 Ankit Jain <jankit@novell.com>
303 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
304 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
305 the provider can be null.
306 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
308 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
310 * DispatchOperation.cs : slightly improved exception message.
312 2006-10-06 Ankit Jain <jankit@novell.com>
314 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
315 ReceiveRequest can return null.
317 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
319 * ClientRuntime.cs : added MaxFaultSize.
321 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
323 * ChannelDispatcher.cs : don't reject anonymous and null To.
325 2006-10-04 Ankit Jain <jankit@novell.com>
327 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
328 Fault message if message's To doesn't match the endpoint.
329 (ListenerLoopManager.CreateDestinationUnreachable): New.
330 * IInstanceContextProvider.cs: New.
331 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
333 (MetadataExchange): Implementation of IMetadataExchange.
334 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
335 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
336 if available to obtain service instance.
337 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
338 * EndpointAddressMessageFilter.cs (Match): Implement.
340 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
342 * ClientRuntime.cs : added InteractiveChannelInitializer.
344 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
346 * DispatchOperation.cs : removed extra comment.
348 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
350 * DispatchOperation.cs : workaround to send exception detail.
352 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
354 * ICallContextInitializer.cs : new file.
355 * DispatchOperation.cs : use above.
356 Not sure if it works correctly though.
358 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
360 * DispatchOperation.cs : when there is an error during
361 ProcessRequest(), wrap the exception with MessageFault and return
364 2006-08-10 Duncan Mak <duncan@novell.com>
366 * ExceptionHandler.cs: New file.
368 * ServiceThrottle.cs (MaxConnections): Renamed to
369 MaxConcurrentSessions.
370 (MaxInstances): Renamed to MaxConcurrentInstances.
372 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
374 * IInteractiveChannelInitializer.cs : new file.
376 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
378 * IErrorHandler.cs : API updates.
380 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
382 * DispatchRuntime.cs :
383 it was selecting UnhandledOperation unexpectedly.
384 * DispatchOperation.cs : added FIXME comment.
386 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
388 * DefaultMessageOperationFormatter.cs : Remove hack for non-
389 (de)serializing Message-based methods. They are now moved to
390 ClientBase and ServiceHostBase to explicitly set
391 [Serialize|Deserialize][Request|Reply].
393 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
395 * DefaultMessageOperationFormatter.cs : don't omit action on
396 SerializeRequest. Do it in SerializeReply.
398 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
400 * DefaultMessageOperationFormatter.cs : When addressing version is
401 None, then omit reply action. This logic is moved from MessageImpl.
403 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
405 * DefaultMessageOperationFormatter.cs :
406 return message, not parameter[0]. Removed some extra FIXMEs.
408 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
410 * DefaultMessageOperationFormatter.cs : when the parameter is
411 Message and the return type is Message, then do not use
414 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
416 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
417 new types in June CTP.
418 * ISharedInstanceSessionLifetime.cs:
420 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
421 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
422 ClientOperation.cs, ActionMessageFilterTable.cs,
423 EndpointAddressMessageFilterTable.cs :
424 several minor fixes for June CTP.
426 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
428 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
430 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
432 * IClientFormatter.cs, IClientMessageFormatter.cs,
433 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
434 renamed former to latter, for each.
436 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
438 * ChannelDispatcher.cs, DispatchRuntime.cs :
439 IRequestContext -> RequestContext.
441 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
443 * ChannelDispatcher.cs, IDispatchFormatter.cs,
444 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
445 DispatchOperation.cs, ClientOperation.cs :
446 some June CTP updates.
448 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
450 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
451 and DeserializeReply(). Now simple ClientBase<T> sample is working.
453 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
455 * ClientOperation.cs : added GetFormatter() to support message
456 serialization/deserialization.
457 * DispatchOperation.cs : made some internal members private
458 (they are exposed extraneously). Commented out debugging code.
460 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
462 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
463 custom BodyWriter() and use MessagePartDescription names. Now
464 return value and other (ref/out) parameters could be equivalently
465 serialized (at this method; to support them more love is needed).
467 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
469 * DefaultMessageOperationFormatter.cs :
470 Action for response is null (though it is likely conditional).
472 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
474 * DefaultMessageOperationFormatter.cs :
475 true DeserializeReply implementation using Message.CreateMessage()
476 with DataContractSerializer (not complete though).
478 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
480 * ChannelDispatcher.cs, DispatchOperation.cs,
481 ChannelDispatcherBase.cs :
482 some updated API fixes.
484 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
486 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
488 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
490 * ClientRuntime.cs : some minor collection instantiation and comments.
492 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
494 * DispatchOperation.cs : Implemented internal MessageVersion.
495 hacked instance provision by using Activator.CreateInstance.
496 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
497 be functional. Implemented SerializeReply.
499 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
501 * DispatchOperation.cs : return SOAP fault message for nonexistent
503 * DefaultMessageOperationFormatter.cs : implemented
504 DeserializeRequest(), though there is no working example.
506 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
508 * DispatchOperation.cs : implemented logic to acquire
509 OperationDescription. Added code for default IDispatchFormatter
511 * DispatchRuntime.cs : fix warning.
512 * DefaultMessageOperationFormatter.cs : new file, for default
513 IDispatchFormatter implementation (not done yet).
514 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
515 bind to this instance.
517 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
519 * ChannelDispatcherCollection.cs : added parameterless ctor().
520 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
521 Set some initial field values as proved in unit tests.
522 Request/input processing is still ongoing.
524 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
526 * ChannelDispatcher.cs
528 DispatchOperation.cs : added request/input processing code.
530 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
532 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
534 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
536 * ChannelDispatcher.cs : Added request-processing code.
538 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
540 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
542 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
544 * DispatchBehavior.cs :
545 Dependent fixes for System.IdentityModel reorgainzation.
547 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
549 * FilterNodeQuotaExceededException.cs
550 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
551 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
552 MatchNoneFilter.cs ActionFilter.cs
553 MultipleFilterMatchesException.cs Filter.cs
554 IInstanceContextInitializer.cs XPathFilter.cs
555 IDispatchOperationSelector.cs MatchAllFilter.cs
556 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
557 EndpointFilterTable.cs XPathMessageContext.cs
558 IEndpointDispatcher.cs ProxyBehavior.cs
559 ProxyOperation.cs XPathFilterTable.cs
560 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
561 IFilterTable.cs IOperationInvoker.cs :
562 moved from System.ServiceModel due to the API changes.