1 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
3 * EndpointDispatcher.cs : do not try to create wrong filter.
5 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
7 * ChannelDispatcher.cs : EndpointNotFoundException message could
10 2009-08-11 Atsushi Enomoto <atsushi@ximian.com>
12 * IOperationInvoker.cs : fix interface.
13 * DefaultOperationInvoker.cs : refresh implementation of the above.
14 * BaseMessagesFormatter.cs, OperationInvokerHandler.cs :
15 dependent changes for above.
17 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
19 * InputOrReplyRequestProcessor.cs : now it could return an instance
20 of dynamically generated proxy over DuplexServiceRuntimeChannel.
22 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
24 * ClientRuntime.cs : oops, it should have been committed at a time.
25 Change .ctor() args. Make some properties auto.
27 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
29 * DispatchRuntime.cs : callback runtime is set later.
31 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
34 .ctor() just needs contract. Fill some properties.
36 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
38 * ReplyHandler.cs : there is better way to check IsOneWay.
40 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
42 * OperationInvokerHandler.cs : One way operation has no reply.
43 * ReplyHandler.cs : ditto.
45 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
47 * ChannelDispatcher.cs : raise error on multiple endpoint match
48 (documented at EndpointDispatcher.FilterPriority).
50 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
52 * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
53 the channel does not have to be fired Receive() before Open().
55 2009-07-14 Atsushi Enomoto <atsushi@ximian.com>
57 * DispatchRuntime.cs : add ValidateMustUnderstand.
58 * DispatchOperation.cs : add AutoDisposeParameters.
60 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
62 * ChannelDispatcher.cs : when service instance is provided to the
63 ServiceHost, do not reject Type-less state.
65 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
67 * ChannelDispatcher.cs : do not iterate extra channel acceptance
68 and hence close channels a bit more gracefully.
70 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
72 * ChannelDispatcher.cs : instead of discarding channels, reuse them
73 unless it is closed by session manager (session manager does not
74 work, so channels are not actually closed automatically yet).
76 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
78 * SessionInstanceContextProvider.cs : new instance context provider.
80 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
82 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
83 * ChannelDispatcher.cs : do it here instead.
84 * ChannelDispatcherCollection.cs : remove TODOs.
86 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
88 * InputOrReplyRequestProcessor.cs : bogus initialization.
90 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
92 * ChannelDispatcher.cs : significant changes:
93 - simplified Open/Close async.
94 - implement OnAbort().
95 - create ServiceThrottle when it is null.
96 - Channels are accepted as much as the throttle allows, and
97 process requests when accepted an input (now it holds more than
99 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
101 - Close all channels and the listener when it is closed.
102 - Cosmetic simplification on channel acceptor delegate creation.
104 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
106 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
107 Thread.Abort()). Added some comments on throttling.
109 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
111 * ServiceThrottle.cs : implement.
113 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
115 * ChannelDispatcher.cs :
116 Add call to base (see CommunicationObject change).
118 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
120 * ChannelDispatcher.cs : handle more errors gracefully.
122 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
124 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
125 they also premise request-reply channel and broke duplex channels.
127 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
129 * ChannelDispatcher.cs : open channel before using it.
131 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
133 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
134 MessageProcessingContext.cs : reply processing is also needed by
135 non-request channels (i.e. duplex). Current code basis lacked
136 such possibility. Quick fix by adding duplex support in
139 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
141 * ChannelDispatcher.cs, SecurityHandler.cs,
142 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
143 remove default communication timeouts from several types. They
144 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
145 use it when required (it was actually *only* request processor).
147 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
149 * ChannelDispatcher.cs : wrong channel argument.
151 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
153 * DispatchRuntime.cs : some comment.
154 * ChannelDispatcher.cs : ongoing changes to handle listeners and
155 accepted channels at more precise state. Listeners are opened,
156 without accepting channels. Some setup code is done at OnOpen(),
157 while some are done at OnOpened().
159 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
161 * DispatchOperation.cs : implement GetFormatter() at service side too.
163 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
165 * OperationInvokeHandler.cs : replace MS copycat exception message.
167 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
169 * ClientRuntime.cs : fill contractType in .ctor().
171 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
173 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
175 2008-06-18 Noam Lampert <noaml@mainsoft.com>
177 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
179 2008-05-22 Noam Lampert <noaml@mainsoft.com>
181 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
182 errors. Serlialize the correct (inner) exception.
184 2008-05-22 Roei Erez <roeie@mainsoft.com>
185 * fix ContractDescription.GetContract implementation
186 * Refactor Request processing
187 * Add support for message inspectors
188 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
189 like: ReleaseServiceInstance, Open, Close...
190 * Add relevant test cases.
192 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
194 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
196 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
198 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
200 * DispatchOperation.cs: removed dependency on OperationDescription,
201 allows usage of custom channel dispatcher without endpoint was explicitly
204 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
206 * MexInstanceContextProvider.cs - remove unused code.
208 2008-04-21 Roei Erez <roeie@mainsoft.com>
210 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
212 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
214 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
215 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
216 without endpoint was explicitly built
217 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
218 communication processing, logic moved to channel dispatcher
220 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
222 * ActionMessageFilter.cs: fixed Match, match for "*" action
224 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
226 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
228 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
230 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
231 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
232 defined here instead of the other way around.
233 Added support for by-ref and out parameters.
234 Added support for XmlSerializerFormat serializaters..
235 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
237 2008-04-09 Roei Erez <roeie@mainsoft.com>
239 * Remove unused nethod from previous commit
241 2008-04-08 Roei Erez <roeie@mainsoft.com>
243 * ChannelDispatcher.cs
245 - Add support for Endpoints property
246 - Remove the hack of 'endpoint_dispatcher' field
247 * ChannelDispatcherCollection.cs
248 - Add support for 'Attach' 'Detach'
249 * EndpointDispatcher.cs
250 - By default create MatchAllMessageFilter.
252 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
254 * EndpointDispatcher.cs : we don't need AddressFilter workaround
255 from Feb. 14 anymore.
257 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
259 * EndpointDispatcher.cs : after service method call, apply outgoing
260 headers and properties to the returned message.
262 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
264 * ChannelDispatcher.cs : populate DispatchOperations before applying
265 IEndpointBehaviors so that those behaviors can modify dispatch
268 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
270 * DispatchOperation.cs : Action may be null. For such cases, use
271 MessageDirection to determine the message description.
273 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
275 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
276 Use ordinal string comparison.
277 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
279 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
281 * EndpointDispatcher.cs : moved AddressFilter application only when
282 DispatchOperation was not selected (it is sort of workaround).
284 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
286 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
287 message contract type to process result, not the parameter.
289 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
291 * SingletonInstanceContextProvider.cs : new.
293 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
295 * DefaultMessageOperationFormatter.cs : dependent changes on
296 message serializer and deserializer.
298 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
300 * DefaultMessageOperationFormatter.cs :
301 use it for deserialization as well.
303 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
305 * DefaultMessageOperationFormatter.cs : consider message contracts
306 during message serialization/deserialization.
308 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
310 * EndpointDispatcher.cs : now dispatcher-side foundation for token
311 negotiation is ready. Handle negotiation message on its own way.
312 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
313 simply raise an error and let FaultConverter do better work.
315 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
317 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
318 Handle exceptions to make into SOAP Fault, using FaultConverter.
319 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
320 * ChannelDispatcherBase.cs : removed MonoTODOs.
322 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
324 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
325 moved most of request/input processing to EndpointDispatcher.cs.
326 Also, ChannelDispatcher now contains code for behavior
329 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
331 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
334 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
336 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
337 Support OperationContext and OperationContextScope with
338 ServiceRuntimeChannel as its .ctor() input.
340 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
342 * DispatchRuntime.cs : raise an error when the DispatchOperation
343 returned null Message.
345 2006-10-18 Ankit Jain <jankit@novell.com>
347 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
348 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
349 the provider can be null.
350 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
352 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
354 * DispatchOperation.cs : slightly improved exception message.
356 2006-10-06 Ankit Jain <jankit@novell.com>
358 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
359 ReceiveRequest can return null.
361 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
363 * ClientRuntime.cs : added MaxFaultSize.
365 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
367 * ChannelDispatcher.cs : don't reject anonymous and null To.
369 2006-10-04 Ankit Jain <jankit@novell.com>
371 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
372 Fault message if message's To doesn't match the endpoint.
373 (ListenerLoopManager.CreateDestinationUnreachable): New.
374 * IInstanceContextProvider.cs: New.
375 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
377 (MetadataExchange): Implementation of IMetadataExchange.
378 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
379 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
380 if available to obtain service instance.
381 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
382 * EndpointAddressMessageFilter.cs (Match): Implement.
384 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
386 * ClientRuntime.cs : added InteractiveChannelInitializer.
388 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
390 * DispatchOperation.cs : removed extra comment.
392 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
394 * DispatchOperation.cs : workaround to send exception detail.
396 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
398 * ICallContextInitializer.cs : new file.
399 * DispatchOperation.cs : use above.
400 Not sure if it works correctly though.
402 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
404 * DispatchOperation.cs : when there is an error during
405 ProcessRequest(), wrap the exception with MessageFault and return
408 2006-08-10 Duncan Mak <duncan@novell.com>
410 * ExceptionHandler.cs: New file.
412 * ServiceThrottle.cs (MaxConnections): Renamed to
413 MaxConcurrentSessions.
414 (MaxInstances): Renamed to MaxConcurrentInstances.
416 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
418 * IInteractiveChannelInitializer.cs : new file.
420 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
422 * IErrorHandler.cs : API updates.
424 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
426 * DispatchRuntime.cs :
427 it was selecting UnhandledOperation unexpectedly.
428 * DispatchOperation.cs : added FIXME comment.
430 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
432 * DefaultMessageOperationFormatter.cs : Remove hack for non-
433 (de)serializing Message-based methods. They are now moved to
434 ClientBase and ServiceHostBase to explicitly set
435 [Serialize|Deserialize][Request|Reply].
437 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
439 * DefaultMessageOperationFormatter.cs : don't omit action on
440 SerializeRequest. Do it in SerializeReply.
442 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
444 * DefaultMessageOperationFormatter.cs : When addressing version is
445 None, then omit reply action. This logic is moved from MessageImpl.
447 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
449 * DefaultMessageOperationFormatter.cs :
450 return message, not parameter[0]. Removed some extra FIXMEs.
452 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
454 * DefaultMessageOperationFormatter.cs : when the parameter is
455 Message and the return type is Message, then do not use
458 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
460 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
461 new types in June CTP.
462 * ISharedInstanceSessionLifetime.cs:
464 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
465 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
466 ClientOperation.cs, ActionMessageFilterTable.cs,
467 EndpointAddressMessageFilterTable.cs :
468 several minor fixes for June CTP.
470 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
472 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
474 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
476 * IClientFormatter.cs, IClientMessageFormatter.cs,
477 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
478 renamed former to latter, for each.
480 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
482 * ChannelDispatcher.cs, DispatchRuntime.cs :
483 IRequestContext -> RequestContext.
485 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
487 * ChannelDispatcher.cs, IDispatchFormatter.cs,
488 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
489 DispatchOperation.cs, ClientOperation.cs :
490 some June CTP updates.
492 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
494 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
495 and DeserializeReply(). Now simple ClientBase<T> sample is working.
497 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
499 * ClientOperation.cs : added GetFormatter() to support message
500 serialization/deserialization.
501 * DispatchOperation.cs : made some internal members private
502 (they are exposed extraneously). Commented out debugging code.
504 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
506 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
507 custom BodyWriter() and use MessagePartDescription names. Now
508 return value and other (ref/out) parameters could be equivalently
509 serialized (at this method; to support them more love is needed).
511 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
513 * DefaultMessageOperationFormatter.cs :
514 Action for response is null (though it is likely conditional).
516 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
518 * DefaultMessageOperationFormatter.cs :
519 true DeserializeReply implementation using Message.CreateMessage()
520 with DataContractSerializer (not complete though).
522 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
524 * ChannelDispatcher.cs, DispatchOperation.cs,
525 ChannelDispatcherBase.cs :
526 some updated API fixes.
528 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
530 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
532 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
534 * ClientRuntime.cs : some minor collection instantiation and comments.
536 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
538 * DispatchOperation.cs : Implemented internal MessageVersion.
539 hacked instance provision by using Activator.CreateInstance.
540 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
541 be functional. Implemented SerializeReply.
543 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
545 * DispatchOperation.cs : return SOAP fault message for nonexistent
547 * DefaultMessageOperationFormatter.cs : implemented
548 DeserializeRequest(), though there is no working example.
550 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
552 * DispatchOperation.cs : implemented logic to acquire
553 OperationDescription. Added code for default IDispatchFormatter
555 * DispatchRuntime.cs : fix warning.
556 * DefaultMessageOperationFormatter.cs : new file, for default
557 IDispatchFormatter implementation (not done yet).
558 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
559 bind to this instance.
561 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
563 * ChannelDispatcherCollection.cs : added parameterless ctor().
564 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
565 Set some initial field values as proved in unit tests.
566 Request/input processing is still ongoing.
568 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
570 * ChannelDispatcher.cs
572 DispatchOperation.cs : added request/input processing code.
574 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
576 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
578 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
580 * ChannelDispatcher.cs : Added request-processing code.
582 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
584 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
586 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
588 * DispatchBehavior.cs :
589 Dependent fixes for System.IdentityModel reorgainzation.
591 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
593 * FilterNodeQuotaExceededException.cs
594 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
595 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
596 MatchNoneFilter.cs ActionFilter.cs
597 MultipleFilterMatchesException.cs Filter.cs
598 IInstanceContextInitializer.cs XPathFilter.cs
599 IDispatchOperationSelector.cs MatchAllFilter.cs
600 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
601 EndpointFilterTable.cs XPathMessageContext.cs
602 IEndpointDispatcher.cs ProxyBehavior.cs
603 ProxyOperation.cs XPathFilterTable.cs
604 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
605 IFilterTable.cs IOperationInvoker.cs :
606 moved from System.ServiceModel due to the API changes.