mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
Cb 4430 file extension for export (#2405)
* CB-4430. Fixed file extention for export file json * CB-4430. Fixed file extention for export file json * CB-4430. Fixed checkstyle * CB-4430. Refactor after review --------- Co-authored-by: DenisSinelnikov <denis.sinelnikov@dbaever.com> Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
This commit is contained in:
co-authored by
DenisSinelnikov
Evgenia Bezborodova
parent
8c2b2e584e
commit
0877d07d04
+2
-1
@@ -34,6 +34,7 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Map;
|
||||
|
||||
public class WebDataTransferServlet extends WebServiceServletBase {
|
||||
|
||||
@@ -67,7 +68,7 @@ public class WebDataTransferServlet extends WebServiceServletBase {
|
||||
}
|
||||
String fileName = taskInfo.getExportFileName();
|
||||
if (!CommonUtils.isEmpty(fileName)) {
|
||||
fileName += "." + WebDataTransferUtils.getProcessorFileExtension(processor);
|
||||
fileName += "." + WebDataTransferUtils.getProcessorFileExtension(processor, taskInfo.getParameters().getProcessorProperties());
|
||||
} else {
|
||||
fileName = taskInfo.getDataFileId();
|
||||
}
|
||||
|
||||
+11
@@ -23,9 +23,12 @@ import org.jkiss.dbeaver.model.preferences.DBPPropertyDescriptor;
|
||||
import org.jkiss.dbeaver.tools.transfer.registry.DataTransferProcessorDescriptor;
|
||||
import org.jkiss.utils.CommonUtils;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
class WebDataTransferUtils {
|
||||
|
||||
private static final Log log = Log.getLog(WebDataTransferUtils.class);
|
||||
public static final String EXTENSION = "extension";
|
||||
|
||||
|
||||
public static String getProcessorFileExtension(DataTransferProcessorDescriptor processor) {
|
||||
@@ -34,6 +37,14 @@ class WebDataTransferUtils {
|
||||
return CommonUtils.isEmpty(ext) ? "data" : ext;
|
||||
}
|
||||
|
||||
public static String getProcessorFileExtension(DataTransferProcessorDescriptor processor, Map<String, Object> processorProperties) {
|
||||
if (processorProperties != null && processorProperties.get(EXTENSION) != null) {
|
||||
return CommonUtils.toString(processorProperties.get(EXTENSION), "data");
|
||||
}
|
||||
|
||||
return getProcessorFileExtension(processor);
|
||||
}
|
||||
|
||||
public static String normalizeFileName(
|
||||
@NotNull String fileName,
|
||||
@NotNull WebDataTransferOutputSettings outputSettings
|
||||
|
||||
+11
-2
@@ -107,7 +107,15 @@ public class WebServiceDataTransfer implements DBWServiceDataTransfer {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private String makeUniqueFileName(WebSQLProcessor sqlProcessor, DataTransferProcessorDescriptor processor) {
|
||||
private String makeUniqueFileName(
|
||||
WebSQLProcessor sqlProcessor,
|
||||
DataTransferProcessorDescriptor processor,
|
||||
Map<String, Object> processorProperties
|
||||
) {
|
||||
if (processorProperties != null && processorProperties.get(StreamConsumerSettings.PROP_FILE_EXTENSION) != null) {
|
||||
return sqlProcessor.getWebSession().getSessionId() + "_" + UUID.randomUUID() +
|
||||
"." + processorProperties.get(StreamConsumerSettings.PROP_FILE_EXTENSION);
|
||||
}
|
||||
return sqlProcessor.getWebSession().getSessionId() + "_" + UUID.randomUUID() + "." + WebDataTransferUtils.getProcessorFileExtension(processor);
|
||||
}
|
||||
|
||||
@@ -157,7 +165,8 @@ public class WebServiceDataTransfer implements DBWServiceDataTransfer {
|
||||
monitor.beginTask("Export data", 1);
|
||||
try {
|
||||
monitor.subTask("Export data using " + processor.getName());
|
||||
Path exportFile = dataExportFolder.resolve(makeUniqueFileName(sqlProcessor, processor));
|
||||
Path exportFile = dataExportFolder.resolve(
|
||||
makeUniqueFileName(sqlProcessor, processor, parameters.getProcessorProperties()));
|
||||
try {
|
||||
exportData(monitor, processor, dataContainer, parameters, resultsInfo, exportFile);
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user