Url normalizer 1.8.3 is not allowed on sub wiki

Hi.

We just updated our wiki from 13.10.6 to 15.10.11. When updating extension we came to this error message:

Extension [org.xwiki.contrib:application-urlnormalizer-api/1.8.3] is not allowed on namespace [wiki:xyz]. Allowed namespaces are: [{root}]

Version 1.8.1 is currently installed.

Regards, Simpel

This means that the URL Normalizer API extension needs to be installed at farm level and cannot be installed only in a single subwiki.

This was changed in version 1.8.3 (see Loading... and URLNORMALZ-38: URLNormalizer fails to work if installed in two differ… · xwiki-contrib/application-urlnormalizer@01ac68e · GitHub). Previously it was able to be installed on subwikis (wrongly).

Maybe make sure you re-install it.

I deinstalled it (including dependency) and installed it in main wiki (with all sub wikis option). Now it’s only working when triggered manually in URLNormalizerAdminSection not on save anymore.

I’m not sure what happend but now it works. (Maybe some magic during the night?)

The only thing I did today before testing today:

  • disabling realtime-editor
  • set “$escapetool.xml($propertyClass.translatedPrettyName)” in the admin settings to “yes” and push save

But not sure if anything of those actions above had anything to do with this “magic”.

Btw: it seems that there is no translation key for “$escapetool.xml($propertyClass.translatedPrettyName)”. And it’s always setting back to “Default (Yes)” if chosing “Yes” or “No”. (Did this change in sub wiki.)

Simpel

AFAICs the code is:

...
  #set ($configurationObject = $configurationDocument.getObject('URLNormalizer.Code.ConfigurationClass', true))
  #set ($property = $configurationObject.getProperty('enabled'))
  #set ($propertyClass = $configurationObject.getxWikiClass().get('enabled'))
  #set ($propertyId = "URLNormalizer.Code.FilterClass_${configurationObject.number}_enabled")
  <dl>
    <dt><label for="normalizer_enabled">$escapetool.xml($propertyClass.translatedPrettyName)</label></dt>
...

Thus it seems to indicate that $propertyClass is NULL which means that $configurationObject is NULL probably and that $configurationDocument is NULL and thus that there’s no URLNormalizer.Code.Configuration page in the wiki where you’re configuring the Admin UI.

Funny, it is but:

  • URLNormalizer/Code created 02.09.2024 14:38
  • URLNormalizer/Code/Configuration created 03.09.2024 11:51

I installed it farm wide at the upper time but made that try to change in the admin section at around the second time. That shouldn’t be so?