[ 
https://issues.apache.org/jira/browse/LOG4J2-596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Sicker closed LOG4J2-596.
------------------------------

    Resolution: Implemented
      Assignee: Gary Gregory

Gary completed this recently.

> Core should consistently use the Lifecycle class and Status enum
> ----------------------------------------------------------------
>
>                 Key: LOG4J2-596
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-596
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.0-rc1
>            Reporter: Matt Sicker
>            Assignee: Gary Gregory
>              Labels: api, core, lifecycle
>         Attachments: Proposed_lifecycle_refactor.patch, 
> Proposed_lifecycle_refactor1.patch
>
>
> Appenders, Filters, and LoggerContext already use the LifeCycle interface, 
> but only LoggerContext has the idea of a volatile enum for its status. I 
> think this would be a good idiom to use throughout all the LifeCycle 
> implementations. There are other interfaces that would make sense to use the 
> LifeCycle interface for as well:
> * Configuration (it already uses two of the three methods using the same 
> exact signature)
> * Log4jWebInitializer (although the equivalent start() method here can throw 
> an UnavailableException, this could be changed to a RuntimeException of some 
> sort; it's already re-wrapped in one in the ServletContextListener 
> implementation)
> * Possibly some other areas if applicable.
> The bigger refactoring I think would be useful really is the status enum 
> usage. It would make things a bit more consistent. To compare this to OSGi, 
> it has the lifecycle states: installed, resolved, starting, active, stopping, 
> and uninstalled. A nice diagram [can be found 
> here|http://docs.spring.io/osgi/docs/2.0.0.M1/reference/html/images/bundle-states.png]
>  describing the OSGi lifecycle. I think this could be a good way to implement 
> generic lifecycle state in the relevant classes. This way, it will also make 
> it simpler to use appenders, filters, etc., as OSGi declarative services 
> (which doesn't require breaking everything up into bundles) which would help 
> reduce the need for class loading hacks in OSGi.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to