use of org.pentaho.metastore.api.IMetaStore in project pentaho-platform by pentaho.
the class PentahoPlatformExporter method exportMetastore.
protected void exportMetastore() throws IOException {
log.debug("export the metastore");
try {
Path tempDirectory = Files.createTempDirectory(METASTORE);
IMetaStore xmlMetaStore = new XmlMetaStore(tempDirectory.toString());
MetaStoreUtil.copy(getRepoMetaStore(), xmlMetaStore);
File zippedMetastore = Files.createTempFile(METASTORE, EXPORT_TEMP_FILENAME_EXT).toFile();
ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zippedMetastore));
zipFolder(tempDirectory.toFile(), zipOutputStream, tempDirectory.toString());
zipOutputStream.close();
// now that we have the zipped content of an xml metastore, we need to write that to the export bundle
FileInputStream zis = new FileInputStream(zippedMetastore);
String zipFileLocation = METASTORE + METASTORE_BACKUP_EXT;
ZipEntry metastoreZipFileZipEntry = new ZipEntry(zipFileLocation);
zos.putNextEntry(metastoreZipFileZipEntry);
try {
IOUtils.copy(zis, zos);
} catch (IOException e) {
throw e;
} finally {
zis.close();
zos.closeEntry();
}
// add an ExportManifest entry for the metastore.
ExportManifestMetaStore exportManifestMetaStore = new ExportManifestMetaStore(zipFileLocation, getRepoMetaStore().getName(), getRepoMetaStore().getDescription());
getExportManifest().setMetaStore(exportManifestMetaStore);
zippedMetastore.deleteOnExit();
tempDirectory.toFile().deleteOnExit();
} catch (Exception e) {
log.error(Messages.getInstance().getString("PentahoPlatformExporter.ERROR.ExportingMetaStore"));
log.debug(Messages.getInstance().getString("PentahoPlatformExporter.ERROR.ExportingMetaStore"), e);
}
}
Aggregations