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