
I'm in favor of the two interfaces suggested but I wanted to point out that the current implementation of SocketAppender could not be changed in a compatible way to implement EncoderAware because it is currently using a stream of serialized objects instead of byte[] for each object (using a new ObjectOutputStream for each new object). This would have to be changed. On 13.02.2009, at 17:06, Ceki Gulcu wrote:
Maarten Bosteels wrote:
interface LayoutAware extends Appender; interface EncoderAware extends Appender; I don't understand. In my opinion LayoutAware and EncoderAware should be standalone interface with just a getter and a setter, and not extend Appender.
Yes, obviously.
All appenders that need a layout should implement LayoutAware. They can implement the interface themselves or - when its practical - inherit from LayoutAwareAppenderBase
Agreed.
Why would you tie LayoutAware to the Appender interface.
You could tie the two interfaces by mistake. :-)
PS: Not yet sure whether the encode method should return a byte[] or a java.nio.ByteBuffer, I think the latter is easier to use.
That would would be an option to consider.
I would suggest to use byte[] because it can easily be transformed into a ByteBuffer using ByteBuffer.wrap() while the other direction using byte[] ByteBuffer.buffer() is marked as an optional operation. Regards, Joern.