Browse Source

REPORT-10719 模板保存0kb, 支持集群

research/10.0
neil 6 years ago
parent
commit
ee5c24ef12
  1. 3
      designer-base/src/main/java/com/fr/file/FileNodeFILE.java
  2. 39
      designer-base/src/main/java/com/fr/file/WorkResourceTempRenameStream.java

3
designer-base/src/main/java/com/fr/file/FileNodeFILE.java

@ -14,7 +14,6 @@ import com.fr.stable.CoreConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import com.fr.workspace.resource.WorkResourceOutputStream;
import javax.swing.Icon;
import java.io.ByteArrayInputStream;
@ -381,7 +380,7 @@ public class FileNodeFILE implements FILE {
if (!envPath.startsWith(ProjectConstants.REPORTLETS_NAME)) {
return null;
}
return new WorkResourceOutputStream(envPath);
return new WorkResourceTempRenameStream(envPath);
}
/**

39
designer-base/src/main/java/com/fr/file/WorkResourceTempRenameStream.java

@ -0,0 +1,39 @@
package com.fr.file;
import com.fr.stable.ArrayUtils;
import com.fr.stable.project.ProjectConstants;
import com.fr.workspace.WorkContext;
import com.fr.workspace.resource.WorkResource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
/**
* 这个流会先输出临时文件到服务器.
* 然后再操作服务器对文件进行重命名.
* 用于设计器本地和远程修改模板.
*/
public class WorkResourceTempRenameStream extends ByteArrayOutputStream {
private String path;
public WorkResourceTempRenameStream(String path) {
this.path = path;
}
@Override
public void close() throws IOException {
//写到给定的path上去
byte[] content = super.toByteArray();
if (ArrayUtils.isEmpty(content)) {
return;
}
String tmpPath = path + ProjectConstants.TEMP_SUFFIX;
WorkResource resource = WorkContext.getWorkResource();
// 输出临时文件到服务器
resource.write(tmpPath, content);
// 重命名文件
resource.rename(tmpPath, path);
}
}
Loading…
Cancel
Save