User tests: Successful: Unsuccessful:
IMPORTANT: See tracker item 32699
When a developer specifies an update server for their extension in the XML manifest the URL must end in .xml. If it doesn't the findUpdate methods of JUpdaterCollection and JUpdaterExtension will append /update.xml and /extension.xml respectively. This is a problem in the following common cases:
In all those cases the developers would use an ugly workaround, appending a dummy query string parameter, e.g. &dummy=whatever.xml. Even though this approach works in most cases it is problematic in certain occasions, it's ugly and makes Joomla! look amateurish in its handling of update sources. It's even worse considering that if Joomla! thinks it can't load an update source it silently disables it, without any way for the user to enable it sort of editing the database.
Furthermore, the necessity of the URL ending in the exact character sequence ".xml" is not documented. Our documentation implies that any valid URL returning valid XML data should be accepted. Therefore the current behavior is a bug.
The findUpdate methods of JUpdaterCollection and JUpdaterExtension are modified to support one more option key in the $options array, called append_extension. By default this is false, meaning that these methods will not attempt to tuck the /update.xml or /extension.xml suffix to the URL. Instead they will try loading the provided URL. If the URL is not found or does not contain XML data they will append the /update.xml or /extension.xml suffix to the URL and retry loading it. If it still fails to load / doesn't contain XML data the update source will be silently disabled, exactly as it happens right now.
None. This solution is backwards compatible with all currently supported versions of Joomla!.
None. This solution actually makes the code adhere to the existing documentation.
You can now use any URL in your XML manifests' updateserver tags. The URL does not have to end in .xml.