开放源码 CMS 入门,第 3 部分: 构建定制存储
2010-04-16 00:00:00 来源:WEB开发网SFTxFileContentStore 现在看上去应该如清单 2 所示:
清单 2. SFTxFileContentStore + 覆盖
/*
* Created on Aug 5, 2005
*/
package org.apache.slide.store.txfile;
/**
* @author Michael Oliver Created: Aug 5, 2005 Package:
* org.apache.slide.store.txfile
*/
public class SFTxFileContentStore extends TxFileContentStore {
public void storeRevisionContent(Uri uri,
NodeRevisionDescriptor revisionDescriptor,
NodeRevisionContent revisionContent)
throws ServiceAccessException,
RevisionNotFoundException {
String revisionUri = revisionUri = uri.toString() + "_"
+ revisionDescriptor.getRevisionNumber();
OutputStream os = null;
InputStream is = null;
try {
os = rm.writeResource(getActiveTxId(), revisionUri);
is = revisionContent.streamContent();
if (is != null) {
long contentBytes = FileHelper.copy(is, os);
long contentLength =
revisionDescriptor.getContentLength();
revisionDescriptor.setContentLength(contentBytes);
if (contentLength != -1
&& contentBytes != contentLength) {
rm.deleteResource(getActiveTxId(), revisionUri);
throwInternalError(
"Content length does not match expected");
}
}
} catch (IOException e) {
throwInternalError(e, uri.toString());
} catch (ResourceManagerException e) {
if (e.getStatus() ==
ResourceManagerException.ERR_NO_SUCH_RESOURCE) {
throw new RevisionNotFoundException(uri.toString(),
revisionDescriptor.getRevisionNumber());
} else {
throwInternalError(e, uri.toString());
}
} finally {
try {
if (os != null) {
os.close();
}
} catch (IOException e) {
}
try {
if (is != null) {
is.close();
}
} catch (IOException e) {
}
}
}
}
- ››CmsTop采集图文教程
- ››cmstop如何更换系统默认模板
- ››CmsTop大众版视频教程之:文章采集教程
- ››CMS行业价值和方向在哪里 究竟还剩下些什么?
- ››开放的云让业务更“闪亮”
- ››开放源码 CMS 入门,第 1 部分: 下载、安装和开始...
- ››开放源码 CMS 入门,第 2 部分: 通过 Eclipse 构建...
- ››开放源码 CMS 入门,第 3 部分: 构建定制存储
- ››开放源码 CMS 入门,第 5 部分: 为 Jakarta Slide...
- ››开放源码 CMS 入门,第 6 部分: 为 Jakarta Slide...
- ››CMS阅读功能 for v 7.5
- ››开放标准、开放源码和 Domino 6: 通过 Python 和 ...
更多精彩
赞助商链接