有没有办法可以在实例化新存储库时为Apache Jackrabbit配置自定义节点类型?
我正在使用Apache Maven自动化我的构建,并且使用JUnit和集成测试运行一些单元测试以与Jetty一起运行,并且希望能够轻松地设置和拆除测试存储库.
在JCR 1中你可以这样做:
final InputStream in = zip.getInputStream(zip.getEntry(zipEntryName));
node.setProperty(JcrConstants.JCR_CONTENT, in);
Run Code Online (Sandbox Code Playgroud)
但是在JCR 2中已经弃用了这个内容,详见http://www.day.com/maven/jsr170/javadocs/jcr-2.0/javax/jcr/Node.html#setProperty%28java.lang.String,%20java.io. InputStream的29%
这说我应该使用node.setProperty(String, Binary)但我没有看到任何方法将我的inputStream变成二进制.任何人都可以指向我的文档或示例代码吗?
我正在比较Alfresco,Magnolia和Joomla,特别是以下功能:
a. Ease of Integration of user created templates.
b. JCR (JSR-170?) or CMIS compliance.
c. Scalability in architecture.
d. Mobile site deployment.
Run Code Online (Sandbox Code Playgroud)
我使用cmsmatrix.org来比较功能,但我无法获得与上述要点相关的一些具体信息.
根据您使用上述一种或多种CMS产品的经验获得的任何见解都会有所帮助.
谢谢,
克里什.
我不确定选择哪种方法来存储这些类型的文档,因为关键要求是尽可能多地收集元数据,pdf,ods和MS office文档有各种类型的元数据 ......
因此,如果节点树具有"组/用户/类别/文档"或"类别/组/用户/文档"结构(我不确定哪个更好),则每个文档都必须具有属性"键入"如果它是pdf/doc/odt/ppt等,我每次都要测试它,知道它有哪些元数据类型,对吧?在我看来非常无效..
我尝试更新 JCR 2.0 中的节点
InputStream content = node.getProperty("jcr:content").getProperty("jcr:data").getBinary().getStream();
//TODO same with stream
Binary value = ...;
Node contentNode = node.getProperty("jcr:content");
contentNode.setProperty("jcr:content", value);
Run Code Online (Sandbox Code Playgroud)
我收到异常“javax.jcr.nodetype.ConstraintViolationException:项目受保护”。怎么了?
我需要查询jcr存储库以查找日期属性(例如jcr:created)比特定日期更年轻的节点.
使用SQL2,我像这样检查"jcr:created> date"(工作正常):
SELECT * FROM [nt:base] AS s WHERE s.[jcr:created] > CAST('2012-01-05T00:00:00.000Z' AS DATE)
现在棘手的部分:
还有一个额外的属性声明需要动态添加到jcr:created日期的天数.
假设该属性包含5(天),那么查询不应该检查"jcr:created> date"而是"(jcr:created + 5)> date".包含属性值10的下一个节点应通过"(jcr:created + 10)> date"进行检查.
是否有任何智能/动态操作数可以做到这一点?由于属性是特定于节点的,因此我无法将其静态添加到查询中,但必须读取每个节点的属性.
如果我得到它,Apache Sling将为Jackrabbit JCR存储库充当REST CRUD接口.
由于已经存在RESTful协议(其AtomPub实现中的CMIS)以与JCR存储库一起工作,除了视图/模板层之外,使用Apache Sling与CMIS(即通过Apache Chemistry)有什么优势吗?
使用CMIS不支持的JCR(Sling)可以做些什么吗?
我试图将二进制数据(图像)保存到JCR节点.我正在使用这种方法从evernote获取图片注意:public byte [] getBody()然后尝试使用setProperty(string,Binary)设置属性jcr:data和文件内容
这就是我这样做的方式:
Node n;
byte [] fileContent = resrouce.getData().getBody();
....
n.setProperty("jcr:mimeType", "image/png");
n.setProperty("jcr:data", fileContent);
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误
没有为setProperty找到合适的方法(java.lang.String,byte [])
jcr:data使用二进制文件内容设置属性的方法是什么?
我有组件层次结构 parsys -> parentcomp -> childcomp
parentcomp节点有一些属性.我试图parentcomp在childcomp级别访问父属性.
我不知道该怎么做.
任何想法如何获得父节点属性.我知道下面的代码,给我一个父节点作为选择器之一的路径.但是,不确定如何获取确切的特定节点并读取这些属性.
<%= currentNode.getPath() %>
Run Code Online (Sandbox Code Playgroud)
谢谢你,斯里兰卡