You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@onami.apache.org by "Simone Tripodi (JIRA)" <ji...@apache.org> on 2013/03/03 20:21:12 UTC

[jira] [Comment Edited] (ONAMI-97) Refactoring/generalization of Onami LifeCycle.

    [ https://issues.apache.org/jira/browse/ONAMI-97?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13591838#comment-13591838 ] 

Simone Tripodi edited comment on ONAMI-97 at 3/3/13 7:20 PM:
-------------------------------------------------------------

Sorry, I meant: adopting your proposal, would it be possible to defrag the lifecycle module in small submodules?

We have the good tradition here to include also the `all` module which includes all the submodules in one single jar - see the [converters] for example.

TIA!
                
      was (Author: simone.tripodi):
    Sorry, I meant: would it be possible to defrag the current lifecycle module in small submodules?

We have the good tradition here to include also the `all` module which includes all the submodules in one single jar - see the [converters] for example.

TIA!
                  
> Refactoring/generalization of Onami LifeCycle.
> ----------------------------------------------
>
>                 Key: ONAMI-97
>                 URL: https://issues.apache.org/jira/browse/ONAMI-97
>             Project: Apache Onami
>          Issue Type: Brainstorming
>          Components: lifecycle
>            Reporter: Jordan Zimmerman
>         Attachments: lifecycle.zip
>
>
> Currently, Onami LifeCycle supports multiple post injection annotations that are 
> invoked after instantiated by Guice. It also supports a Dispose container that
> holds references to injected objects whereby annotated methods will be invoked
> in reverse injection order when the user calls a container method.
> I'd like to generalize both post injection and container to support
> more open-ended features. The features are being driven by functionality in Governator.
> For post injection, Governator supports ordering of annotations. i.e. @PreConfiguration 
> methods are invoked before @PostConstruct methods. For the life cycle container,
> Governator supports a @Warmup annotation and others. @Warmup methods are invoked by user
> direction after the Guice Injector has been created. 
> The change to post injection is straightforward. Instead of specifying a single post
> injection annotation, an ordered list of annotations is specified. The Guice
> injection listener is modified to iterate over the annotation list in order looking
> for matching methods.
> The change to the life cycle container is more involved. For clarity, the various classes
> and methods are renamed from "Dispose*" to "Stage*". The DefaultStager (formerly DefaultDisposer)
> takes a new argument that determines if objects are processed first-in-first-out or 
> first-in-last-out. The Stager interface is now parameterized with the Annotation
> that represents the "stage". The LifeCycleStageModule now binds with its parameterized
> annotation so that Stagers of each stage type can be injected. i.e.
> 	@Inject
> 	public Foo( Stager<Dispose> disposer )
> 	
> ...
> 	@Inject
> 	public Bar( Stager<Warmup> warmups )
> 	
> Obviously this is a very big change. My goal is to enhance Onami Lifecycle so that I
> can use it in Governator. I've enclosed the implementation as a zip file instead of a
> patch to make things easier to look at.
> I look forward to discussion/ideas on this!

--
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