code: public <T extends Assignable> T create(final Class<T> type) throws IllegalArgumentException,
          UnknownExtensionTypeException {
          // Precondition checks
          if (type == null) {
              throw new IllegalArgumentException("Type must be specified");
          }
  
          // Get the extensionType type
          final String extension = configuration.getExtensionLoader().getExtensionFromExtensionMapping(type);
  
          // Generate a random name
          String archiveName = UUID.randomUUID().toString();
  
          // Delegate
          return create(type, archiveName += extension);
      }
docs: Creates a new archive of the specified type. The archive will be be backed by the {@link Configuration} specific
  to this {@link ArchiveFactory}. Generates a random name for the archive and adds proper extension based on the
  service descriptor properties file if extension property is present (e.g.
  shrinkwrap/impl-base/src/main/resources/META-INF/services/org.jboss.shrinkwrap.api.spec.JavaArchive)
  
  
  @param type
  The type of the archive e.g. {@link WebArchive}
  @return An {@link Assignable} archive base
  @throws IllegalArgumentException
  if type is not specified
  @throws UnknownExtensionTypeException
  If no extension mapping is found for the specified type