Did it and sent pull request to Ceki.<div><br></div><div>Heiko<br><div><br><div class="gmail_quote">On 2 November 2010 23:27, Hugues Malphettes <span dir="ltr">&lt;<a href="mailto:hmalphettes@intalio.com">hmalphettes@intalio.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br><br><div class="gmail_quote"><div class="im">On Tue, Nov 2, 2010 at 2:43 PM, Heiko Seeberger <span dir="ltr">&lt;<a href="mailto:heiko.seeberger@googlemail.com" target="_blank">heiko.seeberger@googlemail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Thank you for reviewing!<br>
<br>
If I understand correctly we should relax the versioning policy to<br>
import ranges from x.y instead of x.y.z, right? IMHO that makes sense.<br>
An it&#39;s easily done: Just a little switch in the config. Let me know<br>
and I will change it.<br></blockquote><div><br></div></div><div>That would be the one thing I would change.</div><div>Thanks Heiko!</div><div>Hugues</div><div><div></div><div class="h5"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<font color="#888888"><br>
Heiko<br>
</font><div><div></div><div><br>
On Tuesday, November 2, 2010, Hugues Malphettes &lt;<a href="mailto:hmalphettes@intalio.com" target="_blank">hmalphettes@intalio.com</a>&gt; wrote:<br>
&gt; Hi Ceki,Thanks for reminding us to review the changes introduced by BND.<br>
&gt; On Mon, Nov 1, 2010 at 2:16 PM, Ceki Gülcü &lt;<a href="mailto:ceki@qos.ch" target="_blank">ceki@qos.ch</a>&gt; wrote:<br>
&gt; Hello all,<br>
&gt;<br>
&gt; I pulled in changes made by Heiko <a href="http://github.com/ceki/slf4j/pull/2" target="_blank">http://github.com/ceki/slf4j/pull/2</a>. Here is the version of the MANIFEST file from slf4j-api-1.6.1.jar.<br>
&gt;<br>
&gt; Manifest-Version: 1.0<br>
&gt; Archiver-Version: Plexus Archiver<br>
&gt; Created-By: Apache Maven<br>
&gt; Built-By: ceki<br>
&gt; Build-Jdk: 1.6.0_16<br>
&gt; Bundle-Description: The slf4j API<br>
&gt;<br>
&gt; Bundle-Version: 1.6.1<br>
&gt; Implementation-Version: 1.6.1<br>
&gt; Implementation-Title: slf4j-api<br>
&gt; Bundle-ManifestVersion: 2<br>
&gt; Bundle-SymbolicName: slf4j.api<br>
&gt; Bundle-Name: slf4j-api<br>
&gt; Bundle-Vendor: <a href="http://SLF4J.ORG" target="_blank">SLF4J.ORG</a><br>
&gt; Bundle-RequiredExecutionEnvironment: J2SE-1.3<br>
&gt; Export-Package: org.slf4j;version=1.6.1, org.slf4j.spi;version=1.6.1,<br>
&gt;  org.slf4j.helpers;version=1.6.1<br>
&gt; Import-Package: org.slf4j.impl;version=1.6.0<br>
&gt;<br>
&gt; Here is the version generated after Heiko&#39;s changes have been applied:<br>
&gt;<br>
&gt; Manifest-Version: 1.0<br>
&gt; Export-Package: org.slf4j.spi;uses:=&quot;org.slf4j&quot;;version=&quot;1.6.2.SNAPSHO<br>
&gt;  T&quot;,org.slf4j.helpers;uses:=&quot;org.slf4j.spi,org.slf4j&quot;;version=&quot;1.6.2.S<br>
&gt;  NAPSHOT&quot;,org.slf4j;uses:=&quot;org.slf4j.helpers,org.slf4j.spi&quot;;version=&quot;1<br>
&gt;  .6.2.SNAPSHOT&quot;<br>
&gt; Ignore-Package: org.slf4j.impl<br>
&gt; Implementation-Title: slf4j-api<br>
&gt;<br>
&gt; Built-By: ceki<br>
&gt; Tool: Bnd-0.0.357<br>
&gt;<br>
&gt; Bundle-Name: SLF4J API Module<br>
&gt;<br>
&gt; Created-By: Apache Maven Bundle Plugin<br>
&gt;<br>
&gt; Bundle-RequiredExecutionEnvironment: J2SE-1.4<br>
&gt;<br>
&gt; Bundle-Vendor: QOS.ch<br>
&gt; Build-Jdk: 1.6.0_16<br>
&gt; Bundle-Version: 1.6.2.SNAPSHOT<br>
&gt;<br>
&gt; Bnd-LastModified: 1288644768461<br>
&gt; Bundle-ManifestVersion: 2<br>
&gt; Bundle-License: <a href="http://www.opensource.org/licenses/mit-license.php" target="_blank">http://www.opensource.org/licenses/mit-license.php</a><br>
&gt; Bundle-Description: The slf4j API<br>
&gt; Bundle-DocURL: <a href="http://www.qos.ch" target="_blank">http://www.qos.ch</a><br>
&gt;<br>
&gt; Bundle-SymbolicName: org.slf4j.api<br>
&gt; Import-Package: org.slf4j;version=&quot;[1.6.2.SNAPSHOT,1.7)&quot;,org.slf4j.hel<br>
&gt;  pers;version=&quot;[1.6.2.SNAPSHOT,1.7)&quot;,org.slf4j.spi;version=&quot;[1.6.2.SNA<br>
&gt;  PSHOT,1.7)&quot;<br>
&gt;<br>
&gt;<br>
&gt; Admittedly, I am a little lost. The previous MANIFEST file imported org.slf4j.impl, whereas the latest MANIFEST does not. Strangely enough, org.slf4j.impl is not mentioned at all.<br>
&gt; Heiko packages org.slf4j.impl as bundle fragments that are hosted by org.slf4j.api.<br>
&gt;<br>
&gt; In our situation, there must not be more than one provider of org.slf4j.impl: this means there must one and exactly one fragment that provides org.slf4j.impl.<br>
&gt;<br>
&gt; At runtime the fragment classes are part of the classloader of org.slf4j.api.This is why org.slf4j.api does not import org.slf4j.impl at all.<br>
&gt; The MANIFEST.MF of org.slf4j.api does look good.<br>
&gt;<br>
&gt; It contains a few of extra lines that are read by BND alone: Private-Package and Bnd-LastModified for example.<br>
&gt;<br>
&gt;<br>
&gt; The MANIFEST.MF of jcl.over.slf4j (aka jcl-over-slf4j) uses these statements: Export-Package: org.apache.commons.logging;version=1.1.1,  org.apache. commons.logging.impl;version=1.1.1<br>
&gt;<br>
&gt; Import-Package: org.slf4j;version=1.6.2.SNAPSHOT, org.slf4j.spi;versio n=1.6.2.SNAPSHOT<br>
&gt; It will work.The versioning constrain on the import-package is I think too much: strictly speaking, the produced fragment is going to work with version 1.6 of slf4j.<br>
&gt;<br>
&gt; I apologize for sounding picky and in the case where we always build and distribute together slf4j-api and jcl-over-slf4j it probably does not matter much.If we were to adopt BND to generate the MANIFESTs of logback let&#39;s make sure that we generate version=1.6 only so that we don&#39;t suddenly force everyone to upgrade both slf4j and logback at once for no actual reason.<br>



