We are preparing a log4j 1.2.16 release over at Logging Services and adding OSBi bundle metadata was on our bug list (https://issues.apache.org/bugzilla/show_bug.cgi?id=432820 ). I've taken a shot at modifying our pom.xml to use maven-felix- plugin and would appreciate any comments.

Here is the situation:

log4j-1.2.16.jar contains classes in org.apache.log4j and child packages. org.apache.log4j.lf5 and org.apache.log4j.chainsaw packages are provided in the jar for compatibility with earlier jars, however neither are intended for use (LF5 is dead and Chainsaw 2 is its own deliverable now). Those classes are suppressed from exporting.

log4j sniffs for IBM Visual Age in some diagnostic code which resulted in "com.ibm.uvm.tools" in the default imports. Also, Agent.java which has no known users loads com.sun.jdmk.comm.HtmlAdapterServer by reflection. Imports of both those packages are suppressed.

Between the JMX, JMS, SMTP and other appenders, log4j does import many java.* and javax.* packages. Those packages aren't essential to the functioning of log4j, just specific appenders.

The changes to the pom.xml were:

= = = = = = ========================================================================
--- logging/log4j/trunk/pom.xml (original)
+++ logging/log4j/trunk/pom.xml Wed Aug 13 12:27:27 2008
@@ -19,7 +19,7 @@
  <modelVersion>4.0.0</modelVersion>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
-  <packaging>jar</packaging>
+  <packaging>bundle</packaging>
  <name>Apache Log4j</name>
  <version>1.2.16-SNAPSHOT</version>
  <description>Apache Log4j 1.2</description>
@@ -367,6 +367,20 @@
        <artifactId>rat-maven-plugin</artifactId>
        <version>1.0-alpha-3</version>
      </plugin>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>1.4.3</version>
+        <extensions>true</extensions>
+        <configuration>
+            <instructions>
+                <!-- omit chainsaw and LF5   -->
+ <Export-Package>!org.apache.log4j.lf5.*,! org.apache.log4j.chainsaw.*,org.apache.log4j.*</Export-Package> + <!-- IBM Visual Age and HTMLAdapterServer are sniffed by reflection --> + <Import-Package>!com.ibm.uvm.tools,! com.sun.jdmk.comm,*</Import-Package>
+            </instructions>
+        </configuration>
+      </plugin>
    </plugins>
    <testSourceDirectory>tests/src/java</testSourceDirectory>
    <testResources>

The generated MANIFEST.MF was:


Manifest-Version: 1.0
Built-By: curta
Created-By: Apache Maven Bundle Plugin
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Import-Package: javax.jms,javax.mail,javax.mail.internet,javax.managem
 ent,javax.naming,javax.xml.parsers,org.apache.log4j,org.apache.log4j.
 config,org.apache.log4j.helpers,org.apache.log4j.jdbc,org.apache.log4
 j.jmx,org.apache.log4j.net,org.apache.log4j.nt,org.apache.log4j.or,or
 g.apache.log4j.or.jms,org.apache.log4j.or.sax,org.apache.log4j.spi,or
 g.apache.log4j.varia,org.apache.log4j.xml,org.w3c.dom,org.xml.sax
Bnd-LastModified: 1218653302446
Export-Package: org.apache.log4j.or.sax;uses:="org.apache.log4j.or,org
 .xml.sax",org.apache.log4j.or;uses:="org.apache.log4j,org.apache.log4
 j.spi,org.apache.log4j.helpers",org.apache.log4j.spi;uses:="org.apach
 e.log4j.or,org.apache.log4j,org.apache.log4j.helpers",org.apache.log4
 j.jmx;uses:="org.apache.log4j,org.apache.log4j.spi,javax.management,o
 rg.apache.log4j.helpers",org.apache.log4j.xml;uses:="org.apache.log4j
 .or,org.apache.log4j.spi,org.xml.sax,org.w3c.dom,org.apache.log4j.con
 fig,org.apache.log4j,javax.xml.parsers,org.apache.log4j.helpers",org.
 apache.log4j.net;uses:="org.apache.log4j.spi,org.apache.log4j.xml,org
 .w3c.dom,org.apache.log4j,javax.naming,javax.mail.internet,javax.mail
 ,javax.jms,org.apache.log4j.helpers",org.apache.log4j.config;uses:="o
 rg.apache.log4j,org.apache.log4j.spi,org.apache.log4j.helpers",org.ap
 ache.log4j.jdbc;uses:="org.apache.log4j,org.apache.log4j.spi",org.apa
 che.log4j;uses:="org.apache.log4j.or,org.apache.log4j.spi,org.apache.
 log4j.config,org.apache.log4j.helpers",org.apache.log4j.or.jms;uses:=
 "org.apache.log4j.or,javax.jms,org.apache.log4j.helpers",org.apache.l
 og4j.varia;uses:="org.apache.log4j,org.apache.log4j.spi,org.apache.lo
 g4j.helpers",org.apache.log4j.nt;uses:="org.apache.log4j,org.apache.l
 og4j.spi,org.apache.log4j.helpers",org.apache.log4j.helpers;uses:="or
 g.apache.log4j,org.apache.log4j.spi"
Bundle-Version: 1.2.16.SNAPSHOT
Ignore-Package: org.apache.log4j.lf5.config,com.ibm.uvm.tools,org.apac
 he.log4j.lf5.viewer.images,com.sun.jdmk.comm
Bundle-Name: Apache Log4j
Bundle-Description: Apache Log4j 1.2
Build-Jdk: 1.5.0_13
Private-Package: org.apache.log4j.lf5.config,org.apache.log4j.lf5.view
 er.images
Bundle-DocURL: http://www.apache.org
Bundle-ManifestVersion: 2
Bundle-Vendor: Apache Software Foundation
Bundle-SymbolicName: log4j.log4j
Tool: Bnd-0.0.255

Name: org.apache.log4j
Implementation-Title: log4j
Implementation-Version: 1.2.16-SNAPSHOT
Implementation-Vendor: "Apache Software Foundation"


A release candidate for log4j 1.2.16 will be prepared in the next few days. Any comments before release preparation or during the voting would be appreciated either here, on the bug or on [EMAIL PROTECTED] .

Thanks.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to