1 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
3 * InputOrReplyRequestProcessor.cs : bogus initialization.
5 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
7 * ChannelDispatcher.cs : significant changes:
8 - simplified Open/Close async.
10 - create ServiceThrottle when it is null.
11 - Channels are accepted as much as the throttle allows, and
12 process requests when accepted an input (now it holds more than
14 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
16 - Close all channels and the listener when it is closed.
17 - Cosmetic simplification on channel acceptor delegate creation.
19 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
21 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
22 Thread.Abort()). Added some comments on throttling.
24 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
26 * ServiceThrottle.cs : implement.
28 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
30 * ChannelDispatcher.cs :
31 Add call to base (see CommunicationObject change).
33 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
35 * ChannelDispatcher.cs : handle more errors gracefully.
37 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
39 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
40 they also premise request-reply channel and broke duplex channels.
42 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
44 * ChannelDispatcher.cs : open channel before using it.
46 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
48 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
49 MessageProcessingContext.cs : reply processing is also needed by
50 non-request channels (i.e. duplex). Current code basis lacked
51 such possibility. Quick fix by adding duplex support in
54 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
56 * ChannelDispatcher.cs, SecurityHandler.cs,
57 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
58 remove default communication timeouts from several types. They
59 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
60 use it when required (it was actually *only* request processor).
62 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
64 * ChannelDispatcher.cs : wrong channel argument.
66 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
68 * DispatchRuntime.cs : some comment.
69 * ChannelDispatcher.cs : ongoing changes to handle listeners and
70 accepted channels at more precise state. Listeners are opened,
71 without accepting channels. Some setup code is done at OnOpen(),
72 while some are done at OnOpened().
74 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
76 * DispatchOperation.cs : implement GetFormatter() at service side too.
78 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
80 * OperationInvokeHandler.cs : replace MS copycat exception message.
82 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
84 * ClientRuntime.cs : fill contractType in .ctor().
86 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
88 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
90 2008-06-18 Noam Lampert <noaml@mainsoft.com>
92 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
94 2008-05-22 Noam Lampert <noaml@mainsoft.com>
96 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
97 errors. Serlialize the correct (inner) exception.
99 2008-05-22 Roei Erez <roeie@mainsoft.com>
100 * fix ContractDescription.GetContract implementation
101 * Refactor Request processing
102 * Add support for message inspectors
103 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
104 like: ReleaseServiceInstance, Open, Close...
105 * Add relevant test cases.
107 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
109 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
111 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
113 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
115 * DispatchOperation.cs: removed dependency on OperationDescription,
116 allows usage of custom channel dispatcher without endpoint was explicitly
119 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
121 * MexInstanceContextProvider.cs - remove unused code.
123 2008-04-21 Roei Erez <roeie@mainsoft.com>
125 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
127 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
129 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
130 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
131 without endpoint was explicitly built
132 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
133 communication processing, logic moved to channel dispatcher
135 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
137 * ActionMessageFilter.cs: fixed Match, match for "*" action
139 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
141 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
143 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
145 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
146 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
147 defined here instead of the other way around.
148 Added support for by-ref and out parameters.
149 Added support for XmlSerializerFormat serializaters..
150 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
152 2008-04-09 Roei Erez <roeie@mainsoft.com>
154 * Remove unused nethod from previous commit
156 2008-04-08 Roei Erez <roeie@mainsoft.com>
158 * ChannelDispatcher.cs
160 - Add support for Endpoints property
161 - Remove the hack of 'endpoint_dispatcher' field
162 * ChannelDispatcherCollection.cs
163 - Add support for 'Attach' 'Detach'
164 * EndpointDispatcher.cs
165 - By default create MatchAllMessageFilter.
167 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
169 * EndpointDispatcher.cs : we don't need AddressFilter workaround
170 from Feb. 14 anymore.
172 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
174 * EndpointDispatcher.cs : after service method call, apply outgoing
175 headers and properties to the returned message.
177 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
179 * ChannelDispatcher.cs : populate DispatchOperations before applying
180 IEndpointBehaviors so that those behaviors can modify dispatch
183 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
185 * DispatchOperation.cs : Action may be null. For such cases, use
186 MessageDirection to determine the message description.
188 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
190 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
191 Use ordinal string comparison.
192 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
194 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
196 * EndpointDispatcher.cs : moved AddressFilter application only when
197 DispatchOperation was not selected (it is sort of workaround).
199 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
201 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
202 message contract type to process result, not the parameter.
204 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
206 * SingletonInstanceContextProvider.cs : new.
208 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
210 * DefaultMessageOperationFormatter.cs : dependent changes on
211 message serializer and deserializer.
213 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
215 * DefaultMessageOperationFormatter.cs :
216 use it for deserialization as well.
218 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
220 * DefaultMessageOperationFormatter.cs : consider message contracts
221 during message serialization/deserialization.
223 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
225 * EndpointDispatcher.cs : now dispatcher-side foundation for token
226 negotiation is ready. Handle negotiation message on its own way.
227 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
228 simply raise an error and let FaultConverter do better work.
230 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
232 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
233 Handle exceptions to make into SOAP Fault, using FaultConverter.
234 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
235 * ChannelDispatcherBase.cs : removed MonoTODOs.
237 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
239 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
240 moved most of request/input processing to EndpointDispatcher.cs.
241 Also, ChannelDispatcher now contains code for behavior
244 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
246 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
249 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
251 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
252 Support OperationContext and OperationContextScope with
253 ServiceRuntimeChannel as its .ctor() input.
255 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
257 * DispatchRuntime.cs : raise an error when the DispatchOperation
258 returned null Message.
260 2006-10-18 Ankit Jain <jankit@novell.com>
262 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
263 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
264 the provider can be null.
265 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
267 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
269 * DispatchOperation.cs : slightly improved exception message.
271 2006-10-06 Ankit Jain <jankit@novell.com>
273 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
274 ReceiveRequest can return null.
276 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
278 * ClientRuntime.cs : added MaxFaultSize.
280 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
282 * ChannelDispatcher.cs : don't reject anonymous and null To.
284 2006-10-04 Ankit Jain <jankit@novell.com>
286 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
287 Fault message if message's To doesn't match the endpoint.
288 (ListenerLoopManager.CreateDestinationUnreachable): New.
289 * IInstanceContextProvider.cs: New.
290 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
292 (MetadataExchange): Implementation of IMetadataExchange.
293 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
294 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
295 if available to obtain service instance.
296 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
297 * EndpointAddressMessageFilter.cs (Match): Implement.
299 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
301 * ClientRuntime.cs : added InteractiveChannelInitializer.
303 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
305 * DispatchOperation.cs : removed extra comment.
307 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
309 * DispatchOperation.cs : workaround to send exception detail.
311 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
313 * ICallContextInitializer.cs : new file.
314 * DispatchOperation.cs : use above.
315 Not sure if it works correctly though.
317 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
319 * DispatchOperation.cs : when there is an error during
320 ProcessRequest(), wrap the exception with MessageFault and return
323 2006-08-10 Duncan Mak <duncan@novell.com>
325 * ExceptionHandler.cs: New file.
327 * ServiceThrottle.cs (MaxConnections): Renamed to
328 MaxConcurrentSessions.
329 (MaxInstances): Renamed to MaxConcurrentInstances.
331 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
333 * IInteractiveChannelInitializer.cs : new file.
335 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
337 * IErrorHandler.cs : API updates.
339 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
341 * DispatchRuntime.cs :
342 it was selecting UnhandledOperation unexpectedly.
343 * DispatchOperation.cs : added FIXME comment.
345 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
347 * DefaultMessageOperationFormatter.cs : Remove hack for non-
348 (de)serializing Message-based methods. They are now moved to
349 ClientBase and ServiceHostBase to explicitly set
350 [Serialize|Deserialize][Request|Reply].
352 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
354 * DefaultMessageOperationFormatter.cs : don't omit action on
355 SerializeRequest. Do it in SerializeReply.
357 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
359 * DefaultMessageOperationFormatter.cs : When addressing version is
360 None, then omit reply action. This logic is moved from MessageImpl.
362 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
364 * DefaultMessageOperationFormatter.cs :
365 return message, not parameter[0]. Removed some extra FIXMEs.
367 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
369 * DefaultMessageOperationFormatter.cs : when the parameter is
370 Message and the return type is Message, then do not use
373 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
375 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
376 new types in June CTP.
377 * ISharedInstanceSessionLifetime.cs:
379 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
380 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
381 ClientOperation.cs, ActionMessageFilterTable.cs,
382 EndpointAddressMessageFilterTable.cs :
383 several minor fixes for June CTP.
385 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
387 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
389 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
391 * IClientFormatter.cs, IClientMessageFormatter.cs,
392 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
393 renamed former to latter, for each.
395 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
397 * ChannelDispatcher.cs, DispatchRuntime.cs :
398 IRequestContext -> RequestContext.
400 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
402 * ChannelDispatcher.cs, IDispatchFormatter.cs,
403 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
404 DispatchOperation.cs, ClientOperation.cs :
405 some June CTP updates.
407 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
409 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
410 and DeserializeReply(). Now simple ClientBase<T> sample is working.
412 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
414 * ClientOperation.cs : added GetFormatter() to support message
415 serialization/deserialization.
416 * DispatchOperation.cs : made some internal members private
417 (they are exposed extraneously). Commented out debugging code.
419 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
421 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
422 custom BodyWriter() and use MessagePartDescription names. Now
423 return value and other (ref/out) parameters could be equivalently
424 serialized (at this method; to support them more love is needed).
426 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
428 * DefaultMessageOperationFormatter.cs :
429 Action for response is null (though it is likely conditional).
431 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
433 * DefaultMessageOperationFormatter.cs :
434 true DeserializeReply implementation using Message.CreateMessage()
435 with DataContractSerializer (not complete though).
437 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
439 * ChannelDispatcher.cs, DispatchOperation.cs,
440 ChannelDispatcherBase.cs :
441 some updated API fixes.
443 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
445 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
447 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
449 * ClientRuntime.cs : some minor collection instantiation and comments.
451 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
453 * DispatchOperation.cs : Implemented internal MessageVersion.
454 hacked instance provision by using Activator.CreateInstance.
455 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
456 be functional. Implemented SerializeReply.
458 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
460 * DispatchOperation.cs : return SOAP fault message for nonexistent
462 * DefaultMessageOperationFormatter.cs : implemented
463 DeserializeRequest(), though there is no working example.
465 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
467 * DispatchOperation.cs : implemented logic to acquire
468 OperationDescription. Added code for default IDispatchFormatter
470 * DispatchRuntime.cs : fix warning.
471 * DefaultMessageOperationFormatter.cs : new file, for default
472 IDispatchFormatter implementation (not done yet).
473 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
474 bind to this instance.
476 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
478 * ChannelDispatcherCollection.cs : added parameterless ctor().
479 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
480 Set some initial field values as proved in unit tests.
481 Request/input processing is still ongoing.
483 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
485 * ChannelDispatcher.cs
487 DispatchOperation.cs : added request/input processing code.
489 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
491 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
493 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
495 * ChannelDispatcher.cs : Added request-processing code.
497 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
499 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
501 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
503 * DispatchBehavior.cs :
504 Dependent fixes for System.IdentityModel reorgainzation.
506 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
508 * FilterNodeQuotaExceededException.cs
509 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
510 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
511 MatchNoneFilter.cs ActionFilter.cs
512 MultipleFilterMatchesException.cs Filter.cs
513 IInstanceContextInitializer.cs XPathFilter.cs
514 IDispatchOperationSelector.cs MatchAllFilter.cs
515 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
516 EndpointFilterTable.cs XPathMessageContext.cs
517 IEndpointDispatcher.cs ProxyBehavior.cs
518 ProxyOperation.cs XPathFilterTable.cs
519 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
520 IFilterTable.cs IOperationInvoker.cs :
521 moved from System.ServiceModel due to the API changes.