&gt;<br>
&gt;<br>
&gt; Best regards,Hugues<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; In earlier message Heiko wrote:<br>
&gt;<br>
&gt;&gt; As all the logging backends are fragments I excluded org.slf4j.impl<br>
&gt;&gt; package from imported packages. This means you can install the<br>
&gt;&gt; slf4j-api bundle in an OSGi container successfully without a backend. &gt; Not sure whether this is what we want.<br>
&gt;<br>
&gt;<br>
&gt; I think it makes life easier if the slf4j-api bundle can be installed without a back-end. However, this is assuming that a desired back-end bundle can be installed and successfully bound with slf4j-api. (It is an obvious requirement but still may be useful to mention.)<br>



&gt;<br>
&gt; This version can be pulled in either from <a href="http://github.com/weiglewilczek/slf4j" target="_blank">http://github.com/weiglewilczek/slf4j</a> (master) or from <a href="http://github.com/ceki/slf4j" target="_blank">http://github.com/ceki/slf4j</a> (weiglewilczek-master).<br>



&gt;<br>
&gt; Your comments are most welcome,<br>
&gt;<br>
&gt; --<br>
&gt;<br>
&gt; Ceki<br>
&gt; _______________________________________________<br>
&gt; slf4j-dev mailing list<br>
&gt; <a href="mailto:slf4j-dev@qos.ch" target="_blank">slf4j-dev@qos.ch</a><br>
&gt; <a href="http://qos.ch/mailman/listinfo/slf4j-dev" target="_blank">http://qos.ch/mailman/listinfo/slf4j-dev</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div><div>--<br>
Heiko Seeberger<br>
<br>
Company: <a href="http://weiglewilczek.com" target="_blank">weiglewilczek.com</a><br>
Blog: <a href="http://heikoseeberger.name" target="_blank">heikoseeberger.name</a><br>
Follow me: <a href="http://twitter.com/hseeberger" target="_blank">twitter.com/hseeberger</a><br>
OSGi on Scala: <a href="http://scalamodules.org" target="_blank">scalamodules.org</a><br>
Lift, the simply functional web framework: <a href="http://liftweb.net" target="_blank">liftweb.net</a><br>
Akka - Simpler Scalability, Fault-Tolerance, Concurrency &amp; Remoting through<br>
Actors: <a href="http://akkasource.org" target="_blank">akkasource.org</a><br>
</div><div><div></div><div>_______________________________________________<br>
slf4j-dev mailing list<br>
<a href="mailto:slf4j-dev@qos.ch" target="_blank">slf4j-dev@qos.ch</a><br>
<a href="http://qos.ch/mailman/listinfo/slf4j-dev" target="_blank">http://qos.ch/mailman/listinfo/slf4j-dev</a><br>
</div></div></blockquote></div></div></div><br>
<br>_______________________________________________<br>
slf4j-dev mailing list<br>
<a href="mailto:slf4j-dev@qos.ch">slf4j-dev@qos.ch</a><br>
<a href="http://qos.ch/mailman/listinfo/slf4j-dev" target="_blank">http://qos.ch/mailman/listinfo/slf4j-dev</a><br></blockquote></div><br><br clear="all"><br>-- <br>Heiko Seeberger<br><br>Company: <a href="http://weiglewilczek.com" target="_blank">weiglewilczek.com</a><br>
Blog: <a href="http://heikoseeberger.name" target="_blank">heikoseeberger.name</a><br>Follow me: <a href="http://twitter.com/hseeberger" target="_blank">twitter.com/hseeberger</a><br>OSGi on Scala: <a href="http://scalamodules.org" target="_blank">scalamodules.org</a><br>
Lift, the simply functional web framework: <a href="http://liftweb.net" target="_blank">liftweb.net</a><br>Akka - Simpler Scalability, Fault-Tolerance, Concurrency &amp; Remoting through Actors: <a href="http://akkasource.org" target="_blank">akkasource.org</a><br>

</div></div>