Release Notes for XWiki 4.3 Release Candidate 1

Last modified by Thomas Mortagne on 2017/03/24

This is the release notes for XWiki Platform, XWiki Enterprise and XWiki Enterprise Manager. They share the same release notes as they are released together and have the same version.

This is the first and hopefully final release candidate of the 4.3 release cycle. Being a release candidate, this release contains bugfixes and polishing.

New and Noteworthy (since XWiki 4.3 Milestone 2)

Miscellaneous

  • Several extension manager improvements and bug fixes

See the full list of JIRA issues fixed in this release.

For Developers

  • Activity Stream UI and Color Theme UI have been moved to their own modules.

Upgrades

The following dependencies have been upgraded:

Translations

The following translations have been updated: 

Tested Browsers

Here's the list of browsers tested with this version (i.e. browsers that we've tested as working - Check the list of supported browsers):

x.x

Known issues

Test Report

You can check the manual test report to learn about what was tested and the results on various browsers.

Backward Compatibility and Migration Notes

General Notes

You may also want to import the default wiki XAR in order to benefit from all the improvements listed above.

Always make sure you compare your xwiki.cfg and xwiki.properties files with the newest version since some configuration parameters were added. Note that you should add xwiki.store.migration=1 so that XWiki will attempt to automatically migrate your current database to the new schema. Make sure you backup your Database before doing anything.

API Breakages

