我们在git repo中使用FileVault xml文件来配置在Adobe Experience Manager实例中运行的自定义OSGi服务。
在许多情况下,这确实很有效,但是似乎我们必须在逗号分隔的字符串中水平列出多值属性,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
aLongMultiValuedProperty="[first,second,third,fourth,fifth]"/>
这个例子看起来还不错,但是我最近编辑了一个行长为1998个字符的文件,并且git diff非常难看。
所以我宁愿格式化这样的列表:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="sling:OsgiConfig"
aLongMultiValuedProperty="[
first,
second,
third,
fourth,
fifth]"/>
但是,这样做会导致JCR属性值中出现多余的空格。
是否有其他垂直格式不会导致类似的空白?
答案 0 :(得分:0)
根据您的情况,我建议使用(较新的)属性格式。使用反斜杠\
,您可以指定一行在下一行继续。
不幸的是,网络上几乎没有有用的文档。最好执行以下XPath查询以找到一些示例:
/jcr:root/apps//*[jcr:like(fn:name(), '%.config')]
这是我的真实例子:
com.day.cq.wcm.msm.impl.actions.ContentUpdateActionFactory.config
cq.wcm.msm.action.excludednodetypes=[ \
"cq:LiveSyncConfig", \
"cq:BlueprintSyncConfig", \
"cq:LiveSyncAction", \
"cq:CatalogSyncConfig", \
"cq:CatalogSyncAction", \
"cq:meta", \
]
cq.wcm.msm.action.excludedparagraphitems=[ \
"cq:propertyInheritanceCancelled", \
]
cq.wcm.msm.action.excludedprops=[ \
"jcr:(?!(title|description)$).*", \
"sling:(?!(resourceType|resourceSuperType)$).*", \
"cq:(?!(designPath|template|lastTranslationUpdate|targetEngine)$).*", \
"publishCampaignId", \
]
cq.wcm.msm.action.ignoredMixin=[ \
".*", \
]
简而言之,它是带有后缀.config
的属性文件。其他所有内容都类似于sling:OsgiConfig节点(运行模式,文件名)。请注意,数据类型(布尔,长,...)的指定方式不同。但是您可以混合使用两种格式,因此不必迁移每个配置节点。