This is even more complex that I thought :)
In the AnnotationsTest in platform I had done:
// Make sure Annotations and Comments are merged (this is not the default ATM!)
getUtil().updateObject("AnnotationCode", "AnnotationConfig",
"AnnotationCode.AnnotationConfig", 0,
"activated", "0");
But I’ve found that AnnotationCode.Script actually checks the “activated” xproperty to
decide if annotations are on or not (if off then you cannot add an annotation)…
So XWikiPreferences’s “activated” controls whether Comments and Annotations are merged
while AnnotationCode.AnnotationConfig’s “activated” xproperty controls whether annotations
are enabled or not…
Thanks
-Vincent
On 1 Sep 2015 at 17:37:16, vincent(a)massol.net (vincent(a)massol.net) wrote:
Hi,
Some analysis that took me time so I’m putting it here in case it helps someone and for us
to consider changing the way this velocity parameter works.
Problem: I was moving the Annotation functional test from enterprise to platform and the
test was failing because there are 2 Annotations entries displayed in the More Actions
menu and the PageObjects picks the first one (the wrong one). This doesn’t show in XE, nor
in an empty wiki.
Cause:
* If you’re in XE, then we provide a custom XWikiPreferences which has showannotations set
to false. Thus Comments and Annotations are merged
* If you’re in an empty wiki, then there’s no XWikiPreferences but there’s also no
AnnotationConfig page and thus this code in xwikivars.vm sets showannotations to false:
#retrieveSetting('showannotations' $settingValue)
#set ($showannotations = $settingValue)
#if ($showannotations)
## The general settings allow displaying the tab
#set ($showannotations = false)
#if ($xwiki.exists('AnnotationCode.AnnotationConfig'))
#set ($annotationConfigObject =
$xwiki.getDocument('AnnotationCode.AnnotationConfig').getObject('AnnotationCode.AnnotationConfig'))
#if ($annotationConfigObject.getProperty('activated').value != 0 &&
!$annotationConfigObject.getProperty('exceptionSpaces').value.contains($doc.space))
#set ($showannotations = true)
#set ($annotationClass =
$annotationConfigObject.getProperty('annotationClass').value)
#set ($annotationCount = $doc.getObjects($annotationClass).size())
#end
#end
#end
* If you’re in the functional test of the annotation module. You don’t have
XWikiPreferences but you do have an AnnotationConfig object and thus showannotations =
true, thus displaying the 2 tabs: both the Comments tab and the Annotation tab.
Am I the only one to believe that Comments and Annotations should be merged by default, ie
that by default showannotations = false without having to override it in XWikiPreferences?
I guess we did this for backward compatibility? Can you imagine what problem we would have
if we changed the default now?
Thanks
-Vincent