Search in sources :

Example 1 with ImportExportException

use of org.motechproject.mds.exception.importexport.ImportExportException in project motech by motech.

the class ImportExportServiceImpl method importSchema.

private void importSchema(final ImportContext importContext, final JsonReader jsonReader) {
    LOGGER.debug("Importing schema...");
    doInTransaction(new TransactionCallbackWithoutResult() {

        @Override
        protected void doInTransactionWithoutResult(TransactionStatus status) {
            try {
                ImportReader importReader = new ImportReader(jsonReader, importContext);
                importReader.importSchema();
            } catch (IOException e) {
                throw new ImportExportException("An error occurred during importing schema", e);
            }
        }
    });
    if (importContext.hasUnresolvedEntities()) {
        LOGGER.warn("Unresolved relationships found. Skipping. ({})", importContext.getUnresolvedEntities());
    }
    LOGGER.debug("Schema imported.");
    LOGGER.debug("Regenerating MDS bundle and refreshing affected bundles: {}", importContext.getAffectedModules());
    mdsBundleRegenerationService.regenerateMdsDataBundleAfterDdeEnhancement(importContext.getAffectedModulesArray());
    LOGGER.debug("Bundles regenerated/refreshed");
}
Also used : ImportReader(org.motechproject.mds.json.ImportReader) ImportExportException(org.motechproject.mds.exception.importexport.ImportExportException) TransactionStatus(org.springframework.transaction.TransactionStatus) IOException(java.io.IOException) TransactionCallbackWithoutResult(org.springframework.transaction.support.TransactionCallbackWithoutResult)

Example 2 with ImportExportException

use of org.motechproject.mds.exception.importexport.ImportExportException in project motech by motech.

the class ImportExportServiceImpl method exportEntities.

@Override
@Transactional
public void exportEntities(ImportExportBlueprint blueprint, Writer writer) {
    try (JsonWriter jsonWriter = new JsonWriter(writer)) {
        jsonWriter.setIndent("  ");
        ExportContext exportContext = new ExportContext(sortBlueprintRecords(blueprint), bundleContext, allEntities);
        ExportWriter exportWriter = new ExportWriter(jsonWriter, exportContext);
        exportWriter.export();
    } catch (IOException e) {
        throw new ImportExportException("An IO error occurred during export.", e);
    }
}
Also used : ExportContext(org.motechproject.mds.json.ExportContext) ImportExportException(org.motechproject.mds.exception.importexport.ImportExportException) IOException(java.io.IOException) JsonWriter(com.google.gson.stream.JsonWriter) ExportWriter(org.motechproject.mds.json.ExportWriter) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with ImportExportException

use of org.motechproject.mds.exception.importexport.ImportExportException in project motech by motech.

the class ImportExportServiceImpl method importInstances.

private void importInstances(final ImportContext importContext, final JsonReader jsonReader) {
    LOGGER.debug("Importing instances...");
    doInTransaction(new TransactionCallbackWithoutResult() {

        @Override
        protected void doInTransactionWithoutResult(TransactionStatus status) {
            try {
                importContext.removeExistingInstances();
                ImportReader importReader = new ImportReader(jsonReader, importContext);
                importReader.importInstances();
            } catch (IOException e) {
                throw new ImportExportException("An error occurred during importing schema", e);
            }
        }
    });
    LOGGER.debug("Instances imported.");
}
Also used : ImportReader(org.motechproject.mds.json.ImportReader) ImportExportException(org.motechproject.mds.exception.importexport.ImportExportException) TransactionStatus(org.springframework.transaction.TransactionStatus) IOException(java.io.IOException) TransactionCallbackWithoutResult(org.springframework.transaction.support.TransactionCallbackWithoutResult)

Example 4 with ImportExportException

use of org.motechproject.mds.exception.importexport.ImportExportException in project motech by motech.

the class ImportExportServiceImpl method saveImportFileAndExtractManifest.

@Override
@Transactional
public ImportManifest saveImportFileAndExtractManifest(byte[] bytes) {
    try {
        ImportManifest manifest = extractManifest(bytes);
        File file = createImportFile();
        FileUtils.writeByteArrayToFile(file, bytes);
        manifest.setImportId(getImportId(file));
        return manifest;
    } catch (IOException e) {
        throw new ImportExportException("Cannot save import file", e);
    }
}
Also used : ImportManifest(org.motechproject.mds.domain.ImportManifest) ImportExportException(org.motechproject.mds.exception.importexport.ImportExportException) IOException(java.io.IOException) File(java.io.File) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

IOException (java.io.IOException)4 ImportExportException (org.motechproject.mds.exception.importexport.ImportExportException)4 ImportReader (org.motechproject.mds.json.ImportReader)2 TransactionStatus (org.springframework.transaction.TransactionStatus)2 Transactional (org.springframework.transaction.annotation.Transactional)2 TransactionCallbackWithoutResult (org.springframework.transaction.support.TransactionCallbackWithoutResult)2 JsonWriter (com.google.gson.stream.JsonWriter)1 File (java.io.File)1 ImportManifest (org.motechproject.mds.domain.ImportManifest)1 ExportContext (org.motechproject.mds.json.ExportContext)1 ExportWriter (org.motechproject.mds.json.ExportWriter)1