I think your proposal sounds quite good. One other thing that comes to my mind talking of pax-logging. How much hassle would it be to use the slf4j logging as the basis for pax-logging?
2010/12/10 Guillaume Nodet <[email protected]> > I've run into several users that can't really use pax-logging because > their bundles import slf4j api 1.6.x package which is not supported > atm. > The reason it's not is because this api is not binary compatible with > 1.5.x which mean we can't really export both packages 1.5 and 1.6 > using the same real pacakge as it's currently done for 1.4.x and > 1.5.x. > > That said, the incompatibility are quite minors (see below for the > full diff) and I think the average people won't see any problems. So > we have several ways going forward: > * just use the 1.6.x api and export 1.4.x and 1.5.x at the same > time, hoping that users won't run into those incompabilities > * just use 1.6.x api and not export 1.4 or 1.5 packages > * have a separate bundle exporting the 1.6.x api (and have it wired > correctly with pax-logging) > * move 1.5.x package into a separate bundle and use 1.6.x as the current > api > > I suppose most of bundles using the slf4j api would use either an open > version range such as [1.6,+oo) or a major version range [1.6,2) so I > suppose even if we go #3 or #4, it won't actually help people a lot, > so i'm tempted to go #2 and if there are any problems reported, go #4 > and force people to either upgrade to slf4j 1.6 or use a stricter > version range (in which case, we wouldn't really need #4 anymore). > > Thoughts ? > > gnodet:~/work/japidiff/target$ diff slf4j-api-1.5.11.txt > slf4j-api-1.6.0.txt > 157a158,167 > > public class FormattingTuple { > > public static org.slf4j.helpers.FormattingTuple NULL; > > public FormattingTuple(String); > > public FormattingTuple(String, Object[], Throwable); > > public Object[] getArgArray(); > > public String getMessage(); > > public Throwable getThrowable(); > > } > > > > package org.slf4j.helpers; > 196,198c206,208 > < public static final String arrayFormat(String, Object[]); > < public static final String format(String, Object); > < public static final String format(String, Object, Object); > --- > > public static final org.slf4j.helpers.FormattingTuple > arrayFormat(String, Object[]); > > public static final org.slf4j.helpers.FormattingTuple format(String, > Object); > > public static final org.slf4j.helpers.FormattingTuple format(String, > Object, Object); > 239,240c249,256 > < public class NOPMakerAdapter implements org.slf4j.spi.MDCAdapter { > < public NOPMakerAdapter(); > --- > > public class NOPLoggerFactory implements org.slf4j.ILoggerFactory { > > public NOPLoggerFactory(); > > public org.slf4j.Logger getLogger(String); > > } > > > > package org.slf4j.helpers; > > public class NOPMDCAdapter implements org.slf4j.spi.MDCAdapter { > > public NOPMDCAdapter(); > 259,260c275,276 > < public static final void reportFailure(String); > < public static final void reportFailure(String, Throwable); > --- > > public static final void report(String); > > public static final void report(String, Throwable); > 270c286 > < void log(org.slf4j.Marker, String, int, String, Throwable); > --- > > void log(org.slf4j.Marker, String, int, String, Object[], Throwable); > > > -- > Cheers, > Guillaume Nodet > ------------------------ > Blog: http://gnodet.blogspot.com/ > ------------------------ > Open Source SOA > http://fusesource.com > > _______________________________________________ > general mailing list > [email protected] > http://lists.ops4j.org/mailman/listinfo/general >
_______________________________________________ general mailing list [email protected] http://lists.ops4j.org/mailman/listinfo/general
