It looks like there is an old closed issue that proposed something similar but with a much larger scope: https://github.com/spring-projects/spring-framework/issues/17888

I was hoping to put out a PR to add a hardcoded Implementation-Vendor-Id to the currently generated MANIFEST.MF file. I'd be happy to open the PR just wanted to make sure there weren't any issues I was not considering.

Impacted code section can be found here: https://github.com/spring-projects/spring-framework/blob/main/gradle/spring-module.gradle#L40-L53

Existing code

    manifest.attributes["Implementation-Title"] = project.name
    manifest.attributes["Implementation-Version"] = project.version
    manifest.attributes["Automatic-Module-Name"] = project.name.replace('-', '.')  // for Jigsaw
    manifest.attributes["Created-By"] =
            "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"

Suggested Code

    manifest.attributes["Implementation-Title"] = project.name
    manifest.attributes["Implementation-Version"] = project.version
    manifest.attributes["Implementation-Vendor-Id"] = "org.springframework"
    manifest.attributes["Automatic-Module-Name"] = project.name.replace('-', '.')  // for Jigsaw
    manifest.attributes["Created-By"] =
            "${System.getProperty("java.version")} (${System.getProperty("java.specification.vendor")})"

The goal of this change is to provide an easier route for identifying the namespace of the dependency since they are not packaged with a pom.properties file.

Comment From: sbrannen

As pointed out elsewhere by @wilkinsona:

  • Implementation-Vendor-Id was deprecated in Java 8: https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Main_Attributes
  • It isn't mentioned at all in the Java 11 docs: https://docs.oracle.com/en/java/javase/11/docs/specs/jar/jar.html#manifest-specification

In light of that, I am closing this issue.

Comment From: kwilsonO

Thank you for the information!