public void readViewArchive(Path path) {

    File viewDir = configuration.getViewsDir();
    String extractedArchivesPath = viewDir.getAbsolutePath() +
        File.separator + EXTRACTED_ARCHIVES_DIR;

    File archiveFile = path.toAbsolutePath().toFile();
    if (extractor.ensureExtractedArchiveDirectory(extractedArchivesPath)) {
      try {
        final ViewConfig viewConfig = archiveUtility.getViewConfigFromArchive(archiveFile);
        String viewName = ViewEntity.getViewName(viewConfig.getName(), viewConfig.getVersion());
        final String extractedArchiveDirPath = extractedArchivesPath + File.separator + viewName;
        final File extractedArchiveDirFile = archiveUtility.getFile(extractedArchiveDirPath);
        final ViewEntity viewDefinition = new ViewEntity(viewConfig, configuration, extractedArchiveDirPath);
        addDefinition(viewDefinition);
        readViewArchive(viewDefinition, archiveFile, extractedArchiveDirFile, ambariMetaInfoProvider.get().getServerVersion());
      } catch (Exception e) {
        LOG.error("Could not process archive at path " + path, e);
      }
    }

  }
Extract a view archive at the specified path

@param path
ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java