Hi Dale, You mean the changes in commit [1] made on April 9th 2010? Version 1.6.0 was released on May 8th 2010, a few weeks after the commit in question.
The release notes for 1.6.0 state: In the presence of multiple parameters and if the last argument in a logging statement is an exception, then SLF4J will now presume that the user wants the last argument to be treated as an exception and not a simple parameter. See the relevant FAQ entry for further details. This fixes bug 70 submitted by Joern Huxhorn who also provided the relevant patch. The log method in LocationAwareLogger interface now admits an additional parameter of type Object[] representing additional arguments of the log request. Due to this modification, slf4j-api version 1.6.x will not work with bindings shipping with SLF4J 1.5.x -- bindings shipping with 1.6.x must be used. ===== In short, slf4j-api version 1.6.x does not work with earlier slf4j bindings even if its public API remained the same. To answer your question, the "helpers" package are considered the same as "spi" package with regards to compatibility. Classes may change breaking compatibility with bindings. However, the sacrosanct client compatibility is always preserved [2]: From the client's perspective all versions of slf4j-api are compatible. Client code compiled with slf4j-api-N.jar will run perfectly fine with slf4j-api-M.jar for any N and M. You only need to ensure that the version of your binding matches that of the slf4j-api.jar. You do not have to worry about the version of slf4j-api.jar used by a given dependency in your project. You can always use any version of slf4j-api.jar, and as long as the version of slf4j-api.jar and its binding match, you should be fine. Does this help? [1] https://github.com/qos-ch/slf4j/commit/3c0ab3466b6fa6e91597 [2] http://slf4j.org/codes.html#version_mismatch Regards, -- Ceki http://twitter.com/#!/ceki On 14.02.2013 13:40, Dale Wijnand wrote:
Hi, I was wondering if the classes under org.slf4j.helpers (such as MessageFormatter) are to be considered: * Public API * SPI (for binding modules) * Internal code I ask, because MessageFormatter#format(String, Object) broken compatibility in v1.6.. Thanks in advance, Dale
_______________________________________________ slf4j-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/slf4j-user
