Maven 1.x Jar Plugin
  1. Maven 1.x Jar Plugin
  2. MPJAR-7

Specification-Version and Implementation-Vendor-Id not being set

    Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      XP
    • Number of attachments :
      0

      Description

      Please make the jar manifests consistent.

      1. Specification-Version not being set. pom.specifiationVersion not defined in project schema.

      • maven.jar.plugin uses:

      <ant:attribute
      name="Specification-Version"
      value="$

      {pom.specificationVersion}

      "/>

      • maven.ejb.plugin uses:

      <ant:attribute
      name="Specification-Version"
      value="$

      {pom.currentVersion}

      "/>

      2. Implementation-Vendor-Id not being set. pom.organization.identifier not defined in project schema.

      • maven.jar.plugin uses:

      <ant:attribute
      name="Implementation-Vendor-Id"
      value="$

      {pom.organization.identifier}

      "/>

      • maven.ejb.plugin uses (title rather than vendor-id):

      <ant:attribute
      name="Implementation-Title"
      value="$

      {pom.package}

      "/>

      Thanks,

        Issue Links

          Activity

          Hide
          Stephen McConnell added a comment -

          If you submitting a patch that references the POM short description - can you please check for trimming of the value to a single line. Currently something like the following will cause runtime error as the pom value is not returning a trimmed single line value.

          <shortDescrption>
          My short description.
          </shortDescription>

          Show
          Stephen McConnell added a comment - If you submitting a patch that references the POM short description - can you please check for trimming of the value to a single line. Currently something like the following will cause runtime error as the pom value is not returning a trimmed single line value. <shortDescrption> My short description. </shortDescription>
          Hide
          John Casey added a comment -

          Okay, so in the EJB manifest, should the Specification-* attributes refer to the EJB spec? If so, can we hard-code the specification vendor and title as SUN and EJB/J2EE, etc.?

          Show
          John Casey added a comment - Okay, so in the EJB manifest, should the Specification-* attributes refer to the EJB spec? If so, can we hard-code the specification vendor and title as SUN and EJB/J2EE, etc.?
          Hide
          Lynn Richards added a comment -

          I believe the EJB jar manifest should document the specification and implementation of the application not that of EJB/J2EE. EJB information is available separately in EJB-specific files (via DTDs in XML).

          Show
          Lynn Richards added a comment - I believe the EJB jar manifest should document the specification and implementation of the application not that of EJB/J2EE. EJB information is available separately in EJB-specific files (via DTDs in XML).
          Hide
          Stephen McConnell added a comment -

          Under Maven RC2 the jar plugin manifest entries have been changed in such a way that can result in runtime failure based on the assigned specification version.

          The change is the inclusion of the following line in the manifest:

          <ant:attribute name="Specification-Version" value="$

          {pom.currentVersion}

          "/>

          Firstly - the "Specification-Version" is not the same as the implementation version (impl version is correctly assigned as ${pom.currentVersion). Secondly the jar optional extensions spec requires that the specification version is a dewey decimal. RC2 generated jars will fail if the current version of the jar contains alphanumeric characters (e.g. 1.2-dev) or any string value that cannot be converted to a dewey decimal.

          Show
          Stephen McConnell added a comment - Under Maven RC2 the jar plugin manifest entries have been changed in such a way that can result in runtime failure based on the assigned specification version. The change is the inclusion of the following line in the manifest: <ant:attribute name="Specification-Version" value="$ {pom.currentVersion} "/> Firstly - the "Specification-Version" is not the same as the implementation version (impl version is correctly assigned as ${pom.currentVersion). Secondly the jar optional extensions spec requires that the specification version is a dewey decimal. RC2 generated jars will fail if the current version of the jar contains alphanumeric characters (e.g. 1.2-dev) or any string value that cannot be converted to a dewey decimal.
          Hide
          Brett Porter added a comment -

          commented out offending entries. Will raise a new issue to correct the assignment of certain pom variables to Specification/Implementation-*

          Show
          Brett Porter added a comment - commented out offending entries. Will raise a new issue to correct the assignment of certain pom variables to Specification/Implementation-*

            People

            • Assignee:
              Brett Porter
              Reporter:
              Lynn Richards
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: