dev@glassfish.java.net

MANIFEST.MF problems in Maven and OSGi packaging, naming and versioning rules

From: Ed Burns <edward.burns_at_oracle.com>
Date: Thu, 21 Jul 2011 10:23:32 -0700

Hello Team,

While sitting down to fix task JAVASERVERFACES-2028 in earnest, I
discovered some issues with the official jars on which JSF depends.

JSF Depends on the following artifacts:

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>2.2.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>jstl-api</artifactId>
            <version>1.2</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

I have verified these are in maven central, and the staging area
<https://maven.java.net/content/repositories/releases/> as well.

I have discovered some problems with the OSGi metadata in these jars,
with the first one being a showstopper for me completing the work for
JSF.

SECTION: jstl-api-1.2.jar

EB> URGENT: The MANIFEST.MF for this jar is completely missing the
EB> required metadata. In fact, the manifest is nearly empty:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: janey
Build-Jdk: 1.6.0_17


EB> Also, the jar name itself does not conform to the Maven and OSGi
EB> packaging, naming, and versioning rules. All the other jars on
EB> which JSF depends start with "javax." but the JSTL jar does not.

SECTION: javax.el-api-2.2.1.jar

Export-Package: javax.el;version="2.2.1"
Import-Package: javax.el;version="2.2.1"

EB> Why are we exporting and importing the same thing?

Bundle-License: https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html

EB> I believe this should be
EB> http://glassfish.java.net/nonav/public/CDDL+GPL.html

Bundle-Description: Java.net - The Source for Java Technology Collabor
 ation

EB> I think this should be a real description.

Bundle-DocURL: http://glassfish.org

EB> Shouldn't this be the pointer to the API javadocs?

SECTION: javax.servlet-api-3.0.1.jar

Export-Package: javax.servlet;uses:="javax.servlet.descriptor,javax.se
 rvlet.annotation";version="3.0",javax.servlet.descriptor;version="3.0
 ",javax.servlet.annotation;uses:="javax.servlet";version="3.0",javax.
 servlet.http;uses:="javax.servlet";version="3.0"

EB> Shouldn't the exported versions be 3.0.1, to match the maven version
EB> of the artifact, and, indeed, the OSGi Bundle-version?

Bundle-License: https://glassfish.dev.java.net/nonav/public/CDDL+GPL.html
Bundle-Description: Java.net - The Source for Java Technology Collaboration

EB> Same comment as for the EL artifact

Import-Package: javax.servlet;version="3.0",javax.servlet.annotation;v
 ersion="3.0",javax.servlet.descriptor;version="3.0",javax.servlet.htt
 p;version="3.0"

EB> Again, I'm wondering why this imports itself.

SECTION: javax.servlet.jsp-api-2.2.1.jar

Export-Package: javax.servlet.jsp.el;uses:="javax.servlet,javax.el,jav
 ax.servlet.jsp,javax.servlet.http";version="2.2.1",javax.servlet.jsp.
 tagext;uses:="javax.servlet.jsp";version="2.2.1",javax.servlet.jsp;us
 es:="javax.servlet,javax.el,javax.servlet.jsp.el,javax.servlet.jsp.ta
 gext,javax.servlet.http";version="2.2.1"
Tool: Bnd-0.0.255
Import-Package: javax.el,javax.servlet,javax.servlet.http,javax.servle
 t.jsp;version="2.2.1",javax.servlet.jsp.el;version="2.2.1",javax.serv
 let.jsp.tagext;version="2.2.1"

EB> Same comment as for the EL artifact

Bundle-License: https://glassfish.dev.java.net/nonav/public/CDDL+GPL.h
 tml
Bundle-Description: Java.net - The Source for Java Technology Collabor
 ation

EB> Same comment as for the EL artifact

Bundle-DocURL: http://glassfish.org

EB> Same comment as for the EL artifact

--
| edward.burns_at_oracle.com | office: +1 407 458 0017
| homepage: | http://ridingthecrest.com/