Well, the difference is that now the api (the ThreadContext.ContextStack interface) extends Collection, so all implementations now *must* support all methods declared on Collection. This was not a requirement before. (Not sure why spi.ThreadContextStack extends Collection, by the way. ThreadContext will not use these methods...)
Remko Sent from my iPhone > On 2014/05/08, at 4:35, [email protected] wrote: > > Author: ggregory > Date: Wed May 7 19:35:45 2014 > New Revision: 1593125 > > URL: http://svn.apache.org/r1593125 > Log: > ThreadContext.ContextStack is already (conceptually) a collection of Strings > so it should be a Collection<String> instead of it's sub-interface > ThreadContextStack being a Collection<String>. What's the value of > ThreadContextStack now? Should we keep it as a placeholder? It is not > documented in its Javadoc. Note that all implementations of ContextStack are > implementations of ThreadContextStack, so this change has no effect on > implementors. Note that Log4jLogEvent holds a ContextStack so this makes it a > Collection<String> which happens to save a lot of work for XML and JSON IO > for the Jackson based receivers and layouts I am working on. > > Modified: > > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java > > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextStack.java > > Modified: > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java > URL: > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java?rev=1593125&r1=1593124&r2=1593125&view=diff > ============================================================================== > --- > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java > (original) > +++ > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java > Wed May 7 19:35:45 2014 > @@ -347,12 +347,7 @@ public final class ThreadContext { > /** > * The ThreadContext Stack interface. > */ > - public interface ContextStack extends Serializable { > - > - /** > - * Clears all elements from the stack. > - */ > - void clear(); > + public interface ContextStack extends Serializable, Collection<String> { > > /** > * Returns the element at the top of the stack. > > Modified: > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextStack.java > URL: > http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextStack.java?rev=1593125&r1=1593124&r2=1593125&view=diff > ============================================================================== > --- > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextStack.java > (original) > +++ > logging/log4j/log4j2/trunk/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextStack.java > Wed May 7 19:35:45 2014 > @@ -16,12 +16,10 @@ > */ > package org.apache.logging.log4j.spi; > > -import java.util.Collection; > - > import org.apache.logging.log4j.ThreadContext; > > /** > * > */ > -public interface ThreadContextStack extends ThreadContext.ContextStack, > Collection<String> { > +public interface ThreadContextStack extends ThreadContext.ContextStack { > } > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
