I think there is a flaw in the argument related to OSGi (or at least something to clarify). You need to make a distinction between the API against which you code and the actual implementation that you are using at runtime. In addition to its own API, SLF4J also provides a re-implementation of the commons-logging API. Therefore it seems to me that even if SLF4J works better in an OSGi environment, that doesn't necessary imply that you have to use the SLF4J API. If I understand [1] correctly, that is the strategy they use for Spring(-DM).
Andreas [1] http://static.springsource.org/osgi/docs/1.0.2/reference/html/spring-osgi-faq.html#logging On Thu, Mar 24, 2011 at 11:34, Colm O hEigeartaigh <[email protected]> wrote: > I'm thinking about porting WSS4J 1.6 to use SLF4J as well. Currently > it uses Commons Logging. WSS4J 1.6 has a dependency on Opensaml2 which > uses SLF4J. I'm hoping to get XML Security 1.5.0 out in a couple of > months, which will be picked up by WSS4J 1.6.1 or 1.6.2, and which > will also move from commons logging to SLF4J. If the two most > important dependencies of WSS4J are using SLF4J, it makes sense for > WSS4J to use it as well, given that this is a major version change. > Obviously, the other important reason is out of the box OSGi support > for SLF4J. > > Thoughts? > > Colm. > > On Mon, Mar 21, 2011 at 5:13 PM, Daniel Kulp <[email protected]> wrote: >> On Monday 21 March 2011 12:53:09 PM Andreas Veithen wrote: >>> Reason? >> >> Well, 2.0.x didn't have any logging at all. Any logging framework is really >> a new dependency for Neethi. slf4j generally works better than commons- >> logging in OSGi (and every other environment) and, IMO, is a better option to >> use going forward for Neethi. Thus, if we're going to introduce logging, >> I'd >> wrather go with the better option. >> >> >> If you don't want to go that route, I'd be more tempted to just remove the >> logging entirely. There is only a single log statement in the code right >> now >> anyway. Hardly worth it. >> >> Dan >> >> >> >>> Andreas >>> >>> On Mon, Mar 21, 2011 at 17:46, <[email protected]> wrote: >>> > Author: dkulp >>> > Date: Mon Mar 21 16:46:09 2011 >>> > New Revision: 1083862 >>> > >>> > URL: http://svn.apache.org/viewvc?rev=1083862&view=rev >>> > Log: >>> > Use slf4j instead of commons-logging >>> > >>> > Modified: >>> > webservices/commons/trunk/modules/neethi/pom.xml >>> > >>> > webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neeth >>> > i/PolicyBuilder.java >>> > >>> > Modified: webservices/commons/trunk/modules/neethi/pom.xml >>> > URL: >>> > http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/po >>> > m.xml?rev=1083862&r1=1083861&r2=1083862&view=diff >>> > ======================================================================== >>> > ====== --- webservices/commons/trunk/modules/neethi/pom.xml (original) >>> > +++ webservices/commons/trunk/modules/neethi/pom.xml Mon Mar 21 16:46:09 >>> > 2011 @@ -19,143 +19,143 @@ >>> > --> >>> > >>> > <project xmlns="http://maven.apache.org/POM/4.0.0" >>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> > xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>> > http://maven.apache.org/maven-v4_0_0.xsd"> - >>> > <modelVersion>4.0.0</modelVersion> >>> > + <modelVersion>4.0.0</modelVersion> >>> > <parent> >>> > <groupId>org.apache</groupId> >>> > <artifactId>apache</artifactId> >>> > <version>8</version> >>> > </parent> >>> > - <groupId>org.apache.neethi</groupId> >>> > - <artifactId>neethi</artifactId> >>> > - <name>Apache Neethi</name> >>> > - <version>3.0.0-SNAPSHOT</version> >>> > + <groupId>org.apache.neethi</groupId> >>> > + <artifactId>neethi</artifactId> >>> > + <name>Apache Neethi</name> >>> > + <version>3.0.0-SNAPSHOT</version> >>> > <packaging>bundle</packaging> >>> > - <description>Apache Neethi provides general framework for the >>> > programmers to use WS Policy. It is compliant with latest WS Policy >>> > specification which was published in March 2006. This framework is >>> > specifically written to enable the Apache Web services stack to use WS >>> > Policy as a way of expressing it's requirements and >>> > capabilities.</description> - >>> > <url>http://ws.apache.org/commons/neethi/</url> >>> > - <issueManagement> >>> > - <url>http://issues.apache.org/jira/browse/NEETHI</url> >>> > - </issueManagement> >>> > + <description>Apache Neethi provides general framework for the >>> > programmers to use WS Policy. It is compliant with latest WS Policy >>> > specification which was published in March 2006. This framework is >>> > specifically written to enable the Apache Web services stack to use WS >>> > Policy as a way of expressing it's requirements and >>> > capabilities.</description> + >>> > <url>http://ws.apache.org/commons/neethi/</url> >>> > + <issueManagement> >>> > + <url>http://issues.apache.org/jira/browse/NEETHI</url> >>> > + </issueManagement> >>> > >>> > - <mailingLists> >>> > - <mailingList> >>> > - <name>WS Developers</name> >>> > - >>> > <subscribe>[email protected]</subscribe> - >>> > <unsubscribe>[email protected]</unsubscribe> - >>> > <post>[email protected]</post> >>> > - >>> > <archive>http://mail-archives.apache.org/mod_mbox/ws-dev/</archive> - >>> > </mailingList> >>> > - </mailingLists> >>> > - <inceptionYear>2004</inceptionYear> >>> > - <developers> >>> > - <developer> >>> > - <name>Sanjiva Weerawarana</name> >>> > - <id>sanjiva</id> >>> > - <organization>WSO2 Inc.</organization> >>> > - <email>[email protected]</email> >>> > - </developer> >>> > - <developer> >>> > - <name>Davanum Srinivas</name> >>> > - <id>dims</id> >>> > - <organization>IBM</organization> >>> > - <email>[email protected]</email> >>> > - </developer> >>> > - <developer> >>> > - <name>Dittmann, Werner</name> >>> > - <id>werner</id> >>> > - <organization></organization> >>> > - <email>[email protected]</email> >>> > - </developer> >>> > - <developer> >>> > - <name>Sanka Samaranayake</name> >>> > - <id>sanka</id> >>> > - <organization>WSO2 Inc.</organization> >>> > - <email>[email protected]</email> >>> > - </developer> >>> > + <mailingLists> >>> > + <mailingList> >>> > + <name>WS Developers</name> >>> > + <subscribe>[email protected]</subscribe> >>> > + <unsubscribe>[email protected]</unsubscribe> >>> > + <post>[email protected]</post> >>> > + >>> > <archive>http://mail-archives.apache.org/mod_mbox/ws-dev/</archive> + >>> > </mailingList> >>> > + </mailingLists> >>> > + <inceptionYear>2004</inceptionYear> >>> > + <developers> >>> > + <developer> >>> > + <name>Sanjiva Weerawarana</name> >>> > + <id>sanjiva</id> >>> > + <organization>WSO2 Inc.</organization> >>> > + <email>[email protected]</email> >>> > + </developer> >>> > + <developer> >>> > + <name>Davanum Srinivas</name> >>> > + <id>dims</id> >>> > + <organization>IBM</organization> >>> > + <email>[email protected]</email> >>> > + </developer> >>> > + <developer> >>> > + <name>Dittmann, Werner</name> >>> > + <id>werner</id> >>> > + <organization></organization> >>> > + <email>[email protected]</email> >>> > + </developer> >>> > + <developer> >>> > + <name>Sanka Samaranayake</name> >>> > + <id>sanka</id> >>> > + <organization>WSO2 Inc.</organization> >>> > + <email>[email protected]</email> >>> > + </developer> >>> > <developer> >>> > <name>Daniel Kulp</name> >>> > <id>dkulp</id> >>> > <email>[email protected]</email> >>> > </developer> >>> > - <developer> >>> > + <developer> >>> > <!-- Documentation --> >>> > - <name>Chatra Nakkawita</name> >>> > - <id>chatra</id> >>> > - <organization>WSO2 Inc.</organization> >>> > - <email>[email protected]</email> >>> > - </developer> >>> > - </developers> >>> > - <licenses> >>> > - <license> >>> > - <name>The Apache Software License, Version >>> > 2.0</name> - >>> > <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> - >>> > <distribution>repo</distribution> >>> > - </license> >>> > - </licenses> >>> > - <scm> >>> > - >>> > <connection>scm:svn:http://svn.apache.org/repos/asf/webservices/commons/ >>> > trunk/modules/neethi</connection> - >>> > <developerConnection>scm:svn:https://svn.apache.org/repos/asf/webservice >>> > s/commons/trunk/modules/neethi</developerConnection> - >>> > <url>http://svn.apache.org/viewcvs.cgi/webservices/commons/trunk/modules >>> > /neethi</url> - </scm> >>> > - <organization> >>> > - <name>The Apache Software Foundation</name> >>> > - <url>http://www.apache.org/</url> >>> > - </organization> >>> > - <build> >>> > + <name>Chatra Nakkawita</name> >>> > + <id>chatra</id> >>> > + <organization>WSO2 Inc.</organization> >>> > + <email>[email protected]</email> >>> > + </developer> >>> > + </developers> >>> > + <licenses> >>> > + <license> >>> > + <name>The Apache Software License, Version 2.0</name> >>> > + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> >>> > + <distribution>repo</distribution> >>> > + </license> >>> > + </licenses> >>> > + <scm> >>> > + >>> > <connection>scm:svn:http://svn.apache.org/repos/asf/webservices/commons >>> > /trunk/modules/neethi</connection> + >>> > <developerConnection>scm:svn:https://svn.apache.org/repos/asf/webservic >>> > es/commons/trunk/modules/neethi</developerConnection> + >>> > <url>http://svn.apache.org/viewcvs.cgi/webservices/commons/trunk/module >>> > s/neethi</url> + </scm> >>> > + <organization> >>> > + <name>The Apache Software Foundation</name> >>> > + <url>http://www.apache.org/</url> >>> > + </organization> >>> > + <build> >>> > <resources> >>> > - <resource> >>> > - <directory>src/main/resources</directory> >>> > - </resource> >>> > + <resource> >>> > + <directory>src/main/resources</directory> >>> > + </resource> >>> > </resources> >>> > - <plugins> >>> > - <plugin> >>> > - >>> > <artifactId>maven-compiler-plugin</artifactId> - >>> > <configuration> >>> > - <source>1.5</source> >>> > - <target>1.5</target> >>> > - </configuration> >>> > - </plugin> >>> > - <plugin> >>> > - >>> > <artifactId>maven-surefire-plugin</artifactId> - >>> > <configuration> >>> > - <forkMode>once</forkMode> >>> > - >>> > <childDelegation>false</childDelegation> - >>> > <excludes> >>> > - >>> > <exclude>**/PolicyTestCase.java</exclude> - >>> > </excludes> >>> > - <includes> >>> > - >>> > <include>**/*Test*.java</include> - >>> > </includes> >>> > - </configuration> >>> > - </plugin> >>> > - <plugin> >>> > - >>> > <artifactId>maven-release-plugin</artifactId> - >>> > <configuration> >>> > - >>> > <tagBase>https://svn.apache.org/repos/asf/webservices/commons/tags/neeth >>> > i</tagBase> - </configuration> >>> > - </plugin> >>> > - <plugin> >>> > - >>> > <artifactId>maven-assembly-plugin</artifactId> - >>> > <configuration> >>> > - <descriptors> >>> > - >>> > <descriptor>src/main/assembly/bin.xml</descriptor> - >>> > >>> > <descriptor>src/main/assembly/src.xml</descriptor> - >>> > </descriptors> >>> > - >>> > <tarLongFileMode>gnu</tarLongFileMode> - >>> > </configuration> >>> > - </plugin> >>> > - <plugin> >>> > - >>> > <artifactId>maven-source-plugin</artifactId> - >>> > <executions> >>> > - <execution> >>> > - <goals> >>> > - <goal>jar</goal> >>> > - </goals> >>> > - </execution> >>> > - </executions> >>> > - <configuration> >>> > - <attach>true</attach> >>> > - </configuration> >>> > - </plugin> >>> > + <plugins> >>> > + <plugin> >>> > + <artifactId>maven-compiler-plugin</artifactId> >>> > + <configuration> >>> > + <source>1.5</source> >>> > + <target>1.5</target> >>> > + </configuration> >>> > + </plugin> >>> > + <plugin> >>> > + <artifactId>maven-surefire-plugin</artifactId> >>> > + <configuration> >>> > + <forkMode>once</forkMode> >>> > + <childDelegation>false</childDelegation> >>> > + <excludes> >>> > + <exclude>**/PolicyTestCase.java</exclude> >>> > + </excludes> >>> > + <includes> >>> > + <include>**/*Test*.java</include> >>> > + </includes> >>> > + </configuration> >>> > + </plugin> >>> > + <plugin> >>> > + <artifactId>maven-release-plugin</artifactId> >>> > + <configuration> >>> > + >>> > <tagBase>https://svn.apache.org/repos/asf/webservices/commons/tags/neet >>> > hi</tagBase> + </configuration> >>> > + </plugin> >>> > + <plugin> >>> > + <artifactId>maven-assembly-plugin</artifactId> >>> > + <configuration> >>> > + <descriptors> >>> > + >>> > <descriptor>src/main/assembly/bin.xml</descriptor> + >>> > <descriptor>src/main/assembly/src.xml</descriptor> + >>> > </descriptors> >>> > + <tarLongFileMode>gnu</tarLongFileMode> >>> > + </configuration> >>> > + </plugin> >>> > + <plugin> >>> > + <artifactId>maven-source-plugin</artifactId> >>> > + <executions> >>> > + <execution> >>> > + <goals> >>> > + <goal>jar</goal> >>> > + </goals> >>> > + </execution> >>> > + </executions> >>> > + <configuration> >>> > + <attach>true</attach> >>> > + </configuration> >>> > + </plugin> >>> > <plugin> >>> > <groupId>org.apache.felix</groupId> >>> > <artifactId>maven-bundle-plugin</artifactId> >>> > @@ -176,7 +176,7 @@ >>> > <Import-Package> >>> > org.apache.axiom.*;resolution:=optional, >>> > javax.xml.stream;version="[0.0,2)", >>> > - org.apache.commons.logging, >>> > + >>> > org.slf4j*;resolution:=optional;version="[1.5,2)", * >>> > </Import-Package> >>> > <_failok>true</_failok> >>> > @@ -186,58 +186,58 @@ >>> > </configuration> >>> > </plugin> >>> > >>> > - </plugins> >>> > - </build> >>> > - <profiles> >>> > - <profile> >>> > - <id>release</id> >>> > - <activation> >>> > - <property> >>> > - <name>release</name> >>> > - <value></value> >>> > - </property> >>> > - </activation> >>> > - <build> >>> > - <plugins> >>> > - <plugin> >>> > - >>> > <artifactId>maven-javadoc-plugin</artifactId> + </plugins> >>> > + </build> >>> > + <profiles> >>> > + <profile> >>> > + <id>release</id> >>> > + <activation> >>> > + <property> >>> > + <name>release</name> >>> > + <value></value> >>> > + </property> >>> > + </activation> >>> > + <build> >>> > + <plugins> >>> > + <plugin> >>> > + <artifactId>maven-javadoc-plugin</artifactId> >>> > <version>2.7</version> >>> > - <executions> >>> > - <execution> >>> > - <goals> >>> > - >>> > <goal>javadoc</goal> - >>> > </goals> - >>> > </execution> - >>> > </executions> >>> > - <configuration> >>> > - >>> > <attach>true</attach> - >>> > </configuration> - </plugin> >>> > - </plugins> >>> > - </build> >>> > - </profile> >>> > - </profiles> >>> > + <executions> >>> > + <execution> >>> > + <goals> >>> > + <goal>javadoc</goal> >>> > + </goals> >>> > + </execution> >>> > + </executions> >>> > + <configuration> >>> > + <attach>true</attach> >>> > + </configuration> >>> > + </plugin> >>> > + </plugins> >>> > + </build> >>> > + </profile> >>> > + </profiles> >>> > >>> > >>> > - <dependencies> >>> > - <dependency> >>> > - <groupId>org.apache.ws.commons.axiom</groupId> >>> > - <artifactId>axiom-api</artifactId> >>> > - <version>${axiom.version}</version> >>> > + <dependencies> >>> > + <dependency> >>> > + <groupId>org.apache.ws.commons.axiom</groupId> >>> > + <artifactId>axiom-api</artifactId> >>> > + <version>${axiom.version}</version> >>> > + <scope>provided</scope> >>> > + </dependency> >>> > + <dependency> >>> > + <groupId>org.apache.ws.commons.axiom</groupId> >>> > + <artifactId>axiom-impl</artifactId> >>> > + <version>${axiom.version}</version> >>> > <scope>provided</scope> >>> > - </dependency> >>> > - <dependency> >>> > - <groupId>org.apache.ws.commons.axiom</groupId> >>> > - <artifactId>axiom-impl</artifactId> >>> > - <version>${axiom.version}</version> >>> > - <scope>provided</scope> >>> > <exclusions> >>> > <exclusion> >>> > <groupId>org.codehaus.woodstox</groupId> >>> > <artifactId>wstx-asl</artifactId> >>> > </exclusion> >>> > </exclusions> >>> > - </dependency> >>> > + </dependency> >>> > <dependency> >>> > <groupId>org.apache.ws.commons.axiom</groupId> >>> > <artifactId>axiom-dom</artifactId> >>> > @@ -250,45 +250,57 @@ >>> > </exclusion> >>> > </exclusions> >>> > </dependency> >>> > - <dependency> >>> > - <groupId>wsdl4j</groupId> >>> > - <artifactId>wsdl4j</artifactId> >>> > - <version>1.6.2</version> >>> > - </dependency> >>> > - <dependency> >>> > - <groupId>junit</groupId> >>> > - <artifactId>junit</artifactId> >>> > - <version>3.8.2</version> >>> > - <scope>test</scope> >>> > - </dependency> >>> > + <dependency> >>> > + <groupId>wsdl4j</groupId> >>> > + <artifactId>wsdl4j</artifactId> >>> > + <version>1.6.2</version> >>> > + </dependency> >>> > + <dependency> >>> > + <groupId>junit</groupId> >>> > + <artifactId>junit</artifactId> >>> > + <version>3.8.2</version> >>> > + <scope>test</scope> >>> > + </dependency> >>> > <dependency> >>> > <groupId>org.codehaus.woodstox</groupId> >>> > <artifactId>woodstox-core-asl</artifactId> >>> > <version>4.0.8</version> >>> > </dependency> >>> > - </dependencies> >>> > - <reporting> >>> > - <plugins> >>> > - <plugin> >>> > - >>> > <groupId>org.apache.maven.plugins</groupId> - >>> > <artifactId>maven-javadoc-plugin</artifactId> - >>> > <version>2.7</version> >>> > - </plugin> >>> > - <plugin> >>> > - >>> > <artifactId>maven-project-info-reports-plugin</artifactId> - >>> > </plugin> >>> > - </plugins> >>> > - </reporting> >>> > - <distributionManagement> >>> > - <site> >>> > - <id>website</id> >>> > - >>> > <url>scpexe://people.apache.org/www/ws.apache.org/commons/neethi</url> - >>> > </site> >>> > - </distributionManagement> >>> > - <properties> >>> > + <dependency> >>> > + <groupId>org.slf4j</groupId> >>> > + <artifactId>slf4j-api</artifactId> >>> > + <version>${slf4j-version}</version> >>> > + </dependency> >>> > + <dependency> >>> > + <groupId>org.slf4j</groupId> >>> > + <artifactId>slf4j-jdk14</artifactId> >>> > + <version>${slf4j-version}</version> >>> > + <scope>provided</scope> >>> > + </dependency> >>> > + </dependencies> >>> > + <reporting> >>> > + <plugins> >>> > + <plugin> >>> > + <groupId>org.apache.maven.plugins</groupId> >>> > + <artifactId>maven-javadoc-plugin</artifactId> >>> > + <version>2.7</version> >>> > + </plugin> >>> > + <plugin> >>> > + >>> > <artifactId>maven-project-info-reports-plugin</artifactId> + >>> > </plugin> >>> > + </plugins> >>> > + </reporting> >>> > + <distributionManagement> >>> > + <site> >>> > + <id>website</id> >>> > + >>> > <url>scpexe://people.apache.org/www/ws.apache.org/commons/neethi</url> >>> > + </site> >>> > + </distributionManagement> >>> > + <properties> >>> > <axiom.version>1.2.11</axiom.version> >>> > <neethi.osgi.version>${project.version}</neethi.osgi.version> >>> > <bundle.plugin.version>2.1.0</bundle.plugin.version> >>> > + <slf4j-version>1.6.1</slf4j-version> >>> > <failIfNoTests>false</failIfNoTests> >>> > - </properties> >>> > + </properties> >>> > </project> >>> > >>> > Modified: >>> > webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi >>> > /PolicyBuilder.java URL: >>> > http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/sr >>> > c/main/java/org/apache/neethi/PolicyBuilder.java?rev=1083862&r1=1083861&r >>> > 2=1083862&view=diff >>> > ======================================================================== >>> > ====== --- >>> > webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi >>> > /PolicyBuilder.java (original) +++ >>> > webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi >>> > /PolicyBuilder.java Mon Mar 21 16:46:09 2011 @@ -28,10 +28,10 @@ import >>> > javax.xml.stream.XMLStreamReader; >>> > >>> > import org.w3c.dom.Element; >>> > >>> > -import org.apache.commons.logging.Log; >>> > -import org.apache.commons.logging.LogFactory; >>> > import org.apache.neethi.builders.AssertionBuilder; >>> > import org.apache.neethi.builders.converters.ConverterRegistry; >>> > +import org.slf4j.Logger; >>> > +import org.slf4j.LoggerFactory; >>> > >>> > /** >>> > * PolicyBuilder provides set of methods to create a Policy object from >>> > an @@ -42,7 +42,7 @@ import org.apache.neethi.builders.conver >>> > */ >>> > public class PolicyBuilder { >>> > >>> > - private static final Log LOG = >>> > LogFactory.getLog(PolicyBuilder.class); + private static final Logger >>> > LOG = LoggerFactory.getLogger(PolicyBuilder.class); >>> > >>> > protected AssertionBuilderFactory factory = new >>> > AssertionBuilderFactoryImpl(this); protected PolicyRegistry >>> > defaultPolicyRegistry; >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >> >> -- >> Daniel Kulp >> [email protected] >> http://dankulp.com/blog >> Talend - http://www.talend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
