On 9/30/07, Maarten Bosteels <[EMAIL PROTECTED]> wrote:
> On 9/30/07, Trustin Lee <[EMAIL PROTECTED]> wrote:
> > Hi Maarten,
> >
> > On 9/30/07, Maarten Bosteels <[EMAIL PROTECTED]> wrote:
> > > Hi all,
> > >
> > > We should add a method for remving a property from the context:
> > >
> > > public static void removeProperty(IoSession session, String key) {
> > > if (key == null) {
> > > throw new NullPointerException("key should not be null");
> > > }
> > > Context context = getContext(session);
> > > context.remove(key);
> > > }
> >
> > Good idea.
> >
> > > And maybe the option to immediately set the property in the MDC, since
> > > in the current implementation, the property does not show up for log
> > > statements generated during the handling of the current event.
> > > Therefor I suggest adding this method:
> > >
> > > public static void setProperty (IoSession session, String key,
> > > String value, boolean immediate) {
> > > if (key == null) {
> > > throw new NullPointerException("key should not be null");
> > > }
> > > if (value == null) {
> > > removeProperty(session, key);
> > > }
> > > Context context = getContext(session);
> > > context.put(key, value);
> > > if (immediate) {
> > > MDC.put(key, value);
> > > }
> > > }
> > >
> > > And a default value of true:
> > >
> > > public static void setProperty (IoSession session, String key,
> > > String value) {
> > > setProperty(session, key, value, true);
> > > }
> >
> > Is there any case that a user need to call with false?
>
> I think it will be rare indeed. Suppose some user thread (not related
> to a mina event) is looping over a set of IoSessions and sets a
> property in the context of each session.
> Maybe it's too rare to take into account ?
> You think the extra parameter is cluttering the API ?
I can't think of a practical usage of the scenario you described. We
could probably add it later when there's any user demand. :)
Cheers,
Trustin
--
what we call human nature is actually human habit
--
http://gleamynode.net/
--
PGP Key ID: 0x0255ECA6