docs: @Override
      protected AssetInformation extractInformationFromAsset(final File archive, ArtifactMetadata metadata) throws PrivilegedActionException, ProductInfoParseException, IOException {
          AssetInformation assetInformation = new AssetInformation();
          JarFile jarFile = null;
          try {
              jarFile = AccessController.doPrivileged(new PrivilegedExceptionAction<JarFile>() {
  
                  @Override
                  public JarFile run() throws IOException {
                      return new JarFile(archive);
                  }
  
              });
              Manifest manifest = jarFile.getManifest();
              Attributes mainAttributes = manifest.getMainAttributes();
              String archiveRoot = mainAttributes.getValue("Archive-Root");
              archiveRoot = archiveRoot != null ? archiveRoot : "";
              assetInformation.addProductInfos(jarFile, archiveRoot, archive);
  
              // See what type of archive this is
              String contentType = mainAttributes.getValue("Archive-Content-Type");
              ResourceType type = getType(contentType, archive);
              assetInformation.type = type;
              assetInformation.provideFeature = mainAttributes.getValue("Provide-Feature");
  
              if (type.equals(ResourceType.ADDON)) {
                  // Only needed for addon, not product
                  assetInformation.requireFeature = mainAttributes.getValue("Require-Feature");
                  assetInformation.appliesTo = mainAttributes.getValue("Applies-To");
              }
              assetInformation.laLocation = mainAttributes.getValue(LA_HEADER_PRODUCT);
              assetInformation.liLocation = mainAttributes.getValue(LI_HEADER_PRODUCT);
              assetInformation.fileWithLicensesIn = archive;
          } finally {
              if (jarFile != null) {
                  jarFile.close();
              }
          }
          return assetInformation;
      }