code: @Override
      public RepositoryResourceWritable parseFileToResource(File assetFile, File metadataFile, String contentUrl) throws RepositoryException {
  
          File artifactFile = null;
          ArtifactMetadata metadata = null;
          if (assetFile.getName().endsWith("metadata.zip")) {
              metadata = explodeZip(assetFile);
              // No artifactFile to set, that's fine we just won't have a CRC or file size
          } else {
              metadata = explodeArtifact(assetFile, metadataFile);
              artifactFile = assetFile;
          }
  
          // Make sure all the required fields are set
          if (metadata == null) {
              throw new RepositoryArchiveException("Unable to find sibling metadata zip for " + assetFile.getName()
                                                   + " so do not have the required information", assetFile);
          }
  
          checkPropertySet(ASSET_TYPE_PROPERTY_KEY, metadata);
          ResourceType type = ResourceType.valueOf(metadata.getProperty(ASSET_TYPE_PROPERTY_KEY));
          RepositoryResourceWritable resource = WritableResourceFactory.createResource(null, type);
          setCommonFieldsFromSideZip(metadata, resource);
          resource.setProviderName("IBM");
          resource.setProviderUrl("http://www.ibm.com");
          attachLicenseData(metadata, resource);
  
          if (resource instanceof ProductRelatedResourceWritable) {
              setProductDetails((ProductRelatedResourceWritable) resource, metadata);
          }
  
          String appliesTo = metadata.getProperty(APPLIES_TO_PROPERTY_KEY);
          if (appliesTo != null && resource instanceof ApplicableToProductWritable) {
              ((ApplicableToProductWritable) resource).setAppliesTo(appliesTo);
          }
  
          addContent(resource, artifactFile, assetFile.getName(), metadata, contentUrl);
          processIcons(metadata, resource);
  
          return resource;
      }
docs: {@inheritDoc}