code: public static String getValue(Manifest manifest, Attributes.Name name) {
  
      String value = manifest.getMainAttributes().getValue(name);
      if (value == null) {
        for (Attributes attributes : manifest.getEntries().values()) {
          value = attributes.getValue(name);
        }
      }
      return value;
    }
docs: This method gets an attribute-value from a {@link Manifest} in a pragmatic way. It tries to
  {@link Attributes#getValue(java.util.jar.Attributes.Name) get} the value from the
  {@link Manifest#getMainAttributes() main-attributes}. If NOT available it searches all other
  {@link Manifest#getEntries() available attribute entries} for the value and returns the first one found
  in deterministic but unspecified order.
  
  @param manifest is the {@link Manifest} where to get the attribute-value from.
  @param name is the {@link java.util.jar.Attributes.Name} of the requested attribute.
  @return the requested value or {@code null} if NOT available.
  @since 2.0.0