2013/6/21 Simone Tripodi <simonetrip...@apache.org>

> Thanks Jonas,
>
> would you submit a patch for that? TIA!
>
> -Simo
>
> http://people.apache.org/~simonetripodi/
> http://twitter.com/simonetripodi
>
>
> On Thu, Jun 20, 2013 at 11:09 PM, Jonas Sprenger <sprenger...@gmail.com>
> wrote:
> > Hi guys,
> >
> >  so we talk about an enum 'PROCESSING' providing at least 3 states?
> >
> > - CONTINUE
> > - COMPLETE
> > - ABORTED
>

Hi,

I'm not sure if we need ABORTED. What is the difference between COMPLETE
and ABORTED from the PoV of the Chain? Chain defines an algorithm for
processing and I currently don't see how ABORTED fits in there.

Benedikt


> >
> > Ticket CHAIN-98 <https://issues.apache.org/jira/browse/CHAIN-98> has
> been
> > created to cover this task.
> >
> > regards,
> > Jonas
> >
> > 2013/6/20 Simone Tripodi <simonetrip...@apache.org>
> >
> >> Hallo Bene,
> >>
> >> >  * JavaDoc of Command says that commands have to be designed in a
> >> > thread-safe manner, yet all the base implementations are not thread
> >> safe! I
> >> > have created CHAIN-96 [1] for this, because this definitely has to be
> >> fixed
> >> > before 2.0
> >>
> >> +1
> >>
> >> > * The same is true for o.a.c.chain2.Chain and its base implemenation.
> For
> >> > example there is a race condition in
> >> o.a.c.chain2.impl.ChainBase.add(CMD).
> >> > The method first checks the forzen flag and then acts... Another
> thread
> >> may
> >> > already have altered frozen. I have created CHAIN-97 [2] for this.
> >>
> >> ok, gut!
> >>
> >> >  * The use of Context<K, V> is inconsistent throughout the API.
> Commands
> >> > only need a C extends Map<K, V> for execution but the RemoveCommand
> >> > implements Command<K, V, Context<K, V>>. Why do we need the Context
> >> > interface anyway? It doesn't add much, the only method is just a
> generic
> >> > wrapper around Map.get(Object).
> >>
> >> Context must have disappeared from methods signatures some time ago,
> >> it is maybe a refuse - but at that time we agreed on creating a
> >> commodity interface which contains the <T extends V> T retrieve(K
> >> key); method;
> >>
> >> > * Base implementations should return the constants
> CONTINUE_PROCESSING or
> >> > PROCESSING_COMPLETE instead of returning true or false
> >>
> >> I'd even switch to enumeration to represent states...
> >>
> >> > * It may make sense to introduce an enum instead of working with
> booleans
> >> > as return values for commands.
> >>
> >> hahah nice one, I wrote the sentence above without reading the last
> >> bullet, sounds we have an agreement here... :)
> >>
> >> Thanks & Best,
> >> -Simo
> >>
> >> http://people.apache.org/~simonetripodi/
> >> http://twitter.com/simonetripodi
> >>
> >>
> >> On Thu, Jun 20, 2013 at 1:01 PM, Benedikt Ritter <brit...@apache.org>
> >> wrote:
> >> > Hi guys,
> >> >
> >> > I had a look at the command interface and it's base classes yesterday,
> >> and
> >> > I think there is some work to do :) Here are the points I found:
> >> >
> >> >  * JavaDoc of Command says that commands have to be designed in a
> >> > thread-safe manner, yet all the base implementations are not thread
> >> safe! I
> >> > have created CHAIN-96 [1] for this, because this definitely has to be
> >> fixed
> >> > before 2.0
> >> > * The same is true for o.a.c.chain2.Chain and its base implemenation.
> For
> >> > example there is a race condition in
> >> o.a.c.chain2.impl.ChainBase.add(CMD).
> >> > The method first checks the forzen flag and then acts... Another
> thread
> >> may
> >> > already have altered frozen. I have created CHAIN-97 [2] for this.
> >> >  * The use of Context<K, V> is inconsistent throughout the API.
> Commands
> >> > only need a C extends Map<K, V> for execution but the RemoveCommand
> >> > implements Command<K, V, Context<K, V>>. Why do we need the Context
> >> > interface anyway? It doesn't add much, the only method is just a
> generic
> >> > wrapper around Map.get(Object).
> >> > * Base implementations should return the constants
> CONTINUE_PROCESSING or
> >> > PROCESSING_COMPLETE instead of returning true or false
> >> > * It may make sense to introduce an enum instead of working with
> booleans
> >> > as return values for commands.
> >> >
> >> > Thoughts?
> >> >
> >> > Benedikt
> >> >
> >> > [1] https://issues.apache.org/jira/browse/CHAIN-96
> >> > [2] https://issues.apache.org/jira/browse/CHAIN-97
> >> >
> >> > --
> >> > http://people.apache.org/~britter/
> >> > http://www.systemoutprintln.de/
> >> > http://twitter.com/BenediktRitter
> >> > http://github.com/britter
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
http://people.apache.org/~britter/
http://www.systemoutprintln.de/
http://twitter.com/BenediktRitter
http://github.com/britter

Reply via email to