use of org.pentaho.platform.plugin.services.importexport.exportManifest.bindings.ExportManifestMetaStore in project pentaho-platform by pentaho.
the class SolutionImportHandler method importMetaStore.
protected void importMetaStore(ExportManifest manifest, boolean overwrite) {
// get the metastore
if (manifest != null) {
ExportManifestMetaStore manifestMetaStore = manifest.getMetaStore();
if (manifestMetaStore != null) {
// get the zipped metastore from the export bundle
RepositoryFileImportBundle.Builder bundleBuilder = new RepositoryFileImportBundle.Builder().path(manifestMetaStore.getFile()).name(manifestMetaStore.getName()).withParam("description", manifestMetaStore.getDescription()).charSet("UTF-8").overwriteFile(overwrite).mime("application/vnd.pentaho.metastore");
cachedImports.put(manifestMetaStore.getFile(), bundleBuilder);
}
}
}
use of org.pentaho.platform.plugin.services.importexport.exportManifest.bindings.ExportManifestMetaStore 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);
}
}
use of org.pentaho.platform.plugin.services.importexport.exportManifest.bindings.ExportManifestMetaStore in project pentaho-platform by pentaho.
the class SolutionImportHandlerTest method testImportMetaStore.
@Test
public void testImportMetaStore() throws Exception {
ExportManifest manifest = Mockito.spy(new ExportManifest());
String path = "/path/to/file.zip";
ExportManifestMetaStore manifestMetaStore = new ExportManifestMetaStore(path, "metastore", "description of the metastore");
importHandler.cachedImports = new HashMap<String, RepositoryFileImportBundle.Builder>();
Mockito.when(manifest.getMetaStore()).thenReturn(manifestMetaStore);
importHandler.importMetaStore(manifest, true);
Assert.assertEquals(1, importHandler.cachedImports.size());
Assert.assertTrue(importHandler.cachedImports.get(path) != null);
}
Aggregations