2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Dispatcher / ChangeLog
1 2009-06-23  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * InputOrReplyRequestProcessor.cs : bogus initialization.
4
5 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
6
7         * ChannelDispatcher.cs : significant changes:
8           - simplified Open/Close async.
9           - implement OnAbort().
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
13             one channel).
14           - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
15             for async pattern.
16           - Close all channels and the listener when it is closed.
17           - Cosmetic simplification on channel acceptor delegate creation.
18
19 2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>
20
21         * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
22           Thread.Abort()). Added some comments on throttling.
23
24 2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * ServiceThrottle.cs : implement.
27
28 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
29
30         * ChannelDispatcher.cs :
31           Add call to base (see CommunicationObject change).
32
33 2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>
34
35         * ChannelDispatcher.cs : handle more errors gracefully.
36
37 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
38
39         * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
40           they also premise request-reply channel and broke duplex channels.
41
42 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
43
44         * ChannelDispatcher.cs : open channel before using it.
45
46 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
47
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
52           ReplyHandler so far.
53
54 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
55
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).
61
62 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
63
64         * ChannelDispatcher.cs : wrong channel argument.
65
66 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
67
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().
73
74 2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>
75
76         * DispatchOperation.cs : implement GetFormatter() at service side too.
77
78 2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>
79
80         * OperationInvokeHandler.cs : replace MS copycat exception message.
81
82 2009-02-26  Atsushi Enomoto  <atsushi@ximian.com>
83
84         * ClientRuntime.cs : fill contractType in .ctor().
85
86 2009-02-04  Atsushi Enomoto  <atsushi@ximian.com>
87
88         * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
89
90 2008-06-18  Noam Lampert <noaml@mainsoft.com>
91
92         * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
93
94 2008-05-22  Noam Lampert <noaml@mainsoft.com>
95
96         * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
97           errors. Serlialize the correct (inner) exception.
98           
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.
106
107 2008-05-01  Eyal Alaluf <eyala@mainsoft.com>
108
109         * BaseMessagesFormatter.cs: Handle methods with out parameters that return
110           void.
111         * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
112
113 2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>
114
115         * DispatchOperation.cs: removed dependency on OperationDescription, 
116         allows usage of custom channel dispatcher without endpoint was explicitly 
117         built
118
119 2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>
120
121         * MexInstanceContextProvider.cs - remove unused code.
122
123 2008-04-21  Roei Erez <roeie@mainsoft.com>
124
125         * ChannelDispatcher.cs - Change order of Dispatcher shutdown
126
127 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
128
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
134
135 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
136
137         * ActionMessageFilter.cs: fixed Match, match for "*" action
138
139 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
140
141         * DispatchOperation.cs: fixed ProcessRequest, fault message creation
142
143 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
144
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
151
152 2008-04-09  Roei Erez <roeie@mainsoft.com>
153
154         * Remove unused nethod from previous commit
155
156 2008-04-08  Roei Erez <roeie@mainsoft.com>
157
158         * ChannelDispatcher.cs
159           - fix 'Attach' logic
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.
166
167 2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>
168
169         * EndpointDispatcher.cs : we don't need AddressFilter workaround
170           from Feb. 14 anymore.
171
172 2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>
173
174         * EndpointDispatcher.cs : after service method call, apply outgoing
175           headers and properties to the returned message.
176
177 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
178
179         * ChannelDispatcher.cs : populate DispatchOperations before applying
180           IEndpointBehaviors so that those behaviors can modify dispatch
181           operations.
182
183 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
184
185         * DispatchOperation.cs : Action may be null. For such cases, use 
186           MessageDirection to determine the message description.
187
188 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
189
190         * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
191           Use ordinal string comparison.
192         * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
193
194 2008-02-14  Atsushi Enomoto  <atsushi@ximian.com>
195
196         * EndpointDispatcher.cs : moved AddressFilter application only when
197           DispatchOperation was not selected (it is sort of workaround).
198
199 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
200
201         * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
202           message contract type to process result, not the parameter.
203
204 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
205
206         * SingletonInstanceContextProvider.cs : new.
207
208 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * DefaultMessageOperationFormatter.cs : dependent changes on
211           message serializer and deserializer.
212
213 2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>
214
215         * DefaultMessageOperationFormatter.cs :
216           use it for deserialization as well.
217
218 2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>
219
220         * DefaultMessageOperationFormatter.cs : consider message contracts
221           during message serialization/deserialization.
222
223 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
224
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.
229
230 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
231
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.
236
237 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
238
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
242           initialization.
243
244 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
245
246         * ChannelDispatcher.cs : some cosmetic refactoring on error handling
247           with comments.
248
249 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
250
251         * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
252           Support OperationContext and OperationContextScope with
253           ServiceRuntimeChannel as its .ctor() input.
254
255 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * DispatchRuntime.cs : raise an error when the DispatchOperation
258           returned null Message.
259
260 2006-10-18  Ankit Jain  <jankit@novell.com>
261
262         * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
263         * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
264         the provider can be null.
265         * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
266
267 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
268
269         * DispatchOperation.cs : slightly improved exception message.
270
271 2006-10-06  Ankit Jain  <jankit@novell.com>
272
273         * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
274         ReceiveRequest can return null.
275
276 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
277
278         * ClientRuntime.cs : added MaxFaultSize.
279
280 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
281
282         * ChannelDispatcher.cs : don't reject anonymous and null To.
283
284 2006-10-04  Ankit Jain  <jankit@novell.com>
285
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
291         MetadataExchange.
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.
298
299 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
300
301         * ClientRuntime.cs : added InteractiveChannelInitializer.
302
303 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
304
305         * DispatchOperation.cs : removed extra comment.
306
307 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
308
309         * DispatchOperation.cs : workaround to send exception detail.
310
311 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
312
313         * ICallContextInitializer.cs : new file.
314         * DispatchOperation.cs : use above.
315           Not sure if it works correctly though.
316
317 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * DispatchOperation.cs : when there is an error during
320           ProcessRequest(), wrap the exception with MessageFault and return
321           a fault message.
322
323 2006-08-10  Duncan Mak  <duncan@novell.com>
324
325         * ExceptionHandler.cs: New file.
326
327         * ServiceThrottle.cs (MaxConnections): Renamed to
328         MaxConcurrentSessions.
329         (MaxInstances): Renamed to MaxConcurrentInstances.
330
331 2006-07-27  Atsushi Enomoto  <atsushi@ximian.com>
332
333         * IInteractiveChannelInitializer.cs : new file.
334
335 2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * IErrorHandler.cs : API updates.
338
339 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
340
341         * DispatchRuntime.cs :
342           it was selecting UnhandledOperation unexpectedly.
343         * DispatchOperation.cs : added FIXME comment.
344
345 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
346
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].
351
352 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
353
354         * DefaultMessageOperationFormatter.cs : don't omit action on
355           SerializeRequest. Do it in SerializeReply.
356
357 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
358
359         * DefaultMessageOperationFormatter.cs : When addressing version is
360           None, then omit reply action. This logic is moved from MessageImpl.
361
362 2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>
363
364         * DefaultMessageOperationFormatter.cs :
365           return message, not parameter[0]. Removed some extra FIXMEs.
366
367 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
368
369         * DefaultMessageOperationFormatter.cs : when the parameter is
370           Message and the return type is Message, then do not use
371           XmlObjectSerializer.
372
373 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
374
375         * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
376           new types in June CTP.
377         * ISharedInstanceSessionLifetime.cs:
378           removed in June CTP.
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.
384
385 2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>
386
387         * DispatchOperation.cs : MessageFault.DefaultAction vanished.
388
389 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
390
391         * IClientFormatter.cs, IClientMessageFormatter.cs,
392           IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
393           renamed former to latter, for each.
394
395 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
396
397         * ChannelDispatcher.cs, DispatchRuntime.cs :
398           IRequestContext -> RequestContext.
399
400 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
401
402         * ChannelDispatcher.cs, IDispatchFormatter.cs,
403           DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
404           DispatchOperation.cs, ClientOperation.cs :
405           some June CTP updates.
406
407 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
408
409         * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
410           and DeserializeReply(). Now simple ClientBase<T> sample is working.
411
412 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
413
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.
418
419 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
420
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).
425
426 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
427
428         * DefaultMessageOperationFormatter.cs :
429           Action for response is null (though it is likely conditional).
430
431 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
432
433         * DefaultMessageOperationFormatter.cs :
434           true DeserializeReply implementation using Message.CreateMessage()
435           with DataContractSerializer (not complete though).
436
437 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
438
439         * ChannelDispatcher.cs, DispatchOperation.cs,
440           ChannelDispatcherBase.cs :
441           some updated API fixes.
442
443 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
444
445         * EndpointDispatcher.cs : moved from Sys.ServiceModel.
446
447 2006-04-20  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * ClientRuntime.cs : some minor collection instantiation and comments.
450
451 2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>
452
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.
457
458 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
459
460         * DispatchOperation.cs : return SOAP fault message for nonexistent
461           request Action.
462         * DefaultMessageOperationFormatter.cs : implemented
463           DeserializeRequest(), though there is no working example.
464
465 2006-03-17  Atsushi Enomoto  <atsushi@ximian.com>
466
467         * DispatchOperation.cs : implemented logic to acquire
468           OperationDescription. Added code for default IDispatchFormatter
469           implementation.
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.
475
476 2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>
477
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.
482
483 2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>
484
485         * ChannelDispatcher.cs
486           DispatchRuntime.cs
487           DispatchOperation.cs : added request/input processing code.
488
489 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
490
491         * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
492
493 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
494
495         * ChannelDispatcher.cs : Added request-processing code.
496
497 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
498
499         * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
500
501 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
502
503         * DispatchBehavior.cs : 
504           Dependent fixes for System.IdentityModel reorgainzation.
505
506 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
507
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.