I have done the required changes as part of SLING-3243. However one
area is pending

The Sling Parent pom.xml pins the slf4j-api bundle at 1.5.2. To make
use of new varargs support as part of slf4j api 1.7.5 (it now uses JDK
1.5) we would need to update this version. Note that at binary level
usage of new vararg support does not cause any change. Quoting from
Slf4j site

---
Printing methods in the Logger interface now offers variants accepting
varargs instead of Object[]. Given that under the hood, the Java
compiler transforms varargs into an array, this change is totally 100%
no-ifs-or-buts backward compatible with all existing client code.
---

However if I change the version in parent then bnd would change the
version range for slf4j api to [1.7,2) from [1.6,2).

So if any bundle wants to make use of new API and still wants to be
deployed on Sling based system where slf4j API is 1.6.4 then best way
would be to use version macro

<Import-Package>org.osgi.framework;version="[${version;=-;${@}},${version;+;${@}})"</Import-Package>

OR

<Import-Package>org.osgi.framework;version="$<range;[=-,+)>"</Import-Package>

Note usage of "=-" instead of "==" to decrement the minor version

Would this be the right way to tackle that or one should use a different way?

Chetan Mehrotra


On Wed, Nov 13, 2013 at 6:42 PM, Felix Meschberger <[email protected]> wrote:
> Sounds reasonable to me.
>
> Regards
> Felix
>
> —
> Felix Meschberger  |  Principal Scientist  |  Adobe
>
>
>
> Am 13.11.2013 um 21:17 schrieb Chetan Mehrotra <[email protected]>:
>
>> Currently Sling is packaging 1.6.4 for the slf4j-api. Most recent
>> release is 1.7.5 and has some noteworthy changes [1] including
>> performance, usage of varargs etc. The core API bundle has no
>> compatibility breaking change.
>>
>> Slf4j bundle maps the package exports to bundle version. So with 1.7.5
>> the packages are exported at 1.7.5
>>
>> I checked the Import-Package directive of most Sling bundle and all of
>> them have import range from [1.5,2). So should we move to 1.7.5?
>>
>> The steps I see is
>> - Update the slf4j-api, jcl-over-slf4j, log4j-over-slf4j bundle
>> - Ensure that commons log work with both
>>
>> WDYT?
>>
>> Chetan Mehrotra
>> [1] http://www.slf4j.org/news.html
>

Reply via email to