You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Christian Schneider (JIRA)" <ji...@apache.org> on 2012/10/30 11:30:12 UTC
[jira] [Commented] (ZOOKEEPER-1334) Zookeeper 3.4.x is not OSGi
compliant - MANIFEST.MF is flawed
[ https://issues.apache.org/jira/browse/ZOOKEEPER-1334?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13486780#comment-13486780 ]
Christian Schneider commented on ZOOKEEPER-1334:
------------------------------------------------
If you completely switched the code to use the slf4j-api. Then you should not have compile time deps to slf4j-log4j12 and log4j. These should be scope test. For compile scope you should only depend on slf4j-api. In the Manifest you should also only import the slf4j api packages not log4j. Then it will work great in apache karaf.
> Zookeeper 3.4.x is not OSGi compliant - MANIFEST.MF is flawed
> -------------------------------------------------------------
>
> Key: ZOOKEEPER-1334
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-1334
> Project: ZooKeeper
> Issue Type: Bug
> Affects Versions: 3.4.0
> Reporter: Claus Ibsen
> Assignee: Jean-Baptiste Onofré
> Attachments: ZOOKEEPER-1334.patch
>
>
> In Zookeeper 3.3.x you use log4j for logging, and the maven dep is
> eg from 3.3.4
> {code}
> <dependency>
> <groupId>log4j</groupId>
> <artifactId>log4j</artifactId>
> <version>1.2.15</version>
> <scope>compile</scope>
> </dependency>
> {code}
> Now in 3.4.0 or better you changed to use slf4j also/instead. The maven pom.xml now includes:
> {code}
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-api</artifactId>
> <version>1.6.1</version>
> <scope>compile</scope>
> </dependency>
> <dependency>
> <groupId>org.slf4j</groupId>
> <artifactId>slf4j-log4j12</artifactId>
> <version>1.6.1</version>
> <scope>compile</scope>
> </dependency>
> <dependency>
> <groupId>log4j</groupId>
> <artifactId>log4j</artifactId>
> <version>1.2.15</version>
> <scope>compile</scope>
> </dependency>
> {code}
> But the META-INF/MANIFEST.MF file in the distribution did not change to reflect this.
> The 3.3.4 MANIFEST.MF, import packages
> {code}
> Import-Package: javax.management,org.apache.log4j,org.osgi.framework;v
> ersion="[1.4,2.0)",org.osgi.util.tracker;version="[1.1,2.0)"
> {code}
> And the 3.4.1 MANIFEST.MF, import packages:
> {code}
> Import-Package: javax.management,org.apache.log4j,org.osgi.framework;v
> ersion="[1.4,2.0)",org.osgi.util.tracker;version="[1.1,2.0)"
> {code}
> This makes using zookeeper 3.4.x in OSGi environments not possible, as we get NoClassDefFoundException for slf4j classes.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira