sonatype/nexus — pull request #556 by cstamas (2012-10-03 11:03:50+00:00)
Title: NEXUS-5288: Appender class changed.

The appender did change between 2.1 and 2.2. Problem with
"upgrade step" is that log manager is started from a servlet
context listener, way before nexus is, hence, nexus upgrade
step would be able to do anything way after logback configuration
is loaded (and errors would be emitted about Appender).

After chatting with Alin, this looked the simplest: introduce
a marker interface, that would be implemented by those
implementations of LogConfigurationParticipant, that does NOT
want to let users tamper with their configuration. Event system
config participant is such LogConfigurationParticipant (see it's
config file, states "DO NOT EDIT").

When LogbackLogManager detects that a participant implements this
marker interface, it will not check for config file existence
(as it happened before this change) and write it out when not present,
but it will "blindly", always write it out, potentially replacing
the changed file.

Now, the LogbackNexusEventSystemLogConfigurationParticipant implements
the NonEditable marker interface and this resolves the problem,
as on upgrade (from X to 2.2), 2.2 will simply overwrite the
logback-event.xml.