2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.ServiceModel / System.ServiceModel.Dispatcher / ChangeLog
1 2009-07-31  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * ChannelDispatcher.cs : raise error on multiple endpoint match
4           (documented at EndpointDispatcher.FilterPriority).
5
6 2009-07-28  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
9           the channel does not have to be fired Receive() before Open().
10
11 2009-07-14  Atsushi Enomoto  <atsushi@ximian.com>
12
13         * DispatchRuntime.cs : add ValidateMustUnderstand.
14         * DispatchOperation.cs : add AutoDisposeParameters.
15
16 2009-07-02  Atsushi Enomoto  <atsushi@ximian.com>
17
18         * ChannelDispatcher.cs : when service instance is provided to the
19           ServiceHost, do not reject Type-less state.
20
21 2009-06-29  Atsushi Enomoto  <atsushi@ximian.com>
22
23         * ChannelDispatcher.cs : do not iterate extra channel acceptance
24           and hence close channels a bit more gracefully.
25
26 2009-06-25  Atsushi Enomoto  <atsushi@ximian.com>
27
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).
31
32 2009-06-25  Atsushi Enomoto  <atsushi@ximian.com>
33
34         * SessionInstanceContextProvider.cs : new instance context provider.
35
36 2009-06-23  Atsushi Enomoto  <atsushi@ximian.com>
37
38         * DispatchRuntime.cs : do not fill InstanceContextProvider here.
39         * ChannelDispatcher.cs : do it here instead.
40         * ChannelDispatcherCollection.cs : remove TODOs.
41
42 2009-06-23  Atsushi Enomoto  <atsushi@ximian.com>
43
44         * InputOrReplyRequestProcessor.cs : bogus initialization.
45
46 2009-06-18  Atsushi Enomoto  <atsushi@ximian.com>
47
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
54             one channel).
55           - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
56             for async pattern.
57           - Close all channels and the listener when it is closed.
58           - Cosmetic simplification on channel acceptor delegate creation.
59
60 2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>
61
62         * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
63           Thread.Abort()). Added some comments on throttling.
64
65 2009-06-09  Atsushi Enomoto  <atsushi@ximian.com>
66
67         * ServiceThrottle.cs : implement.
68
69 2009-06-08  Atsushi Enomoto  <atsushi@ximian.com>
70
71         * ChannelDispatcher.cs :
72           Add call to base (see CommunicationObject change).
73
74 2009-06-01  Atsushi Enomoto  <atsushi@ximian.com>
75
76         * ChannelDispatcher.cs : handle more errors gracefully.
77
78 2009-05-18  Atsushi Enomoto  <atsushi@ximian.com>
79
80         * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
81           they also premise request-reply channel and broke duplex channels.
82
83 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
84
85         * ChannelDispatcher.cs : open channel before using it.
86
87 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
88
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
93           ReplyHandler so far.
94
95 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
96
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).
102
103 2009-05-13  Atsushi Enomoto  <atsushi@ximian.com>
104
105         * ChannelDispatcher.cs : wrong channel argument.
106
107 2009-04-27  Atsushi Enomoto  <atsushi@ximian.com>
108
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().
114
115 2009-04-23  Atsushi Enomoto  <atsushi@ximian.com>
116
117         * DispatchOperation.cs : implement GetFormatter() at service side too.
118
119 2009-04-01  Atsushi Enomoto  <atsushi@ximian.com>
120
121         * OperationInvokeHandler.cs : replace MS copycat exception message.
122
123 2009-02-26  Atsushi Enomoto  <atsushi@ximian.com>
124
125         * ClientRuntime.cs : fill contractType in .ctor().
126
127 2009-02-04  Atsushi Enomoto  <atsushi@ximian.com>
128
129         * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
130
131 2008-06-18  Noam Lampert <noaml@mainsoft.com>
132
133         * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
134
135 2008-05-22  Noam Lampert <noaml@mainsoft.com>
136
137         * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
138           errors. Serlialize the correct (inner) exception.
139           
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.
147
148 2008-05-01  Eyal Alaluf <eyala@mainsoft.com>
149
150         * BaseMessagesFormatter.cs: Handle methods with out parameters that return
151           void.
152         * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
153
154 2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>
155
156         * DispatchOperation.cs: removed dependency on OperationDescription, 
157         allows usage of custom channel dispatcher without endpoint was explicitly 
158         built
159
160 2008-04-22  Igor Zelmanovich <igorz@mainsoft.com>
161
162         * MexInstanceContextProvider.cs - remove unused code.
163
164 2008-04-21  Roei Erez <roeie@mainsoft.com>
165
166         * ChannelDispatcher.cs - Change order of Dispatcher shutdown
167
168 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
169
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
175
176 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
177
178         * ActionMessageFilter.cs: fixed Match, match for "*" action
179
180 2008-04-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
181
182         * DispatchOperation.cs: fixed ProcessRequest, fault message creation
183
184 2008-04-10  Eyal Alaluf <eyala@mainsoft.com>
185
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
192
193 2008-04-09  Roei Erez <roeie@mainsoft.com>
194
195         * Remove unused nethod from previous commit
196
197 2008-04-08  Roei Erez <roeie@mainsoft.com>
198
199         * ChannelDispatcher.cs
200           - fix 'Attach' logic
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.
207
208 2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * EndpointDispatcher.cs : we don't need AddressFilter workaround
211           from Feb. 14 anymore.
212
213 2008-02-17  Atsushi Enomoto  <atsushi@ximian.com>
214
215         * EndpointDispatcher.cs : after service method call, apply outgoing
216           headers and properties to the returned message.
217
218 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
219
220         * ChannelDispatcher.cs : populate DispatchOperations before applying
221           IEndpointBehaviors so that those behaviors can modify dispatch
222           operations.
223
224 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
225
226         * DispatchOperation.cs : Action may be null. For such cases, use 
227           MessageDirection to determine the message description.
228
229 2008-02-15  Atsushi Enomoto  <atsushi@ximian.com>
230
231         * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
232           Use ordinal string comparison.
233         * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
234
235 2008-02-14  Atsushi Enomoto  <atsushi@ximian.com>
236
237         * EndpointDispatcher.cs : moved AddressFilter application only when
238           DispatchOperation was not selected (it is sort of workaround).
239
240 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
241
242         * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
243           message contract type to process result, not the parameter.
244
245 2007-08-19  Atsushi Enomoto  <atsushi@ximian.com>
246
247         * SingletonInstanceContextProvider.cs : new.
248
249 2007-08-17  Atsushi Enomoto  <atsushi@ximian.com>
250
251         * DefaultMessageOperationFormatter.cs : dependent changes on
252           message serializer and deserializer.
253
254 2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>
255
256         * DefaultMessageOperationFormatter.cs :
257           use it for deserialization as well.
258
259 2007-03-24  Atsushi Enomoto  <atsushi@ximian.com>
260
261         * DefaultMessageOperationFormatter.cs : consider message contracts
262           during message serialization/deserialization.
263
264 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
265
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.
270
271 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
272
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.
277
278 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
279
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
283           initialization.
284
285 2007-03-07  Atsushi Enomoto  <atsushi@ximian.com>
286
287         * ChannelDispatcher.cs : some cosmetic refactoring on error handling
288           with comments.
289
290 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
291
292         * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
293           Support OperationContext and OperationContextScope with
294           ServiceRuntimeChannel as its .ctor() input.
295
296 2006-12-14  Atsushi Enomoto  <atsushi@ximian.com>
297
298         * DispatchRuntime.cs : raise an error when the DispatchOperation
299           returned null Message.
300
301 2006-10-18  Ankit Jain  <jankit@novell.com>
302
303         * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
304         * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
305         the provider can be null.
306         * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
307
308 2006-10-12  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * DispatchOperation.cs : slightly improved exception message.
311
312 2006-10-06  Ankit Jain  <jankit@novell.com>
313
314         * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
315         ReceiveRequest can return null.
316
317 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * ClientRuntime.cs : added MaxFaultSize.
320
321 2006-10-05  Atsushi Enomoto  <atsushi@ximian.com>
322
323         * ChannelDispatcher.cs : don't reject anonymous and null To.
324
325 2006-10-04  Ankit Jain  <jankit@novell.com>
326
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
332         MetadataExchange.
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.
339
340 2006-10-03  Atsushi Enomoto  <atsushi@ximian.com>
341
342         * ClientRuntime.cs : added InteractiveChannelInitializer.
343
344 2006-09-12  Atsushi Enomoto  <atsushi@ximian.com>
345
346         * DispatchOperation.cs : removed extra comment.
347
348 2006-09-08  Atsushi Enomoto  <atsushi@ximian.com>
349
350         * DispatchOperation.cs : workaround to send exception detail.
351
352 2006-09-06  Atsushi Enomoto  <atsushi@ximian.com>
353
354         * ICallContextInitializer.cs : new file.
355         * DispatchOperation.cs : use above.
356           Not sure if it works correctly though.
357
358 2006-08-28  Atsushi Enomoto  <atsushi@ximian.com>
359
360         * DispatchOperation.cs : when there is an error during
361           ProcessRequest(), wrap the exception with MessageFault and return
362           a fault message.
363
364 2006-08-10  Duncan Mak  <duncan@novell.com>
365
366         * ExceptionHandler.cs: New file.
367
368         * ServiceThrottle.cs (MaxConnections): Renamed to
369         MaxConcurrentSessions.
370         (MaxInstances): Renamed to MaxConcurrentInstances.
371
372 2006-07-27  Atsushi Enomoto  <atsushi@ximian.com>
373
374         * IInteractiveChannelInitializer.cs : new file.
375
376 2006-07-14  Atsushi Enomoto  <atsushi@ximian.com>
377
378         * IErrorHandler.cs : API updates.
379
380 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
381
382         * DispatchRuntime.cs :
383           it was selecting UnhandledOperation unexpectedly.
384         * DispatchOperation.cs : added FIXME comment.
385
386 2006-07-13  Atsushi Enomoto  <atsushi@ximian.com>
387
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].
392
393 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
394
395         * DefaultMessageOperationFormatter.cs : don't omit action on
396           SerializeRequest. Do it in SerializeReply.
397
398 2006-07-12  Atsushi Enomoto  <atsushi@ximian.com>
399
400         * DefaultMessageOperationFormatter.cs : When addressing version is
401           None, then omit reply action. This logic is moved from MessageImpl.
402
403 2006-07-11  Atsushi Enomoto  <atsushi@ximian.com>
404
405         * DefaultMessageOperationFormatter.cs :
406           return message, not parameter[0]. Removed some extra FIXMEs.
407
408 2006-07-10  Atsushi Enomoto  <atsushi@ximian.com>
409
410         * DefaultMessageOperationFormatter.cs : when the parameter is
411           Message and the return type is Message, then do not use
412           XmlObjectSerializer.
413
414 2006-07-07  Atsushi Enomoto  <atsushi@ximian.com>
415
416         * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
417           new types in June CTP.
418         * ISharedInstanceSessionLifetime.cs:
419           removed in June CTP.
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.
425
426 2006-07-06  Atsushi Enomoto  <atsushi@ximian.com>
427
428         * DispatchOperation.cs : MessageFault.DefaultAction vanished.
429
430 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
431
432         * IClientFormatter.cs, IClientMessageFormatter.cs,
433           IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
434           renamed former to latter, for each.
435
436 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
437
438         * ChannelDispatcher.cs, DispatchRuntime.cs :
439           IRequestContext -> RequestContext.
440
441 2006-07-05  Atsushi Enomoto  <atsushi@ximian.com>
442
443         * ChannelDispatcher.cs, IDispatchFormatter.cs,
444           DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
445           DispatchOperation.cs, ClientOperation.cs :
446           some June CTP updates.
447
448 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
449
450         * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
451           and DeserializeReply(). Now simple ClientBase<T> sample is working.
452
453 2006-06-22  Atsushi Enomoto  <atsushi@ximian.com>
454
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.
459
460 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
461
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).
466
467 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
468
469         * DefaultMessageOperationFormatter.cs :
470           Action for response is null (though it is likely conditional).
471
472 2006-06-20  Atsushi Enomoto  <atsushi@ximian.com>
473
474         * DefaultMessageOperationFormatter.cs :
475           true DeserializeReply implementation using Message.CreateMessage()
476           with DataContractSerializer (not complete though).
477
478 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
479
480         * ChannelDispatcher.cs, DispatchOperation.cs,
481           ChannelDispatcherBase.cs :
482           some updated API fixes.
483
484 2006-05-29  Atsushi Enomoto  <atsushi@ximian.com>
485
486         * EndpointDispatcher.cs : moved from Sys.ServiceModel.
487
488 2006-04-20  Atsushi Enomoto  <atsushi@ximian.com>
489
490         * ClientRuntime.cs : some minor collection instantiation and comments.
491
492 2006-04-07  Atsushi Enomoto  <atsushi@ximian.com>
493
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.
498
499 2006-04-05  Atsushi Enomoto  <atsushi@ximian.com>
500
501         * DispatchOperation.cs : return SOAP fault message for nonexistent
502           request Action.
503         * DefaultMessageOperationFormatter.cs : implemented
504           DeserializeRequest(), though there is no working example.
505
506 2006-03-17  Atsushi Enomoto  <atsushi@ximian.com>
507
508         * DispatchOperation.cs : implemented logic to acquire
509           OperationDescription. Added code for default IDispatchFormatter
510           implementation.
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.
516
517 2006-03-16  Atsushi Enomoto  <atsushi@ximian.com>
518
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.
523
524 2006-03-13  Atsushi Enomoto  <atsushi@ximian.com>
525
526         * ChannelDispatcher.cs
527           DispatchRuntime.cs
528           DispatchOperation.cs : added request/input processing code.
529
530 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
531
532         * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
533
534 2006-03-07  Atsushi Enomoto  <atsushi@ximian.com>
535
536         * ChannelDispatcher.cs : Added request-processing code.
537
538 2006-03-06  Atsushi Enomoto  <atsushi@ximian.com>
539
540         * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
541
542 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
543
544         * DispatchBehavior.cs : 
545           Dependent fixes for System.IdentityModel reorgainzation.
546
547 2006-02-23  Atsushi Enomoto  <atsushi@ximian.com>
548
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.