mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-10 11:33:11 +00:00
74720: Refactor temp file creation/deletion
This commit is contained in:
@@ -12,6 +12,8 @@ import java.io.IOException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import javax.xml.transform.Result;
|
import javax.xml.transform.Result;
|
||||||
import javax.xml.transform.Source;
|
import javax.xml.transform.Source;
|
||||||
import javax.xml.transform.Transformer;
|
import javax.xml.transform.Transformer;
|
||||||
@@ -58,8 +60,7 @@ public class SubmissionFormsMigration extends DSpaceRunnable<SubmissionFormsMigr
|
|||||||
"<!ELEMENT item-submission (submission-map, step-definitions, submission-definitions) >";
|
"<!ELEMENT item-submission (submission-map, step-definitions, submission-definitions) >";
|
||||||
private static final String CONTENT_DTD_INPUT_FORMS_DUMMY =
|
private static final String CONTENT_DTD_INPUT_FORMS_DUMMY =
|
||||||
"<!ELEMENT input-forms (form-map, form-definitions, form-value-pairs) >";
|
"<!ELEMENT input-forms (form-map, form-definitions, form-value-pairs) >";
|
||||||
private File inputFormsDummyDTDTemp;
|
private List<File> tempFiles = new ArrayList<>();
|
||||||
private File itemSubmissionDummyDTDTemp;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We need to force this, because some dependency elsewhere interferes.
|
* We need to force this, because some dependency elsewhere interferes.
|
||||||
@@ -79,7 +80,7 @@ public class SubmissionFormsMigration extends DSpaceRunnable<SubmissionFormsMigr
|
|||||||
if (this.itemSubmissionsFilePath != null) {
|
if (this.itemSubmissionsFilePath != null) {
|
||||||
this.transform(itemSubmissionsFilePath, PATH_XSL_ITEM_SUBMISSION, PATH_OUT_ITEM_SUBMISSION);
|
this.transform(itemSubmissionsFilePath, PATH_XSL_ITEM_SUBMISSION, PATH_OUT_ITEM_SUBMISSION);
|
||||||
}
|
}
|
||||||
deleteDTDFileDummies();
|
deleteTempFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -141,43 +142,32 @@ public class SubmissionFormsMigration extends DSpaceRunnable<SubmissionFormsMigr
|
|||||||
|
|
||||||
private void createDTDFileDummiesIfNotPresent() {
|
private void createDTDFileDummiesIfNotPresent() {
|
||||||
// Create temporary dummy item-submission.dtd in directory of input item-submission.xml if not present
|
// Create temporary dummy item-submission.dtd in directory of input item-submission.xml if not present
|
||||||
String itemSubmissionDir = StringUtils.substringBeforeLast(itemSubmissionsFilePath, File.separator);
|
this.createDummyFileIfNotPresent(itemSubmissionsFilePath, NAME_DTD_ITEM_SUBMISSION, CONTENT_DTD_ITEM_SUBMISSION_DUMMY);
|
||||||
File itemSubmissionDTD = new File (itemSubmissionDir + File.separator + NAME_DTD_ITEM_SUBMISSION);
|
|
||||||
if (!itemSubmissionDTD.isFile()) {
|
|
||||||
itemSubmissionDummyDTDTemp = itemSubmissionDTD;
|
|
||||||
|
|
||||||
Path path = Paths.get(itemSubmissionDir + File.separator + NAME_DTD_ITEM_SUBMISSION);
|
|
||||||
byte[] strToBytes = CONTENT_DTD_ITEM_SUBMISSION_DUMMY.getBytes();
|
|
||||||
|
|
||||||
try {
|
|
||||||
Files.write(path, strToBytes);
|
|
||||||
} catch (IOException e) {
|
|
||||||
handler.logError("Error trying to create dummy " + NAME_DTD_ITEM_SUBMISSION);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Create temporary dummy input-forms.dtd in directory of input input-forms.xml if not present
|
// Create temporary dummy input-forms.dtd in directory of input input-forms.xml if not present
|
||||||
String inputFormsDir = StringUtils.substringBeforeLast(inputFormsFilePath, File.separator);
|
this.createDummyFileIfNotPresent(inputFormsFilePath, NAME_DTD_INPUT_FORMS, CONTENT_DTD_INPUT_FORMS_DUMMY);
|
||||||
File inputFormsDTD = new File (inputFormsDir + File.separator + NAME_DTD_INPUT_FORMS);
|
}
|
||||||
if (!inputFormsDTD.isFile()) {
|
|
||||||
inputFormsDummyDTDTemp = inputFormsDTD;
|
|
||||||
|
|
||||||
Path path = Paths.get(inputFormsDir + File.separator + NAME_DTD_INPUT_FORMS);
|
private void createDummyFileIfNotPresent(String fileInInputDir, String dummyFileName, String dummyContent) {
|
||||||
byte[] strToBytes = CONTENT_DTD_INPUT_FORMS_DUMMY.getBytes();
|
String dir = StringUtils.substringBeforeLast(fileInInputDir, File.separator);
|
||||||
|
File dummyFile = new File (dir + File.separator + dummyFileName);
|
||||||
|
if (!dummyFile.isFile()) {
|
||||||
|
Path path = Paths.get(dir + File.separator + dummyFileName);
|
||||||
|
byte[] strToBytes = dummyContent.getBytes();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Files.write(path, strToBytes);
|
Files.write(path, strToBytes);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
handler.logError("Error trying to create dummy " + NAME_DTD_INPUT_FORMS);
|
handler.logError("Error trying to create dummy " + dummyFileName);
|
||||||
}
|
}
|
||||||
|
tempFiles.add(dummyFile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteDTDFileDummies() {
|
private void deleteTempFiles() {
|
||||||
if (itemSubmissionDummyDTDTemp != null) {
|
for (File tempFile: tempFiles) {
|
||||||
itemSubmissionDummyDTDTemp.delete();
|
if (tempFile != null && tempFile.isFile()) {
|
||||||
|
tempFile.delete();
|
||||||
}
|
}
|
||||||
if (inputFormsDummyDTDTemp != null) {
|
|
||||||
inputFormsDummyDTDTemp.delete();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user