Inline,

On 3/10/2010 9:09 PM, Simone Busoli wrote:
Anyone? Can I go on with the proposed changes?

2010/3/9 Simone Busoli <[email protected] <mailto:[email protected]>>

    So giving a look at the change log I noticed that there was a
    breaking change that was not reflected in the docs.
    The xml docs for SelectInterceptors say that
            "If the selector is not interested in modifying the
    interceptors for this model, it
            /// should return a null reference and the next selector
    in line would be executed (or the default
            /// model.Interceptors)
            /// If the selector return a non null value, this is the
    value that is used, and the model.Interectors are ignored, if this
            /// is not the desirable behavior, you need to merge your
    interceptors with the ones in model.Interecptors yourself.
            "
    That's not true since the change modified the behavior so that the
    model.Interceptors are always appended after all interceptors
    returned by all interceptor selectors, if any, so it's not true
    that by returning any interceptors from a selector then the
    default ones are discarded. This inconsistency can bring to
    duplicate interceptors being applied.

Yeap, that should be fixed, to not allow duplicates


    In addition to this I think HasInterceptors is misleading,
    therefore I would suggest calling it before calling
    SelectInterceptors so that in case the first returns false then
    the second is not called. This is to centralize the logic to
    decide whether a model has interceptors or not in a single place.

Fine by me.


    Finally, I'd suggest to make the SelectInterceptors contract
    clearer. Either modify the model.Interceptors collection or return
    something from the method, not both because it's hard to figure
    out where your interceptors end up WRT order, which is important.

I have no problem with that. The method has very general contract and generally if you implement this interface you want to have as much control as possible. I would leave it as is, especially that we're using this pattern in few other places as well.

Krzysztof


    Ideas?

    2010/3/8 Krzysztof Koźmic <[email protected]
    <mailto:[email protected]>>

        yes, as well as the official documentation.

        W dniu 8 marca 2010 21:50 użytkownik Simone Busoli
        <[email protected] <mailto:[email protected]>>
        napisał:
        > About the wiki, are there plans to move the contents in
        > using.castleproject.org <http://using.castleproject.org> there?
        >
        > 2010/3/8 Krzysztof Koźmic <[email protected]
        <mailto:[email protected]>>
        >>
        >> If we do one more v2.x build (which I'd like to do) we'd
        rather limit
        >> breaking changes.
        >> For v3.0 we have some major changes in mind already, so
        that would not be
        >> a big problem as long as the change and migration path are
        properly
        >> documented (see breakingchanges.txt file in repository)
        >>
        >> On 3/8/2010 9:16 PM, Simone Busoli wrote:
        >>
        >> Sure, although that would probably be a breaking change.
        >>
        >> 2010/3/8 Krzysztof Koźmic <[email protected]
        <mailto:[email protected]>>
        >>>
        >>> We'll be more than happy to discuss your ideas and patches
        with
        >>> improvements, both for code and documentation.
        >>>
        >>> cheers,
        >>> Krzysztof
        >>>
        >>> W dniu 8 marca 2010 21:12 użytkownik Simone Busoli
        >>> <[email protected] <mailto:[email protected]>>
        napisał:
        >>> > Thanks, I was just trying to figure out its behavior. I
        think
        >>> > interceptor
        >>> > selectors stuff can be improved, the API is not
        intuitive in my
        >>> > opinion, in
        >>> > that you need to know what you need to return for it to
        behave
        >>> > correctly,
        >>> > although it's documented in the xml docs but you usually
        don't see it
        >>> > since
        >>> > you're not the client of the API.
        >>> >
        >>> > 2010/3/8 Krzysztof Koźmic <[email protected]
        <mailto:[email protected]>>
        >>> >>
        >>> >> oh, and about docs, we added new wiki, that all docs
        will be migrated
        >>> >> to.
        >>> >> feel free to contribute :)
        >>> >>
        >>> >> http://stw.castleproject.org/Windsor.MainPage.ashx
        >>> >>
        >>> >>
        >>> >>
        >>> >> On 3/8/2010 9:04 PM, Simone Busoli wrote:
        >>> >>
        >>> >> Is there documentation about what purpose they are used
        for or should
        >>> >> I
        >>> >> look at the source? I'd expect to put in
        HasInterceptors the logic to
        >>> >> tell
        >>> >> whether SelectInterceptors should be called or not,
        otherwise I have
        >>> >> to
        >>> >> duplicate the logic in both methods.
        >>> >>
        >>> >> 2010/3/8 Krzysztof Koźmic <[email protected]
        <mailto:[email protected]>>
        >>> >>>
        >>> >>> That is correct. Both method are used at different
        spots and for
        >>> >>> different purpose.
        >>> >>>
        >>> >>> If selector wants is not interested in particular
        component it should
        >>> >>> return null from select method
        >>> >>>
        >>> >>> On 3/8/2010 6:54 PM, SimoneB wrote:
        >>> >>>>
        >>> >>>> Should IModelInterceptorsSelector have its
        SelectInterceptors method
        >>> >>>> called if HasInterceptors returns false?
        >>> >>>>
        >>> >>>> I'd expect not, but I'm experiencing the opposite.
        >>> >>>>
        >>> >>>>
        >>> >>>
        >>> >>> --
        >>> >>> You received this message because you are subscribed
        to the Google
        >>> >>> Groups
        >>> >>> "Castle Project Users" group.
        >>> >>> To post to this group, send email to
        >>> >>> [email protected]
        <mailto:[email protected]>.
        >>> >>> To unsubscribe from this group, send email to
        >>> >>> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >>> >>> For more options, visit this group at
        >>> >>> http://groups.google.com/group/castle-project-users?hl=en.
        >>> >>>
        >>> >>
        >>> >> --
        >>> >> You received this message because you are subscribed to
        the Google
        >>> >> Groups
        >>> >> "Castle Project Users" group.
        >>> >> To post to this group, send email to
        >>> >> [email protected]
        <mailto:[email protected]>.
        >>> >> To unsubscribe from this group, send email to
        >>> >> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >>> >> For more options, visit this group at
        >>> >> http://groups.google.com/group/castle-project-users?hl=en.
        >>> >>
        >>> >> --
        >>> >> You received this message because you are subscribed to
        the Google
        >>> >> Groups
        >>> >> "Castle Project Users" group.
        >>> >> To post to this group, send email to
        >>> >> [email protected]
        <mailto:[email protected]>.
        >>> >> To unsubscribe from this group, send email to
        >>> >> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >>> >> For more options, visit this group at
        >>> >> http://groups.google.com/group/castle-project-users?hl=en.
        >>> >
        >>> > --
        >>> > You received this message because you are subscribed to
        the Google
        >>> > Groups
        >>> > "Castle Project Users" group.
        >>> > To post to this group, send email to
        >>> > [email protected]
        <mailto:[email protected]>.
        >>> > To unsubscribe from this group, send email to
        >>> > [email protected]
        <mailto:castle-project-users%[email protected]>.
        >>> > For more options, visit this group at
        >>> > http://groups.google.com/group/castle-project-users?hl=en.
        >>> >
        >>>
        >>> --
        >>> You received this message because you are subscribed to
        the Google Groups
        >>> "Castle Project Users" group.
        >>> To post to this group, send email to
        >>> [email protected]
        <mailto:[email protected]>.
        >>> To unsubscribe from this group, send email to
        >>> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >>> For more options, visit this group at
        >>> http://groups.google.com/group/castle-project-users?hl=en.
        >>>
        >>
        >> --
        >> You received this message because you are subscribed to the
        Google Groups
        >> "Castle Project Users" group.
        >> To post to this group, send email to
        >> [email protected]
        <mailto:[email protected]>.
        >> To unsubscribe from this group, send email to
        >> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >> For more options, visit this group at
        >> http://groups.google.com/group/castle-project-users?hl=en.
        >>
        >> --
        >> You received this message because you are subscribed to the
        Google Groups
        >> "Castle Project Users" group.
        >> To post to this group, send email to
        >> [email protected]
        <mailto:[email protected]>.
        >> To unsubscribe from this group, send email to
        >> [email protected]
        <mailto:castle-project-users%[email protected]>.
        >> For more options, visit this group at
        >> http://groups.google.com/group/castle-project-users?hl=en.
        >
        > --
        > You received this message because you are subscribed to the
        Google Groups
        > "Castle Project Users" group.
        > To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        > To unsubscribe from this group, send email to
        > [email protected]
        <mailto:castle-project-users%[email protected]>.
        > For more options, visit this group at
        > http://groups.google.com/group/castle-project-users?hl=en.
        >

        --
        You received this message because you are subscribed to the
        Google Groups "Castle Project Users" group.
        To post to this group, send email to
        [email protected]
        <mailto:[email protected]>.
        To unsubscribe from this group, send email to
        [email protected]
        <mailto:castle-project-users%[email protected]>.
        For more options, visit this group at
        http://groups.google.com/group/castle-project-users?hl=en.



--
You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en.

--
You received this message because you are subscribed to the Google Groups "Castle 
Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to