我们使用git存储库中的FileVault xml文件来配置在我们的Adobe体验管理器实例中运行的自定义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属性值中出现额外的空格。
有没有一种不同的垂直格式不会产生这样的额外空格?
发布于 2019-06-19 05:28:10
在您的情况下,我建议使用(较新的)属性格式。使用尾随的反斜杠\
,您可以指定一行在下一行继续。
不幸的是,web上几乎没有有用的文档。最好执行以下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节点(运行模式,文件名)。只需注意数据类型(布尔型、长整型、...)是以不同的方式指定的。但是您可以混合这两种格式,因此您不必迁移每个配置节点。
https://stackoverflow.com/questions/56653251
复制相似问题