RED-6467: Added more debugging output
This commit is contained in:
parent
f4c53c722e
commit
fc642e82d2
@ -58,6 +58,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
import com.iqser.red.service.persistence.management.v1.processor.settings.FileManagementServiceSettings;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.FileUtils;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.utils.TransactionDebugPrinter;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.multitenancy.TenantContext;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.WatermarkModel;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierAttributeConfig;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.DossierAttributeConfig;
|
||||||
@ -111,7 +112,12 @@ public class DossierTemplateImportService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
public String importDossierTemplate(ImportDossierTemplateRequest request) {
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Starting dossier template import");
|
||||||
|
|
||||||
ImportTemplateResult archiveResult = this.handleArchive(request);
|
ImportTemplateResult archiveResult = this.handleArchive(request);
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Extracted dossier template archive");
|
||||||
|
|
||||||
return this.importDossierTemplate(archiveResult);
|
return this.importDossierTemplate(archiveResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -288,12 +294,15 @@ public class DossierTemplateImportService {
|
|||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
String dossierTemplateId;
|
String dossierTemplateId;
|
||||||
var dossierTemplateMeta = request.getDossierTemplate();
|
var dossierTemplateMeta = request.getDossierTemplate();
|
||||||
|
|
||||||
DossierTemplateEntity existingDossierTemplate = null;
|
DossierTemplateEntity existingDossierTemplate = null;
|
||||||
if (request.getDossierTemplateId() != null && request.isUpdateExistingTemplate()) {
|
if (request.getDossierTemplateId() != null && request.isUpdateExistingTemplate()) {
|
||||||
var dossierTemplateOptional = dossierTemplateRepository.findByIdAndNotDeleted(request.getDossierTemplateId());
|
var dossierTemplateOptional = dossierTemplateRepository.findByIdAndNotDeleted(request.getDossierTemplateId());
|
||||||
existingDossierTemplate = dossierTemplateOptional.orElse(null);
|
existingDossierTemplate = dossierTemplateOptional.orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (existingDossierTemplate != null) {
|
if (existingDossierTemplate != null) {
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Existing dossier found, importing into it");
|
||||||
dossierTemplateId = existingDossierTemplate.getId();
|
dossierTemplateId = existingDossierTemplate.getId();
|
||||||
// override the existing dossier template
|
// override the existing dossier template
|
||||||
updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId());
|
updateDossierTemplateMeta(existingDossierTemplate, dossierTemplateMeta, request.getUserId());
|
||||||
@ -303,9 +312,13 @@ public class DossierTemplateImportService {
|
|||||||
existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate)
|
existingDossierTemplate.setDossierTemplateStatus(DossierTemplateStatus.valueOf(dossierTemplatePersistenceService.computeDossierTemplateStatus(existingDossierTemplate)
|
||||||
.name()));
|
.name()));
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing colors");
|
||||||
|
|
||||||
// set colors
|
// set colors
|
||||||
this.setColors(dossierTemplateId, request.getColors());
|
this.setColors(dossierTemplateId, request.getColors());
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing watermarks");
|
||||||
|
|
||||||
// set watermarks
|
// set watermarks
|
||||||
if (CollectionUtils.isNotEmpty(request.getWatermarks())) {
|
if (CollectionUtils.isNotEmpty(request.getWatermarks())) {
|
||||||
Set<String> toSetWatermarks = request.getWatermarks().stream().map(WatermarkModel::getName).filter(Objects::nonNull).collect(Collectors.toSet());
|
Set<String> toSetWatermarks = request.getWatermarks().stream().map(WatermarkModel::getName).filter(Objects::nonNull).collect(Collectors.toSet());
|
||||||
@ -327,6 +340,8 @@ public class DossierTemplateImportService {
|
|||||||
configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId()));
|
configsToRemove.forEach(watermark -> watermarkService.deleteWatermark(watermark.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing dossier status");
|
||||||
|
|
||||||
// dossier status
|
// dossier status
|
||||||
if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) {
|
if (CollectionUtils.isNotEmpty(request.getDossierStatusInfos())) {
|
||||||
this.updateDossierStates(request, dossierTemplateId);
|
this.updateDossierStates(request, dossierTemplateId);
|
||||||
@ -335,6 +350,8 @@ public class DossierTemplateImportService {
|
|||||||
currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null));
|
currentStates.forEach(state -> dossierStatusPersistenceService.deleteDossierStatus(state.getId(), null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing dossier attributes");
|
||||||
|
|
||||||
// update dossier attributes
|
// update dossier attributes
|
||||||
if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) {
|
if (CollectionUtils.isNotEmpty(request.getDossierAttributesConfigs())) {
|
||||||
this.updateDossierAttributes(request, dossierTemplateId);
|
this.updateDossierAttributes(request, dossierTemplateId);
|
||||||
@ -343,6 +360,8 @@ public class DossierTemplateImportService {
|
|||||||
currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId()));
|
currentConfigs.forEach(da -> dossierAttributeConfigPersistenceService.deleteDossierAttribute(da.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing file attributes");
|
||||||
|
|
||||||
//update file attributes
|
//update file attributes
|
||||||
if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) {
|
if (CollectionUtils.isNotEmpty(request.getFileAttributesConfigs())) {
|
||||||
this.updateFileAttributes(request, dossierTemplateId);
|
this.updateFileAttributes(request, dossierTemplateId);
|
||||||
@ -351,6 +370,8 @@ public class DossierTemplateImportService {
|
|||||||
currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId()));
|
currentConfigs.forEach(fa -> fileAttributeConfigPersistenceService.deleteFileAttribute(fa.getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing types");
|
||||||
|
|
||||||
// update the types
|
// update the types
|
||||||
if (CollectionUtils.isNotEmpty(request.getTypes())) {
|
if (CollectionUtils.isNotEmpty(request.getTypes())) {
|
||||||
this.updateTypes(request, dossierTemplateId);
|
this.updateTypes(request, dossierTemplateId);
|
||||||
@ -363,6 +384,8 @@ public class DossierTemplateImportService {
|
|||||||
this.deleteTypes(currentTypes, new HashSet<>());
|
this.deleteTypes(currentTypes, new HashSet<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing report templates");
|
||||||
|
|
||||||
//set report templates
|
//set report templates
|
||||||
var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId);
|
var existingReports = reportTemplatePersistenceService.findByDossierTemplateId(dossierTemplateId);
|
||||||
|
|
||||||
@ -374,15 +397,20 @@ public class DossierTemplateImportService {
|
|||||||
reportsUpdated.add(report.getTemplateId());
|
reportsUpdated.add(report.getTemplateId());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Delete reports");
|
||||||
|
|
||||||
// delete the reports that were not in the import
|
// delete the reports that were not in the import
|
||||||
existingReports.forEach(r -> {
|
existingReports.forEach(r -> {
|
||||||
String storageId = r.getStorageId();
|
String storageId = r.getStorageId();
|
||||||
if (!reportsUpdated.contains(r.getTemplateId())) {
|
if (!reportsUpdated.contains(r.getTemplateId())) {
|
||||||
storageService.deleteObject(TenantContext.getTenantId(),storageId);
|
storageService.deleteObject(TenantContext.getTenantId(), storageId);
|
||||||
reportTemplatePersistenceService.delete(r.getTemplateId());
|
reportTemplatePersistenceService.delete(r.getTemplateId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "Importing legal basis");
|
||||||
|
|
||||||
// set legal basis
|
// set legal basis
|
||||||
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
|
if (CollectionUtils.isNotEmpty(request.getLegalBases())) {
|
||||||
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
|
legalBasisMappingPersistenceService.setLegalBasisMapping(dossierTemplateId, request.getLegalBases());
|
||||||
@ -395,6 +423,7 @@ public class DossierTemplateImportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, "No existing dossier found, importing into new dossier");
|
||||||
// creates new dossier template
|
// creates new dossier template
|
||||||
if (StringUtils.isEmpty(dossierTemplateMeta.getName())) {
|
if (StringUtils.isEmpty(dossierTemplateMeta.getName())) {
|
||||||
throw new ConflictException("DossierTemplate name must be set");
|
throw new ConflictException("DossierTemplate name must be set");
|
||||||
|
|||||||
@ -8,9 +8,6 @@ import javax.persistence.EntityManager;
|
|||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.TransactionStatus;
|
|
||||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
||||||
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
|
||||||
|
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.BaseDictionaryEntry;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
import com.iqser.red.service.persistence.management.v1.processor.entity.configuration.DictionaryEntryEntity;
|
||||||
@ -20,6 +17,7 @@ import com.iqser.red.service.persistence.management.v1.processor.service.persist
|
|||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.EntryRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalsePositiveEntryRepository;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository;
|
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.dictionaryentry.FalseRecommendationEntryRepository;
|
||||||
|
import com.iqser.red.service.persistence.management.v1.processor.utils.TransactionDebugPrinter;
|
||||||
import com.iqser.red.service.persistence.management.v1.processor.utils.jdbc.JDBCWriteUtils;
|
import com.iqser.red.service.persistence.management.v1.processor.utils.jdbc.JDBCWriteUtils;
|
||||||
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.DictionaryEntryType;
|
||||||
|
|
||||||
@ -109,11 +107,7 @@ public class EntryPersistenceService {
|
|||||||
|
|
||||||
var type = typeRepository.getById(typeId);
|
var type = typeRepository.getById(typeId);
|
||||||
|
|
||||||
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
TransactionDebugPrinter.printTransactionRollbackStatus(log, String.format("Importing entries for typeEntity: %s type: %s", typeId, dictionaryEntryType));
|
||||||
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
|
|
||||||
|
|
||||||
log.info("Importing entries for typeEntity: {} type: {} -- transaction has rollback {}", type, dictionaryEntryType, status.isRollbackOnly());
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (dictionaryEntryType) {
|
switch (dictionaryEntryType) {
|
||||||
case ENTRY -> {
|
case ENTRY -> {
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
package com.iqser.red.service.persistence.management.v1.processor.utils;
|
||||||
|
|
||||||
|
import org.springframework.transaction.TransactionStatus;
|
||||||
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||||
|
import org.springframework.transaction.support.TransactionSynchronizationManager;
|
||||||
|
|
||||||
|
import lombok.experimental.UtilityClass;
|
||||||
|
|
||||||
|
@UtilityClass
|
||||||
|
public class TransactionDebugPrinter {
|
||||||
|
|
||||||
|
public void printTransactionRollbackStatus(org.slf4j.Logger log, String message) {
|
||||||
|
|
||||||
|
if (TransactionSynchronizationManager.isActualTransactionActive()) {
|
||||||
|
TransactionStatus status = TransactionAspectSupport.currentTransactionStatus();
|
||||||
|
|
||||||
|
log.info(message + " -- transaction isRollbackOnly {}", status.isRollbackOnly());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user