[ https://issues.apache.org/jira/browse/ONAMI-102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13618183#comment-13618183 ]
Jordan Zimmerman commented on ONAMI-102: ---------------------------------------- I tend not to like allocating Builders. I prefer the Guice style of Guice.createInjector()... Is it the static method that you dislike or the name? > Redesign the Modules structure in order to simply APIs usage > ------------------------------------------------------------ > > Key: ONAMI-102 > URL: https://issues.apache.org/jira/browse/ONAMI-102 > Project: Apache Onami > Issue Type: Improvement > Components: lifecycle > Affects Versions: lifecycle-0.2.0 > Reporter: Simone Tripodi > Assignee: Jordan Zimmerman > Fix For: lifecycle-0.2.0 > > > We already started discussing about it in the ML, but let's track progresses > on JIRA. > I detected few areas of approaching the lifecycle design: > * IIUC, we want to manage a series of annotations which identify the > sequence of staging steps in the lifecycle, so IMHO the > AbstractLifeCycleModule constructor with just one annotation has to > disappear; it would be nice to have a varargs array, which would simplify the > signature - and the usage from our users - but it would generate an annoying > warning to our users; IMHO it is still acceptable, but in case we don't find > an agreement here, Iterable should be the best way to pass the annotations > sequence to the module. > * ListBuilder: as already discussed, this sound too generic: I'd propose > something like AnnotationsLifecycleSequenceBuilder (maybe it is too verbose > :P) but I'd opt for something that gives a precise idea, not a generic one; > * Again on the list builder, as we discussed, IMHO the wrapped data > structure should be a LinkedHashSet: it preserves the sequence and makes > efficient the check for duplicates - if the list has a duplicate, I bet the > lifecycle event would be handled twice; > * Builder pattern: the way to get the builder is IMHO a little too verbose: > Builder.newBuilder() is not a pattern that makes me particularly happy, I'd > rather opt for inner class builder such as {{new ConcreteClass.Builder()}} > which is used in the AsyncHttpClient - WDYT? > I can even make a proposal, in order to show you better my ideas, and attach > a patch to discuss together -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira