fileHistoryDao.addFileHistory(fileHistory);
}
public void publishFile(String appName, String fileName, int version) {
checkAppName(appName);
FileCurrent fileCurrent = fileCurrentDao.getFileCurrent(appName, fileName);
checkNotNull(fileCurrent);
checkArgument(fileCurrent.getVersion() == version, "only latest version can update");
FileHistory fileHistory = fileHistoryDao.getFileHistory(appName, fileName, version);
checkNotNull(fileHistory);
checkArgument(!fileHistory.isPublished(), "has published");
String xml = fileHistory.getXml();
String md5 = Md5Util.md5(xml);
FilePublished filePublished = new FilePublished(appName, fileName, version, xml, md5);
if (filePublishedDao.updateFilePublished(filePublished) == 0) {
filePublishedDao.addFilePublished(filePublished);
}
String username = FlashRequestContext.getCurrentContext().getUsername();
fileCurrent.setLastPublisher(username);
fileCurrent.setLastPublishTime(new Date());
fileCurrent.setLastPublishVersion(version);
fileCurrentDao.updateFileCurrent(fileCurrent);
fileHistoryDao.updatePublish(appName, fileName, version, true, username, new Date());
}