The following APIs were modified since 4.2:

  • [Young API] Introduce API to associate dependency status to the namespace.
    org.xwiki.extension.InstalledExtension: Method 'public boolean isDependency(java.lang.String)' has been added to an interface
  • [Young API] Introduce ExtensionRepositoryDescriptor as a replacement of ExtensionRepositoryId
    org.xwiki.extension.ExtensionManagerConfiguration: Method 'public java.util.Collection getExtensionRepositoryDescriptors()' has been added to an interface
    org.xwiki.extension.repository.ExtensionRepository: Method 'public org.xwiki.extension.repository.ExtensionRepositoryDescriptor getDescriptor()' has been added to an interface
    org.xwiki.extension.repository.ExtensionRepositoryFactory: Method 'public org.xwiki.extension.repository.ExtensionRepository createRepository(org.xwiki.extension.repository.ExtensionRepositoryDescriptor)' has been added to an interface
    org.xwiki.extension.repository.ExtensionRepositoryManager: Method 'public org.xwiki.extension.repository.ExtensionRepository addRepository(org.xwiki.extension.repository.ExtensionRepositoryDescriptor)' has been added to an interface
    org.xwiki.extension.repository.ExtensionRepositorySource: Method 'public java.util.Collection getExtensionRepositoryDescriptors()' has been added to an interface
  • The userdirectory and usertools plugins have been retired
    com.xpn.xwiki.plugin.userdirectory.Group: Class com.xpn.xwiki.plugin.userdirectory.Group removed
    com.xpn.xwiki.plugin.userdirectory.UserDirectoryPlugin: Class com.xpn.xwiki.plugin.userdirectory.UserDirectoryPlugin removed
    com.xpn.xwiki.plugin.userdirectory.UserDirectoryPluginAPI: Class com.xpn.xwiki.plugin.userdirectory.UserDirectoryPluginAPI removed
    com.xpn.xwiki.plugin.usertools.XWikiUserManagementTools: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementTools removed
    com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsAPI: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsAPI removed
    com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsImpl: Class com.xpn.xwiki.plugin.usertools.XWikiUserManagementToolsImpl removed
  • This should be fixed: a new 'sendMessageFromTemplate' method was added before the 4.2 release and then removed only from master (4.3-SNAPSHOT). We need to decide what we do with this method.
    com.xpn.xwiki.plugin.mailsender.MailSender: Method 'public int sendMessageFromTemplate(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.util.Map)' has been removed
  • Many REST API module classes that were not meant to be public have been moved to internal package.
    org.xwiki.rest.ComponentsObjectFactory: Class org.xwiki.rest.ComponentsObjectFactory removed
    org.xwiki.rest.Constants: Field ALLOWED_VALUES_ATTRIBUTE_NAME has been removed, but it was previously a constant
    org.xwiki.rest.Constants: Field RELEASABLE_COMPONENT_REFERENCES has been removed, but it was previously a constant
    org.xwiki.rest.Constants: Field XWIKI_COMPONENT_MANAGER has been removed, but it was previously a constant
    org.xwiki.rest.DomainObjectFactory: Class org.xwiki.rest.DomainObjectFactory removed
    org.xwiki.rest.RangeIterable: Class org.xwiki.rest.RangeIterable removed
    org.xwiki.rest.Relations: Class org.xwiki.rest.Relations removed
    org.xwiki.rest.Utils: Class org.xwiki.rest.Utils removed
    org.xwiki.rest.XWikiAuthentication: Class org.xwiki.rest.XWikiAuthentication removed
    org.xwiki.rest.XWikiJaxRsApplication: Class org.xwiki.rest.XWikiJaxRsApplication removed
    org.xwiki.rest.XWikiRestletJaxRsApplication: Class org.xwiki.rest.XWikiRestletJaxRsApplication removed
    org.xwiki.rest.XWikiRestletServlet: Class org.xwiki.rest.XWikiRestletServlet removed
    org.xwiki.rest.XWikiSecretVerifier: Class org.xwiki.rest.XWikiSecretVerifier removed
    org.xwiki.rest.XWikiSetupCleanupFilter: Class org.xwiki.rest.XWikiSetupCleanupFilter removed
    org.xwiki.rest.exceptions.QueryExceptionMapper: Class org.xwiki.rest.exceptions.QueryExceptionMapper removed
    org.xwiki.rest.exceptions.XWikiExceptionMapper: Class org.xwiki.rest.exceptions.XWikiExceptionMapper removed
    org.xwiki.rest.representations.TextPlainReader: Class org.xwiki.rest.representations.TextPlainReader removed
    org.xwiki.rest.representations.comments.FormUrlEncodedCommentReader: Class org.xwiki.rest.representations.comments.FormUrlEncodedCommentReader removed
    org.xwiki.rest.representations.comments.TextPlainCommentReader: Class org.xwiki.rest.representations.comments.TextPlainCommentReader removed
    org.xwiki.rest.representations.objects.FormUrlEncodedObjectReader: Class org.xwiki.rest.representations.objects.FormUrlEncodedObjectReader removed
    org.xwiki.rest.representations.objects.FormUrlEncodedPropertyReader: Class org.xwiki.rest.representations.objects.FormUrlEncodedPropertyReader removed
    org.xwiki.rest.representations.objects.TextPlainPropertyReader: Class org.xwiki.rest.representations.objects.TextPlainPropertyReader removed
    org.xwiki.rest.representations.pages.FormUrlEncodedPageReader: Class org.xwiki.rest.representations.pages.FormUrlEncodedPageReader removed
    org.xwiki.rest.representations.pages.TextPlainPageReader: Class org.xwiki.rest.representations.pages.TextPlainPageReader removed
    org.xwiki.rest.representations.tags.FormUrlEncodedTagsReader: Class org.xwiki.rest.representations.tags.FormUrlEncodedTagsReader removed
    org.xwiki.rest.representations.tags.TextPlainTagsReader: Class org.xwiki.rest.representations.tags.TextPlainTagsReader removed
    org.xwiki.rest.resources.BaseAttachmentsResource: Class org.xwiki.rest.resources.BaseAttachmentsResource removed
    org.xwiki.rest.resources.BaseAttachmentsResource$AttachmentInfo: Class org.xwiki.rest.resources.BaseAttachmentsResource$AttachmentInfo removed
    org.xwiki.rest.resources.BaseSearchResult: Class org.xwiki.rest.resources.BaseSearchResult removed
    org.xwiki.rest.resources.BaseSearchResult$SearchScope: Class org.xwiki.rest.resources.BaseSearchResult$SearchScope removed
    org.xwiki.rest.resources.BrowserAuthenticationResource: Class org.xwiki.rest.resources.BrowserAuthenticationResource removed
    org.xwiki.rest.resources.ModificationsResource: Class org.xwiki.rest.resources.ModificationsResource removed
    org.xwiki.rest.resources.RootResource: Class org.xwiki.rest.resources.RootResource removed
    org.xwiki.rest.resources.SyntaxesResource: Class org.xwiki.rest.resources.SyntaxesResource removed
    org.xwiki.rest.resources.attachments.AttachmentAtPageVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentAtPageVersionResource removed
    org.xwiki.rest.resources.attachments.AttachmentHistoryResource: Class org.xwiki.rest.resources.attachments.AttachmentHistoryResource removed
    org.xwiki.rest.resources.attachments.AttachmentResource: Class org.xwiki.rest.resources.attachments.AttachmentResource removed
    org.xwiki.rest.resources.attachments.AttachmentVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentVersionResource removed
    org.xwiki.rest.resources.attachments.AttachmentsAtPageVersionResource: Class org.xwiki.rest.resources.attachments.AttachmentsAtPageVersionResource removed
    org.xwiki.rest.resources.attachments.AttachmentsResource: Class org.xwiki.rest.resources.attachments.AttachmentsResource removed
    org.xwiki.rest.resources.classes.ClassPropertiesResource: Class org.xwiki.rest.resources.classes.ClassPropertiesResource removed
    org.xwiki.rest.resources.classes.ClassPropertyResource: Class org.xwiki.rest.resources.classes.ClassPropertyResource removed
    org.xwiki.rest.resources.classes.ClassResource: Class org.xwiki.rest.resources.classes.ClassResource removed
    org.xwiki.rest.resources.classes.ClassesResource: Class org.xwiki.rest.resources.classes.ClassesResource removed
    org.xwiki.rest.resources.comments.CommentResource: Class org.xwiki.rest.resources.comments.CommentResource removed
    org.xwiki.rest.resources.comments.CommentVersionResource: Class org.xwiki.rest.resources.comments.CommentVersionResource removed
    org.xwiki.rest.resources.comments.CommentsResource: Class org.xwiki.rest.resources.comments.CommentsResource removed
    org.xwiki.rest.resources.comments.CommentsVersionResource: Class org.xwiki.rest.resources.comments.CommentsVersionResource removed
    org.xwiki.rest.resources.objects.AllObjectsForClassNameResource: Class org.xwiki.rest.resources.objects.AllObjectsForClassNameResource removed
    org.xwiki.rest.resources.objects.BaseObjectsResource: Class org.xwiki.rest.resources.objects.BaseObjectsResource removed
    org.xwiki.rest.resources.objects.ObjectAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectAtPageVersionResource removed
    org.xwiki.rest.resources.objects.ObjectPropertiesAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectPropertiesAtPageVersionResource removed
    org.xwiki.rest.resources.objects.ObjectPropertiesResource: Class org.xwiki.rest.resources.objects.ObjectPropertiesResource removed
    org.xwiki.rest.resources.objects.ObjectPropertyAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectPropertyAtPageVersionResource removed
    org.xwiki.rest.resources.objects.ObjectPropertyResource: Class org.xwiki.rest.resources.objects.ObjectPropertyResource removed
    org.xwiki.rest.resources.objects.ObjectResource: Class org.xwiki.rest.resources.objects.ObjectResource removed
    org.xwiki.rest.resources.objects.ObjectsAtPageVersionResource: Class org.xwiki.rest.resources.objects.ObjectsAtPageVersionResource removed
    org.xwiki.rest.resources.objects.ObjectsForClassNameResource: Class org.xwiki.rest.resources.objects.ObjectsForClassNameResource removed
    org.xwiki.rest.resources.objects.ObjectsResource: Class org.xwiki.rest.resources.objects.ObjectsResource removed
    org.xwiki.rest.resources.pages.ModifiablePageResource: Class org.xwiki.rest.resources.pages.ModifiablePageResource removed
    org.xwiki.rest.resources.pages.PageChildrenResource: Class org.xwiki.rest.resources.pages.PageChildrenResource removed
    org.xwiki.rest.resources.pages.PageHistoryResource: Class org.xwiki.rest.resources.pages.PageHistoryResource removed
    org.xwiki.rest.resources.pages.PageResource: Class org.xwiki.rest.resources.pages.PageResource removed
    org.xwiki.rest.resources.pages.PageTagsResource: Class org.xwiki.rest.resources.pages.PageTagsResource removed
    org.xwiki.rest.resources.pages.PageTranslationHistoryResource: Class org.xwiki.rest.resources.pages.PageTranslationHistoryResource removed
    org.xwiki.rest.resources.pages.PageTranslationResource: Class org.xwiki.rest.resources.pages.PageTranslationResource removed
    org.xwiki.rest.resources.pages.PageTranslationVersionResource: Class org.xwiki.rest.resources.pages.PageTranslationVersionResource removed
    org.xwiki.rest.resources.pages.PageTranslationsResource: Class org.xwiki.rest.resources.pages.PageTranslationsResource removed
    org.xwiki.rest.resources.pages.PageVersionResource: Class org.xwiki.rest.resources.pages.PageVersionResource removed
    org.xwiki.rest.resources.pages.PagesResource: Class org.xwiki.rest.resources.pages.PagesResource removed
    org.xwiki.rest.resources.spaces.SpaceAttachmentsResource: Class org.xwiki.rest.resources.spaces.SpaceAttachmentsResource removed
    org.xwiki.rest.resources.spaces.SpaceResource: Class org.xwiki.rest.resources.spaces.SpaceResource removed
    org.xwiki.rest.resources.spaces.SpaceSearchResource: Class org.xwiki.rest.resources.spaces.SpaceSearchResource removed
    org.xwiki.rest.resources.spaces.SpacesResource: Class org.xwiki.rest.resources.spaces.SpacesResource removed
    org.xwiki.rest.resources.tags.PagesForTagsResource: Class org.xwiki.rest.resources.tags.PagesForTagsResource removed
    org.xwiki.rest.resources.tags.TagsResource: Class org.xwiki.rest.resources.tags.TagsResource removed
    org.xwiki.rest.resources.wikis.WikiAttachmentsResource: Class org.xwiki.rest.resources.wikis.WikiAttachmentsResource removed
    org.xwiki.rest.resources.wikis.WikiPagesResource: Class org.xwiki.rest.resources.wikis.WikiPagesResource removed
    org.xwiki.rest.resources.wikis.WikiSearchResource: Class org.xwiki.rest.resources.wikis.WikiSearchResource removed
    org.xwiki.rest.resources.wikis.WikisResource: Class org.xwiki.rest.resources.wikis.WikisResource removed
  • The version field has been moved from Page to PageSummary which is the superclass of Page
    org.xwiki.rest.model.jaxb.Page: Removed field version
  • Added methods for creating workspaces and retrieving workspace templates.
    org.xwiki.workspace.WorkspaceManager: Method 'public com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer createWorkspace(java.lang.String, com.xpn.xwiki.plugin.wikimanager.doc.XWikiServer, java.lang.String)' has been added to an interface
    org.xwiki.workspace.WorkspaceManager: Method 'public java.util.List getWorkspaceTemplates()' has been added to an interface
  • The plugin has been moved to its own module. Not a breakage.
    com.xpn.xwiki.plugin.feed.FeedPlugin: Class com.xpn.xwiki.plugin.feed.FeedPlugin removed
    com.xpn.xwiki.plugin.feed.FeedPlugin$EntriesComparator: Class com.xpn.xwiki.plugin.feed.FeedPlugin$EntriesComparator removed
    com.xpn.xwiki.plugin.feed.FeedPlugin$SyndEntryComparator: Class com.xpn.xwiki.plugin.feed.FeedPlugin$SyndEntryComparator removed
    com.xpn.xwiki.plugin.feed.FeedPluginApi: Class com.xpn.xwiki.plugin.feed.FeedPluginApi removed
    com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource: Class com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource removed
    com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource$PropertySelector: Class com.xpn.xwiki.plugin.feed.SyndEntryDocumentSource$PropertySelector removed
    com.xpn.xwiki.plugin.feed.SyndEntrySource: Class com.xpn.xwiki.plugin.feed.SyndEntrySource removed
    com.xpn.xwiki.plugin.feed.SyndEntrySourceApi: Class com.xpn.xwiki.plugin.feed.SyndEntrySourceApi removed
    com.xpn.xwiki.plugin.feed.UpdateThread: Class com.xpn.xwiki.plugin.feed.UpdateThread removed
    com.xpn.xwiki.plugin.feed.XWikiFeedFetcher: Class com.xpn.xwiki.plugin.feed.XWikiFeedFetcher removed
    com.xpn.xwiki.plugin.feed.XWikiFeedFetcher$CredentialSupplier: Class com.xpn.xwiki.plugin.feed.XWikiFeedFetcher$CredentialSupplier removed
  • IRCBot is still a young API. Added a new initialize() method to support installing the IRC Bot application in a subwiki
    org.xwiki.ircbot.IRCBot: Method 'public void initialize(java.lang.String)' has been added to an interface
  • WikiComponent is still a young API. Moved the class to the internal package
    org.xwiki.component.wiki.MethodOutputHandler: Class org.xwiki.component.wiki.MethodOutputHandler removed
    org.xwiki.component.wiki.WikiComponentInvocationHandler: Class org.xwiki.component.wiki.WikiComponentInvocationHandler removed
  • WikiComponent is still a young API. Replaced the getRole() method with getRoleType() to implement XWIKI-8233, "Allow wiki components to implement parameterized types"
    org.xwiki.component.wiki.WikiComponent: Method 'public java.lang.Class getRole()' has been removed
    org.xwiki.component.wiki.WikiComponent: Method 'public java.lang.reflect.Type getRoleType()' has been added to an interface
  • WikiComponent is still a young API. Removed some unnecessary methods
    org.xwiki.component.wiki.WikiComponent: Method 'public java.util.Map getHandledMethods()' has been removed
    org.xwiki.component.wiki.WikiComponent: Method 'public java.util.List getImplementedInterfaces()' has been removed
  • WikiComponent is still a young API. Added this method to implement XWIKI-8234, "Allow wiki components to be registered at different levels (user / wiki / global)"
    org.xwiki.component.wiki.WikiComponent: Method 'public org.xwiki.model.reference.DocumentReference getAuthorReference()' has been added to an interface
    org.xwiki.component.wiki.WikiComponent: Method 'public org.xwiki.component.wiki.WikiComponentScope getScope()' has been added to an interface
  • UIExtension is still a young API. Replaced the List of Block by a Block since Block can now hold a list of Block
    org.xwiki.uiextension.UIExtension: Return type of method 'public java.util.List execute()' has been changed to org.xwiki.rendering.block.Block
  • UIExtension is still a young API. getName() has been renamed to getId()
    org.xwiki.uiextension.UIExtension: Method 'public java.lang.String getId()' has been added to an interface
    org.xwiki.uiextension.UIExtension: Method 'public java.lang.String getName()' has been removed
  • Added a common method to all elements to set all the data from another element. Technically this does not really break anything because all elements are supposed to extends BaseElement
    com.xpn.xwiki.objects.ElementInterface: Method 'public boolean apply(com.xpn.xwiki.objects.ElementInterface, boolean)' has been added to an interface
  • Elemenents must be added to the wrapping NotifyOnList to ensure that the property is marked 'dirty' when updated. To avoid that this mechanism is circumvented, the field is made final.
    com.xpn.xwiki.objects.ListProperty: Field list is now final
  • Removed language field because the information is now stored as Locale instead of String and it should have never been protected anyway.
    com.xpn.xwiki.doc.XWikiDocument: Removed field language
  • URLPatternMatcher instances cannot generally be reused (because the underlaying Perl5Matcher cannot be reused) on different strings and with different patterns and a new instance must be produced on demand.  It is, thus, meaningless to set an instance. If there is any code relying on this method, it is broken already. Thus, we should remove this without going through deprecation. We might as well remove the getter.
    com.xpn.xwiki.XWiki: Method 'public void setUrlPatternMatcher(org.securityfilter.filter.URLPatternMatcher)' has been removed
    com.xpn.xwiki.XWiki: Method 'public org.securityfilter.filter.URLPatternMatcher getUrlPatternMatcher()' has been removed
  • Removed unused field
    com.xpn.xwiki.tool.backup.ImportMojo: Field MPNAME_DESCRIPTION has been removed, but it was previously a constant

Get Connected