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