Alfresco Share文档库知识库(repository)层定制与扩展
为了保持现有的自定义和第三方附加组件,并行数据的Web脚本已发展为4.0版本并与以前的数据网络脚本共存。这些新的Web脚本位于远程API的项目,URL网址以/slingshot/doclib2/开始。
有三个扩展点支持知识库(repository)数据web脚本。
1. 文档库定义响应
一个自定义响应出现在JSON响应的metadata.custom内。一个干净的安装服务的例子是vitServer配置,slingshot-context.xml文件内定义。
customResponses属性定义了JSON的关键映射,自定义响应bean在SlingshotDocLibCustomerResponse bean内定义。
<bean id="slingshotDocLibCustomResponse"
parent="baseJavaScriptExtension"
class="org.alfresco.repo.jscript.SlingshotDocLibCustomResponse">
<property name="extensionName">
<value>slingshotDocLib</value>
</property>
<property name="customResponses">
<map>
<entry key="vtiServer">
<ref bean="doclibCustomVtiServer"/>
</entry>
</map>
</property>
</bean>
默认slingshotDocLibCustomResponse bean 配置
返回vtiServer配置的bean被定义为:
<bean id="doclibCustomVtiServer" class="org.alfresco.repo.jscript.app.VtiServerCustomResponse">
<property name="scriptUtils">
<ref bean="utilsScript" />
</property>
<property name="sysAdminParams">
<ref bean="sysAdminParams" />
</property>
<property name="port">
<value>${vti.server.external.port}</value>
</property>
<property name="host">
<value>${vti.server.external.host}</value>
</property>
</bean>
DocLibVtiServer bean 配置
VtiServerCustomResponse类(实现了CustomResponse) 返回一个Serializable对象(例如LinkedHashMap) 序列化为JSON响应的DocLib web脚本。
这个扩展点设计为返回对任何节点不特定的有用的信息,例如,存在一个可选模块,子系统是否是活动的或没有,等
2. 属性decorators
其他地方数据的Web脚本可以通过属性装饰扩展机制被扩展。这些都是用来由org.alfresco.repo.jscript.ApplicationScriptUtils类和允许属性,例如nodeRefs,用户名和日期将在一个更可用状态返回到Web层的属性。例如,
Share界面显示的用户名,用First-和Last-name,而不仅仅是用户名。由装饰属性在初始网页脚本请求返回的属性,进一步的请要是没有必要获取丢失的数据。
<bean id="applicationScriptUtils" parent="baseJavaScriptExtension"
class="org.alfresco.repo.jscript.ApplicationScriptUtils">
<property
name="decoratedProperties">
<map>
<entry key="cm:creator">
<ref bean="usernamePropertyDecorator"/>
</entry>
<entry key="cm:modifier">
<ref bean="usernamePropertyDecorator"/>
</entry>
applicationScriptUtils bean配置的局部视图
decoratedProperties属性定义短格式的QName装饰实现bean的映射。每个装饰Bean类实现了PropertyDecorator接口,并通过装饰()方法返回一个序列化的影射,然后序列化为JSON响应网页脚本请求返回的每个节点。
3. 权限列表
第三方数据的Web脚本响应是通过为每个节点返回的权限列表扩展。这些通过applicationScriptUtils bean上的userPermissions属性来定义。例如:
<property name="userPermissions">
<list>
<value>CancelCheckOut</value>
<value>ChangePermissions</value>
<value>CreateChildren</value>
<value>Delete</value>
<value>Write</value>
</list>
</property>
在applicationScriptUtils bean 内部的userPermissions属性配置
默认设置的权限不应该减少已经在Share使用的动作,指标和元数据评估。