1 2010-07-12 Atsushi Enomoto <atsushi@ximian.com>
3 * SecurityHandler.cs : add new using. Though this class will vanish.
5 2010-07-12 Atsushi Enomoto <atsushi@ximian.com>
7 * ChannelDispatcher.cs : apply ErrorHandlers to IInputChannel too.
9 2010-07-09 Atsushi Enomoto <atsushi@ximian.com>
11 * PostReceiveRequestHandler.cs : don't replace correctly passed-by-
12 reference Message with wrong, consumed Message.
14 2010-07-09 Atsushi Enomoto <atsushi@ximian.com>
16 * ChannelDispatcher.cs : do not swallow exception during
17 RequestContext.get_RequestMessage() and thus return SOAP Fault for
18 MessageSecurityException to the client.
20 2010-07-08 Atsushi Enomoto <atsushi@ximian.com>
22 * ChannelDispatcher.cs : support ErrorHandlers.
24 2010-07-05 Atsushi Enomoto <atsushi@ximian.com>
26 * ChannelDispatcher.cs :
27 moved IChannelDispatcherBoundListener from HttpChannelListener.cs.
29 2010-07-02 Atsushi Enomoto <atsushi@ximian.com>
31 * MessageProcessingContext.cs : update possibly-updated ReplyMessage
32 to send, by message inspectors. Fix by Clovis Ribeiro, should fix
35 2010-06-24 Atsushi Enomoto <atsushi@ximian.com>
37 * ChannelDispatcher.cs : enable service throttling again.
38 This time Http(Listener), ASP.NET and TCP listeners all work.
40 2010-06-21 Atsushi Enomoto <atsushi@ximian.com>
42 * ChannelDispatcher.cs : raise an error if IChannelListener is
43 already opened when it's opening.
45 2010-06-21 Atsushi Enomoto <atsushi@ximian.com>
47 * ServiceThrottle.cs : take ChannelDispatcher to validate setters.
49 2010-06-17 Atsushi Enomoto <atsushi@ximian.com>
51 * ChannelDispatcher.cs : add simple bool field to mark for mex channel.
53 2010-06-17 Atsushi Enomoto <atsushi@ximian.com>
55 * ChannelDispatcher.cs : MessageVersion check is moved to
58 2010-06-14 Atsushi Enomoto <atsushi@ximian.com>
60 * OperationInvokerHandler.cs, MessageProcessingContext.cs :
61 ChannelDispatcher may be null, so check its availability before
62 using it. Don't use it, when possible.
63 * DispatchOperation.cs : remove unused member.
65 2010-06-04 Atsushi Enomoto <atsushi@ximian.com>
67 * EndpointDispatcher.cs, BaseMessagesFormatter.cs:
68 Now MessageDescription.Direction is differentiated from "IsRequest"
69 property, to precisely identify request/reply in callbacks. Also
70 now we don't have to create extraneous ContractDescription for
73 2010-06-03 Atsushi Enomoto <atsushi@ximian.com>
75 * EndpointDispatcher.cs, DispatchRuntime.cs, ClientRuntime.cs :
76 now Callback[Dispatch|Client]Runtime properties are always filled
77 so that users can configure the callback runtimes (not sure such
78 configured runtimes work fine yet, but it is a required step).
79 * InputOrReplyRequestProcessor.cs : instead of HasCallbackRuntime
80 hack, use CallbackClientRuntime.CallbackContractType for checking
83 2010-05-28 Atsushi Enomoto <atsushi@ximian.com>
85 * ClientOperation.cs, DispatchOperation.cs : remove extra fields.
87 2010-05-28 Atsushi Enomoto <atsushi@ximian.com>
89 * ClientOperation.cs : do the same for client side too.
91 2010-05-28 Atsushi Enomoto <atsushi@ximian.com>
93 * DispatchOperation.cs : on callback channels ChannelDispatcher is
94 not available. Wait for something like ClientRuntime.ChannelFactory.
96 2010-05-28 Atsushi Enomoto <atsushi@ximian.com>
98 * EndpointDispatcher.cs : some comments.
99 * DispatchOperation.cs : remove on-the-fly dependency on
100 OperationDescription. Add immutable check on each property.
102 2010-05-27 Atsushi Enomoto <atsushi@ximian.com>
104 * EndpointDispatcher.cs : fill CallbackDispatchRuntime. Add some
105 FIXME comments for ongoing fixes.
107 2010-05-26 Atsushi Enomoto <atsushi@ximian.com>
109 * OperationInvokerHandler.cs : assign RelatesTo header item here.
111 2010-05-21 Atsushi Enomoto <atsushi@ximian.com>
113 * ChannelDispatcher.cs : disable slottling again :( It still fails
114 to process concurrent requests if there is service metadata channel
115 and MaxConcurrentSessions > 1 on non-ASP.NET channels.
117 2010-05-21 Atsushi Enomoto <atsushi@ximian.com>
119 * ChannelDispatcher.cs : enable throttling again. Though issues
120 regarding parallel request is not here (multiple dispatchers
121 can accept a channels for each), and HTTP channels do not accept
122 more than one channel at a time anyways.
124 2010-04-28 Atsushi Enomoto <atsushi@ximian.com>
126 * ChannelDispatcher.cs : add workaround to set ChannelDispatcher
127 to IChannelListener. Avoid null ChannelDispatcher in http listener.
129 2010-04-20 Atsushi Enomoto <atsushi@ximian.com>
131 * OperationInvokerHandler.cs : workaround NRE issue in AsyncCallTest.
132 The original code was worse than this workaround.
134 2010-04-05 Atsushi Enomoto <atsushi@ximian.com>
136 * EndpointAddressMessageFilter.cs : check null arg. Return false for
137 no To header case and do not result in NRE.f
139 2010-04-05 Atsushi Enomoto <atsushi@ximian.com>
141 * BaseMessagesFormatter.cs : hasParameter check is incorrectly
142 restrictive to reject some kinds of pairs.
144 2010-04-02 Atsushi Enomoto <atsushi@ximian.com>
146 * FaultContractInfo.cs : add serializer property.
148 2010-04-02 Atsushi Enomoto <atsushi@ximian.com>
150 * ClientOperation.cs : do not automatically fill FaultContractInfos.
152 2010-04-02 Atsushi Enomoto <atsushi@ximian.com>
154 * OperationInvokerHandler.cs : implement FaultContractInfos support.
155 * ErrorProcessingHandler.cs : update comment. It is not relevant.
157 2010-04-02 Atsushi Enomoto <atsushi@ximian.com>
159 * EndpointDispatcher.cs : fill FaultContractInfos.
160 * DispatchOperation.cs : do not fill them dynamically/automatically.
161 * ErrorProcessingHandler.cs : added some FIXME notes.
163 2010-03-30 Atsushi Enomoto <atsushi@ximian.com>
165 * ChannelDispatcher.cs : differentiate EndpointNotFound and
166 ActionNotSupported so that FaultConverter can create appropriate
167 fault messages. Removed extra filter condition on null To item.
168 And create fault messages on *any* server side error, do not let
169 request client infinitely wait for the response until timeout.
171 (RunDestinationUnreachableTest() is still not working but it works
172 when it is SOAP 1.2.)
174 2010-03-30 Atsushi Enomoto <atsushi@ximian.com>
176 * ChannelDispatcher.cs : for faults, use fault namespace, not that of
177 ReplyAction. Added FIXME comment regarding dispatcher.
179 2010-03-25 Atsushi Enomoto <atsushi@ximian.com>
181 * OperationInvokerHandler.cs : removed unused code.
183 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
185 * ChannelDispatcher.cs : return EndpointDispatcher at initializing
186 for internal use. Add some locks. Patch by Matt Dargavel.
188 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
190 * ChannelDispatcher.cs : fix wrong method call in open_delegate.
191 Patch by Matt Dargavel.
193 2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
195 * ChannelDispatcher.cs : give the actual exception message instead
198 2010-03-18 Atsushi Enomoto <atsushi@ximian.com>
200 * XPathMessageContext.cs : implement.
201 * XPathMessageFilterTable.cs : add some missing overloads.
203 2010-02-26 Atsushi Enomoto <atsushi@ximian.com>
205 * InputOrReplyRequestProcessor.cs : now ServiceRuntimeChannel is
206 moved to fake public namespace.
208 2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
210 * ChannelDispatcher.cs : revert previous change - it could result
211 in blocking some threads and block nunit completion.
213 2010-02-04 Atsushi Enomoto <atsushi@ximian.com>
215 * ChannelDispatcher.cs : now I can enable service throttling to
216 handle more than one concurrent channels as ASP.NET reply channel
219 2010-01-25 Atsushi Enomoto <atsushi@ximian.com>
221 * ChannelDispatcher.cs : actually instance context provider could be
222 null through the entire service run.
224 Fixed all current nunit failures!
226 2010-01-22 Atsushi Enomoto <atsushi@ximian.com>
228 * ChannelDispatcher.cs : do not try to iterate channel acceptor when
231 2010-01-19 Atsushi Enomoto <atsushi@ximian.com>
233 * ChannelDispatcher.cs : another error audit.
235 2010-01-13 Atsushi Enomoto <atsushi@ximian.com>
237 * FaultContractInfo.cs : implement.
238 * DispatchOperation.cs, ClientOperation.cs: fill Faults.
240 2010-01-08 Atsushi Enomoto <atsushi@ximian.com>
242 * EndpointDispatcher.cs, InputOrReplyRequestProcessor.cs :
243 Pass service type to correctly retrieve ServiceContractAttribute
244 from the service type, not callback type.
246 2010-01-07 Atsushi Enomoto <atsushi@ximian.com>
248 * ChannelDispatcher.cs : make sure to unlock channel acceptor wait
249 handle when the delegated method resulted in an error.
251 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
253 * ChannelDispatcher.cs : close such channels that failed to receive
256 2009-12-26 Atsushi Enomoto <atsushi@ximian.com>
258 * DispatchRuntime.cs : shortened code and scattered monotodos.
260 2009-12-10 Atsushi Enomoto <atsushi@ximian.com>
262 * OperationInvokerHandler.cs : fix async operation handling. Since
263 the entire handler chain is designed to be in synchronous, one
264 single handler must not leave its work incomplete (async). Just
265 wait for the async process completion within the handler.
267 2009-12-07 Atsushi Enomoto <atsushi@ximian.com>
269 * ChannelDispatcher.cs : fix regression; ServiceBehaviorAttribute
270 could be set explicitly null.
272 2009-12-07 Atsushi Enomoto <atsushi@ximian.com>
274 * ChannelDispatcher.cs : handle AddressFilterMode (.Any only yet).
275 * OperationInvokerHandler.cs : fix wrong IAsyncResult use.
277 2009-12-07 Atsushi Enomoto <atsushi@ximian.com>
279 * InstanceBehavior.cs : allow nonpublic instance.
280 * DefaultOperationInvoker.cs : do use IsSynchronous correctly.
282 2009-10-22 Atsushi Enomoto <atsushi@ximian.com>
284 * ChannelDispatcher.cs : disable concurrent channel acceptance
285 until it gets working fine.
287 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
289 * ChannelDispatcher.cs : fix warnings.
291 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
293 * ClientOperation.cs, ClientRuntime.cs : another couple of changes
294 are required to not use non-SL types.
296 2009-10-16 Atsushi Enomoto <atsushi@ximian.com>
298 * ClientRuntime.cs : enable Operations property on monotouch.
299 Hopefully it will enable us to build WebHttpBinding.
301 2009-10-09 Atsushi Enomoto <atsushi@ximian.com>
303 * ChannelDispatcher.cs : OnOpened/OnOpening constraints related
304 changes were required here too. Actually it simplified code.
306 2009-10-06 Atsushi Enomoto <atsushi@ximian.com>
308 * OperationInvokerHandler.cs : a bit more explaining message.
310 2009-10-05 Atsushi Enomoto <atsushi@ximian.com>
312 * ChannelDispatcher.cs : make sure to close, *and* abort channels
313 in case they failed to close. Also consider close timeouts.
314 Rename a field to make less confusing.
316 2009-09-17 Atsushi Enomoto <atsushi@ximian.com>
318 * ChannelDispatcher.cs, EndpointDispatcher.cs :
319 when an EndpointDispatcher is added to ChannelDispatcher, its
320 ChannelDispatcher property is automatically filled. To do this,
321 create a derived collection type for Endpoints (that's what .NET
322 does). Remove extra InitializeEndpoint() argument.
324 2009-09-17 Atsushi Enomoto <atsushi@ximian.com>
326 * OperationInvokerHandler.cs : make error message a bit verbose.
328 2009-09-16 Atsushi Enomoto <atsushi@ximian.com>
330 * ChannelDispatcher.cs : make sure to close the request context,
331 some channels such as http keeps opening it. Patch by Levi Bard.
334 2009-09-14 Atsushi Enomoto <atsushi@ximian.com>
336 * ChannelDispatcher.cs : do not try to wait for channel closer
337 handle when the loop is not started yet. This fixes lengthy wait
340 2009-09-11 Atsushi Enomoto <atsushi@ximian.com>
342 * EndpointDispatcher.cs : AddressFilter is always non-null.
343 * DispatchRuntime.cs : CallbackClientRuntime seems to be created even
344 for non-callback dispatchers. Fixing this also results in fixes in
345 couple of nunit regressions.
346 * InputOrReplyRequestProcessor.cs : the change above required fix
347 here too (it has null check).
349 2009-09-11 Atsushi Enomoto <atsushi@ximian.com>
351 * BaseMessagesFormatter.cs, DefaultOperationInvoker.cs:
352 Fix the crash that ref parameter in contract methods caused.
354 2009-09-04 Atsushi Enomoto <atsushi@ximian.com>
356 * OperationInvokerHandler.cs, ReplyHandler.cs :
357 - Eliminate ReplyHandler use. What is does is simple reply, while
358 it brings inconsistency between sync and async models.
359 What reply handler used to do are now integrated.
360 - Support ErrorHandlers and InputSessionShutdownHandlers.
361 Actually ErrorHandlers were processed at wrong place and they
362 weren't called where they are expected.
363 * InputOrReplyRequestProcessor.cs : hence eliminated ReplyHandler.
364 * BaseRequestProcessor.cs : add FIXME notes on ErrorHandlers.
366 2009-09-04 Atsushi Enomoto <atsushi@ximian.com>
368 * ChannelDispatcher.cs : remove obsoleted method.
370 2009-09-02 Atsushi Enomoto <atsushi@ximian.com>
372 * BaseMessagesFormatter.cs :
373 implement XmlBodyWriter.OnCreateBufferedCopy().
375 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
377 * CallbackInstanceContextProvider.cs : new instance context provider
378 used by duplex client dispatcher.
380 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
382 * SecurityHandler.cs : skip callback duplex blocker.
384 2009-08-24 Atsushi Enomoto <atsushi@ximian.com>
386 * EndpointDispatcher.cs, ChannelDispatcher.cs : differentiate
387 service dispatch and callback client dispatch at initialization.
389 2009-08-21 Atsushi Enomoto <atsushi@ximian.com>
391 * ChannelDispatcher.cs : also made reference to host optional.
393 2009-08-21 Atsushi Enomoto <atsushi@ximian.com>
395 * ChannelDispatcher.cs : isolated loop manager class from parent,
396 as well as moved some code from parent.
398 2009-08-21 Atsushi Enomoto <atsushi@ximian.com>
400 * ChannelDispatcherCollection.cs : remove extra members.
402 2009-08-21 Atsushi Enomoto <atsushi@ximian.com>
404 * ChannelDispatcher.cs, EndpointDispatcher.cs :
405 moved some initialization code from ServiceHostBase, to start
406 reducing dependencies on ServiceHostBase.
408 2009-08-20 Atsushi Enomoto <atsushi@ximian.com>
410 * ChannelDispatcher.cs : handle unknown message in host event.
412 2009-08-17 Atsushi Enomoto <atsushi@ximian.com>
414 * EndpointDispatcher.cs : do not try to create wrong filter.
416 2009-08-14 Atsushi Enomoto <atsushi@ximian.com>
418 * ChannelDispatcher.cs : EndpointNotFoundException message could
421 2009-08-11 Atsushi Enomoto <atsushi@ximian.com>
423 * IOperationInvoker.cs : fix interface.
424 * DefaultOperationInvoker.cs : refresh implementation of the above.
425 * BaseMessagesFormatter.cs, OperationInvokerHandler.cs :
426 dependent changes for above.
428 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
430 * InputOrReplyRequestProcessor.cs : now it could return an instance
431 of dynamically generated proxy over DuplexServiceRuntimeChannel.
433 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
435 * ClientRuntime.cs : oops, it should have been committed at a time.
436 Change .ctor() args. Make some properties auto.
438 2009-08-07 Atsushi Enomoto <atsushi@ximian.com>
440 * DispatchRuntime.cs : callback runtime is set later.
442 2009-08-06 Atsushi Enomoto <atsushi@ximian.com>
445 .ctor() just needs contract. Fill some properties.
447 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
449 * ReplyHandler.cs : there is better way to check IsOneWay.
451 2009-08-04 Atsushi Enomoto <atsushi@ximian.com>
453 * OperationInvokerHandler.cs : One way operation has no reply.
454 * ReplyHandler.cs : ditto.
456 2009-07-31 Atsushi Enomoto <atsushi@ximian.com>
458 * ChannelDispatcher.cs : raise error on multiple endpoint match
459 (documented at EndpointDispatcher.FilterPriority).
461 2009-07-28 Atsushi Enomoto <atsushi@ximian.com>
463 * ChannelDispatcher.cs : move Open() inside acceptor lock, so that
464 the channel does not have to be fired Receive() before Open().
466 2009-07-14 Atsushi Enomoto <atsushi@ximian.com>
468 * DispatchRuntime.cs : add ValidateMustUnderstand.
469 * DispatchOperation.cs : add AutoDisposeParameters.
471 2009-07-02 Atsushi Enomoto <atsushi@ximian.com>
473 * ChannelDispatcher.cs : when service instance is provided to the
474 ServiceHost, do not reject Type-less state.
476 2009-06-29 Atsushi Enomoto <atsushi@ximian.com>
478 * ChannelDispatcher.cs : do not iterate extra channel acceptance
479 and hence close channels a bit more gracefully.
481 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
483 * ChannelDispatcher.cs : instead of discarding channels, reuse them
484 unless it is closed by session manager (session manager does not
485 work, so channels are not actually closed automatically yet).
487 2009-06-25 Atsushi Enomoto <atsushi@ximian.com>
489 * SessionInstanceContextProvider.cs : new instance context provider.
491 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
493 * DispatchRuntime.cs : do not fill InstanceContextProvider here.
494 * ChannelDispatcher.cs : do it here instead.
495 * ChannelDispatcherCollection.cs : remove TODOs.
497 2009-06-23 Atsushi Enomoto <atsushi@ximian.com>
499 * InputOrReplyRequestProcessor.cs : bogus initialization.
501 2009-06-18 Atsushi Enomoto <atsushi@ximian.com>
503 * ChannelDispatcher.cs : significant changes:
504 - simplified Open/Close async.
505 - implement OnAbort().
506 - create ServiceThrottle when it is null.
507 - Channels are accepted as much as the throttle allows, and
508 process requests when accepted an input (now it holds more than
510 - Support ReceiveSynchronously and use Begin/EndAcceptChannel()
512 - Close all channels and the listener when it is closed.
513 - Cosmetic simplification on channel acceptor delegate creation.
515 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
517 * ChannelDispatcher.cs : avoid NRE (actually it should eliminate
518 Thread.Abort()). Added some comments on throttling.
520 2009-06-09 Atsushi Enomoto <atsushi@ximian.com>
522 * ServiceThrottle.cs : implement.
524 2009-06-08 Atsushi Enomoto <atsushi@ximian.com>
526 * ChannelDispatcher.cs :
527 Add call to base (see CommunicationObject change).
529 2009-06-01 Atsushi Enomoto <atsushi@ximian.com>
531 * ChannelDispatcher.cs : handle more errors gracefully.
533 2009-05-18 Atsushi Enomoto <atsushi@ximian.com>
535 * ErrorProcessingHandler.cs, InputOrReplyRequestProcessor.cs :
536 they also premise request-reply channel and broke duplex channels.
538 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
540 * ChannelDispatcher.cs : open channel before using it.
542 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
544 * ReplyHandler.cs, InputOrReplyRequestProcessor.cs,
545 MessageProcessingContext.cs : reply processing is also needed by
546 non-request channels (i.e. duplex). Current code basis lacked
547 such possibility. Quick fix by adding duplex support in
550 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
552 * ChannelDispatcher.cs, SecurityHandler.cs,
553 InputOrReplyRequestProcessor.cs, MessageProcessingContext.cs :
554 remove default communication timeouts from several types. They
555 bring bogus NRE. Instead, fill timeouts in ChannelDispatcher and
556 use it when required (it was actually *only* request processor).
558 2009-05-13 Atsushi Enomoto <atsushi@ximian.com>
560 * ChannelDispatcher.cs : wrong channel argument.
562 2009-04-27 Atsushi Enomoto <atsushi@ximian.com>
564 * DispatchRuntime.cs : some comment.
565 * ChannelDispatcher.cs : ongoing changes to handle listeners and
566 accepted channels at more precise state. Listeners are opened,
567 without accepting channels. Some setup code is done at OnOpen(),
568 while some are done at OnOpened().
570 2009-04-23 Atsushi Enomoto <atsushi@ximian.com>
572 * DispatchOperation.cs : implement GetFormatter() at service side too.
574 2009-04-01 Atsushi Enomoto <atsushi@ximian.com>
576 * OperationInvokeHandler.cs : replace MS copycat exception message.
578 2009-02-26 Atsushi Enomoto <atsushi@ximian.com>
580 * ClientRuntime.cs : fill contractType in .ctor().
582 2009-02-04 Atsushi Enomoto <atsushi@ximian.com>
584 * BaseMessagesFormatter.cs : do not use non-2.1 CreateInstance().
586 2008-06-18 Noam Lampert <noaml@mainsoft.com>
588 * ChannelDispatcher.cs: Avoid aborting host process on faulty input message.
590 2008-05-22 Noam Lampert <noaml@mainsoft.com>
592 * OperationInvokeHandler.cs: Only return fault reply when TargetInvocation occured (not other internal
593 errors. Serlialize the correct (inner) exception.
595 2008-05-22 Roei Erez <roeie@mainsoft.com>
596 * fix ContractDescription.GetContract implementation
597 * Refactor Request processing
598 * Add support for message inspectors
599 * Add support for InstanceContextProvider & InstanceProvider, including lifecycles events
600 like: ReleaseServiceInstance, Open, Close...
601 * Add relevant test cases.
603 2008-05-01 Eyal Alaluf <eyala@mainsoft.com>
605 * BaseMessagesFormatter.cs: Handle methods with out parameters that return
607 * DispatchOperation.cs, IOperationInvoker.cs: Simplify method invocation.
609 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
611 * DispatchOperation.cs: removed dependency on OperationDescription,
612 allows usage of custom channel dispatcher without endpoint was explicitly
615 2008-04-22 Igor Zelmanovich <igorz@mainsoft.com>
617 * MexInstanceContextProvider.cs - remove unused code.
619 2008-04-21 Roei Erez <roeie@mainsoft.com>
621 * ChannelDispatcher.cs - Change order of Dispatcher shutdown
623 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
625 * ChannelDispatcher.cs, EndpointDispatcher.cs: removed dependency on
626 ServiceDescription/ServiceEndpoint, allows usage of channel dispatcher
627 without endpoint was explicitly built
628 * EndpointDispatcher.cs: Filters lazy evaluation, refactored
629 communication processing, logic moved to channel dispatcher
631 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
633 * ActionMessageFilter.cs: fixed Match, match for "*" action
635 2008-04-17 Vladimir Krasnov <vladimirk@mainsoft.com>
637 * DispatchOperation.cs: fixed ProcessRequest, fault message creation
639 2008-04-10 Eyal Alaluf <eyala@mainsoft.com>
641 * DefaultMessageOperationFormatter.cs: Moved to BaseMessagesFormatter.cs.
642 * BaseMessagesFormatter.cs: Refactored so typed messages uses the classes
643 defined here instead of the other way around.
644 Added support for by-ref and out parameters.
645 Added support for XmlSerializerFormat serializaters..
646 * DispatchOperation.cs, ClientOperation.cs: Use BaseMessagesFormatter.Create
648 2008-04-09 Roei Erez <roeie@mainsoft.com>
650 * Remove unused nethod from previous commit
652 2008-04-08 Roei Erez <roeie@mainsoft.com>
654 * ChannelDispatcher.cs
656 - Add support for Endpoints property
657 - Remove the hack of 'endpoint_dispatcher' field
658 * ChannelDispatcherCollection.cs
659 - Add support for 'Attach' 'Detach'
660 * EndpointDispatcher.cs
661 - By default create MatchAllMessageFilter.
663 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
665 * EndpointDispatcher.cs : we don't need AddressFilter workaround
666 from Feb. 14 anymore.
668 2008-02-17 Atsushi Enomoto <atsushi@ximian.com>
670 * EndpointDispatcher.cs : after service method call, apply outgoing
671 headers and properties to the returned message.
673 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
675 * ChannelDispatcher.cs : populate DispatchOperations before applying
676 IEndpointBehaviors so that those behaviors can modify dispatch
679 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
681 * DispatchOperation.cs : Action may be null. For such cases, use
682 MessageDirection to determine the message description.
684 2008-02-15 Atsushi Enomoto <atsushi@ximian.com>
686 * EndpointAddressMessageFilter.cs : implement Match(MessageBuffer).
687 Use ordinal string comparison.
688 * PrefixEndpointAddressMessageFilter.cs : implement Match() (both).
690 2008-02-14 Atsushi Enomoto <atsushi@ximian.com>
692 * EndpointDispatcher.cs : moved AddressFilter application only when
693 DispatchOperation was not selected (it is sort of workaround).
695 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
697 * DefaultMessageOperationFormatter.cs : Fixed SerializeReply() for
698 message contract type to process result, not the parameter.
700 2007-08-19 Atsushi Enomoto <atsushi@ximian.com>
702 * SingletonInstanceContextProvider.cs : new.
704 2007-08-17 Atsushi Enomoto <atsushi@ximian.com>
706 * DefaultMessageOperationFormatter.cs : dependent changes on
707 message serializer and deserializer.
709 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
711 * DefaultMessageOperationFormatter.cs :
712 use it for deserialization as well.
714 2007-03-24 Atsushi Enomoto <atsushi@ximian.com>
716 * DefaultMessageOperationFormatter.cs : consider message contracts
717 during message serialization/deserialization.
719 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
721 * EndpointDispatcher.cs : now dispatcher-side foundation for token
722 negotiation is ready. Handle negotiation message on its own way.
723 * DispatchOperation.cs : instead of returning irrelevant SOAP Fault,
724 simply raise an error and let FaultConverter do better work.
726 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
728 * EndpointDispatcher.cs : use ErrorHandlers when error was raised.
729 Handle exceptions to make into SOAP Fault, using FaultConverter.
730 * ChannelDispatcher.cs : simply get ServiceEndpoint at Attach().
731 * ChannelDispatcherBase.cs : removed MonoTODOs.
733 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
735 * ChannelDispatcher.cs, DispatchRuntime.cs, EndpointDispatcher.cs :
736 moved most of request/input processing to EndpointDispatcher.cs.
737 Also, ChannelDispatcher now contains code for behavior
740 2007-03-07 Atsushi Enomoto <atsushi@ximian.com>
742 * ChannelDispatcher.cs : some cosmetic refactoring on error handling
745 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
747 * ChannelDispatcher.cs, DispatchRuntime.cs, DispatchOperation.cs :
748 Support OperationContext and OperationContextScope with
749 ServiceRuntimeChannel as its .ctor() input.
751 2006-12-14 Atsushi Enomoto <atsushi@ximian.com>
753 * DispatchRuntime.cs : raise an error when the DispatchOperation
754 returned null Message.
756 2006-10-18 Ankit Jain <jankit@novell.com>
758 * MexInstanceContextProvider.cs (HttpGetInstanceContextProvider): New.
759 * DispatchOperation.cs (DoProcessRequest): InstanceContext returned by
760 the provider can be null.
761 * EndpointAddressMessageFilter.cs (Match): Handle IncludeHostNameInComparison.
763 2006-10-12 Atsushi Enomoto <atsushi@ximian.com>
765 * DispatchOperation.cs : slightly improved exception message.
767 2006-10-06 Ankit Jain <jankit@novell.com>
769 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore):
770 ReceiveRequest can return null.
772 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
774 * ClientRuntime.cs : added MaxFaultSize.
776 2006-10-05 Atsushi Enomoto <atsushi@ximian.com>
778 * ChannelDispatcher.cs : don't reject anonymous and null To.
780 2006-10-04 Ankit Jain <jankit@novell.com>
782 * ChannelDispatcher.cs (ListenerLoopManager.StartLoopCore): Reply with a
783 Fault message if message's To doesn't match the endpoint.
784 (ListenerLoopManager.CreateDestinationUnreachable): New.
785 * IInstanceContextProvider.cs: New.
786 * MexInstanceContextProvider.cs: New. InstanceContextProvider for
788 (MetadataExchange): Implementation of IMetadataExchange.
789 * DispatchRuntime.cs (InstanceContextProvider): Add missing property.
790 * DispatchOperation.cs (DoProcessRequest): Use InstanceContextProvider
791 if available to obtain service instance.
792 * EndpointDispatcher.cs (.ctor): Set AddressFilter to EndpointAddressMessageFilter.
793 * EndpointAddressMessageFilter.cs (Match): Implement.
795 2006-10-03 Atsushi Enomoto <atsushi@ximian.com>
797 * ClientRuntime.cs : added InteractiveChannelInitializer.
799 2006-09-12 Atsushi Enomoto <atsushi@ximian.com>
801 * DispatchOperation.cs : removed extra comment.
803 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
805 * DispatchOperation.cs : workaround to send exception detail.
807 2006-09-06 Atsushi Enomoto <atsushi@ximian.com>
809 * ICallContextInitializer.cs : new file.
810 * DispatchOperation.cs : use above.
811 Not sure if it works correctly though.
813 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
815 * DispatchOperation.cs : when there is an error during
816 ProcessRequest(), wrap the exception with MessageFault and return
819 2006-08-10 Duncan Mak <duncan@novell.com>
821 * ExceptionHandler.cs: New file.
823 * ServiceThrottle.cs (MaxConnections): Renamed to
824 MaxConcurrentSessions.
825 (MaxInstances): Renamed to MaxConcurrentInstances.
827 2006-07-27 Atsushi Enomoto <atsushi@ximian.com>
829 * IInteractiveChannelInitializer.cs : new file.
831 2006-07-14 Atsushi Enomoto <atsushi@ximian.com>
833 * IErrorHandler.cs : API updates.
835 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
837 * DispatchRuntime.cs :
838 it was selecting UnhandledOperation unexpectedly.
839 * DispatchOperation.cs : added FIXME comment.
841 2006-07-13 Atsushi Enomoto <atsushi@ximian.com>
843 * DefaultMessageOperationFormatter.cs : Remove hack for non-
844 (de)serializing Message-based methods. They are now moved to
845 ClientBase and ServiceHostBase to explicitly set
846 [Serialize|Deserialize][Request|Reply].
848 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
850 * DefaultMessageOperationFormatter.cs : don't omit action on
851 SerializeRequest. Do it in SerializeReply.
853 2006-07-12 Atsushi Enomoto <atsushi@ximian.com>
855 * DefaultMessageOperationFormatter.cs : When addressing version is
856 None, then omit reply action. This logic is moved from MessageImpl.
858 2006-07-11 Atsushi Enomoto <atsushi@ximian.com>
860 * DefaultMessageOperationFormatter.cs :
861 return message, not parameter[0]. Removed some extra FIXMEs.
863 2006-07-10 Atsushi Enomoto <atsushi@ximian.com>
865 * DefaultMessageOperationFormatter.cs : when the parameter is
866 Message and the return type is Message, then do not use
869 2006-07-07 Atsushi Enomoto <atsushi@ximian.com>
871 * PrefixEndpointAddressMessageFilter.cs, FaultContractInfo.cs :
872 new types in June CTP.
873 * ISharedInstanceSessionLifetime.cs:
875 * ChannelDispatcher.cs, MatchAllMessageFilter.cs, DispatchRuntime.cs,
876 DispatchOperation.cs, ClientRuntime.cs, MatchNoneMessageFilter.cs,
877 ClientOperation.cs, ActionMessageFilterTable.cs,
878 EndpointAddressMessageFilterTable.cs :
879 several minor fixes for June CTP.
881 2006-07-06 Atsushi Enomoto <atsushi@ximian.com>
883 * DispatchOperation.cs : MessageFault.DefaultAction vanished.
885 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
887 * IClientFormatter.cs, IClientMessageFormatter.cs,
888 IDispatchFormatter.cs, IDispatchMessageFormatter.cs :
889 renamed former to latter, for each.
891 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
893 * ChannelDispatcher.cs, DispatchRuntime.cs :
894 IRequestContext -> RequestContext.
896 2006-07-05 Atsushi Enomoto <atsushi@ximian.com>
898 * ChannelDispatcher.cs, IDispatchFormatter.cs,
899 DefaultMessageOperationFormatter.cs, IClientFormatter.cs,
900 DispatchOperation.cs, ClientOperation.cs :
901 some June CTP updates.
903 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
905 * DefaultMessageOperationFormatter.cs : implement SerializeRequest()
906 and DeserializeReply(). Now simple ClientBase<T> sample is working.
908 2006-06-22 Atsushi Enomoto <atsushi@ximian.com>
910 * ClientOperation.cs : added GetFormatter() to support message
911 serialization/deserialization.
912 * DispatchOperation.cs : made some internal members private
913 (they are exposed extraneously). Commented out debugging code.
915 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
917 * DefaultMessageOperationFormatter.cs : In SerializeReply(), use
918 custom BodyWriter() and use MessagePartDescription names. Now
919 return value and other (ref/out) parameters could be equivalently
920 serialized (at this method; to support them more love is needed).
922 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
924 * DefaultMessageOperationFormatter.cs :
925 Action for response is null (though it is likely conditional).
927 2006-06-20 Atsushi Enomoto <atsushi@ximian.com>
929 * DefaultMessageOperationFormatter.cs :
930 true DeserializeReply implementation using Message.CreateMessage()
931 with DataContractSerializer (not complete though).
933 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
935 * ChannelDispatcher.cs, DispatchOperation.cs,
936 ChannelDispatcherBase.cs :
937 some updated API fixes.
939 2006-05-29 Atsushi Enomoto <atsushi@ximian.com>
941 * EndpointDispatcher.cs : moved from Sys.ServiceModel.
943 2006-04-20 Atsushi Enomoto <atsushi@ximian.com>
945 * ClientRuntime.cs : some minor collection instantiation and comments.
947 2006-04-07 Atsushi Enomoto <atsushi@ximian.com>
949 * DispatchOperation.cs : Implemented internal MessageVersion.
950 hacked instance provision by using Activator.CreateInstance.
951 * DefaultMessageOperationFormatter.cs : fixed DeserializeRequest to
952 be functional. Implemented SerializeReply.
954 2006-04-05 Atsushi Enomoto <atsushi@ximian.com>
956 * DispatchOperation.cs : return SOAP fault message for nonexistent
958 * DefaultMessageOperationFormatter.cs : implemented
959 DeserializeRequest(), though there is no working example.
961 2006-03-17 Atsushi Enomoto <atsushi@ximian.com>
963 * DispatchOperation.cs : implemented logic to acquire
964 OperationDescription. Added code for default IDispatchFormatter
966 * DispatchRuntime.cs : fix warning.
967 * DefaultMessageOperationFormatter.cs : new file, for default
968 IDispatchFormatter implementation (not done yet).
969 * ChannelDispatcher.cs : create EndpointDispatcher in Attach and
970 bind to this instance.
972 2006-03-16 Atsushi Enomoto <atsushi@ximian.com>
974 * ChannelDispatcherCollection.cs : added parameterless ctor().
975 * ChannelDispatcher.cs DispatchRuntime.cs DispatchOperation.cs :
976 Set some initial field values as proved in unit tests.
977 Request/input processing is still ongoing.
979 2006-03-13 Atsushi Enomoto <atsushi@ximian.com>
981 * ChannelDispatcher.cs
983 DispatchOperation.cs : added request/input processing code.
985 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
987 * ChannelDispatcher.cs : Get "AcceptChannel" method without ambiguity.
989 2006-03-07 Atsushi Enomoto <atsushi@ximian.com>
991 * ChannelDispatcher.cs : Added request-processing code.
993 2006-03-06 Atsushi Enomoto <atsushi@ximian.com>
995 * ChannelDispatcher.cs : implement Attach() and Detach() more to work.
997 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
999 * DispatchBehavior.cs :
1000 Dependent fixes for System.IdentityModel reorgainzation.
1002 2006-02-23 Atsushi Enomoto <atsushi@ximian.com>
1004 * FilterNodeQuotaExceededException.cs
1005 FilterInvalidBodyAccessException.cs DispatchBehavior.cs
1006 DispatchOperation.cs NavigatorInvalidBodyAccessException.cs
1007 MatchNoneFilter.cs ActionFilter.cs
1008 MultipleFilterMatchesException.cs Filter.cs
1009 IInstanceContextInitializer.cs XPathFilter.cs
1010 IDispatchOperationSelector.cs MatchAllFilter.cs
1011 ActionFilterTable.cs EndpointAddressFilter.cs FilterTable.cs
1012 EndpointFilterTable.cs XPathMessageContext.cs
1013 IEndpointDispatcher.cs ProxyBehavior.cs
1014 ProxyOperation.cs XPathFilterTable.cs
1015 EndpointAddressFilterTable.cs InvalidBodyAccessException.cs
1016 IFilterTable.cs IOperationInvoker.cs :
1017 moved from System.ServiceModel due to the API changes.