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