Release Notes for XWiki 4.3 Milestone 1
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 milestone of the XWiki 4.3 version (Roadmap).
This release brings several improvements in Workspaces, Extension Manager, Distribution Wizard and the REST API. It is also possible to activate the multiwiki feature when using the HSQLDB database (i.e., in the standalone version of XWiki Enterprise).
It also provides several important fixes for bugs related to importing Office Documents while using filesystem attachments.
New and Noteworthy (since XWiki 4.2)
Workspace Templates
Similar to what admins were doing with the Wiki Manager Application, we noticed the need for the Workspace Application to allow users to choose what type of workspace they want to create.
Please see the current workaround for creating workspace templates (as admin) until an easy UI becomes available.
Extension Manager improvements
UI
When you click on "Show details" to get more information about an extension, the extension manager tries to resolve all the dependencies of that extension by making requests to the configured remote extension repositories. These requests slow down considerably the time needed to display the extension details. We fixed this by resolving only the local dependencies at first and then making consecutive AJAX requests to resolve the remote dependencies.
The install and uninstall plan is now progressively displayed while it is being created. This is especially useful for the Distribution Wizard since you don't have to wait anymore for the install plan to be created without getting any feedback about its progress.
As you can see in the previous image, we also limited the height of the progress tab and the extension job log is automatically scrolled to the end while the job is running.
Private repositories
Maven and XWiki repositories now support authentication. You can indicate a user and a password in xwiki.properties file the following way:
extension.repositories.privatemavenid.auth.user=someuser
extension.repositories.privatemavenid.auth.user=password
extension.repositories=extensions.xwiki.org:xwiki:http://extensions.xwiki.org/xwiki/rest/
extension.repositories.extensions.xwiki.org.auth.user=someuser
extension.repositories.extensions.xwiki.org.auth.user=password
Distribution Wizard improvements
The welcome step now lists only the available steps. For instance, when you install XWiki for the first time you don't have any extensions to upgrade so the "Extensions" step is not available.
When a step is done we visually mark it.
REST API improvements
Some improvements have been done to the REST API in order to allow more powerful searches of the data stored in the wiki.
- Results can be ordered using the /wikis/{wikiName}/search and /wikis/{wikiName}/spaces/{spaceName}/search resources with the following parameters:
- orderField: one of the XWiki document field, as specified in HQL Query Examples in Velocity
- order: asc or desc". By default asc is used.
- Advanced search queries can be specified using /wikis/{wikiName}/query resources with the following parameters:
- q: the query to be executed (it depends on the query type)
- type: hql, xwql or lucene. Depending on the query type, the q parameter will contain a query matching the type
- For hql it's like a searchDocuments query, as shown in specified in HQL Query Examples in Velocity.
- For xwql the user is allowed to use XWQL syntax for short queries (XWiki Query Language Specification)
- For lucene it's a standard Lucene query handled by the Lucene plugin (Lucene Plugin)
- Standard parameters like start, number can be specified to control the number of the results to be returned.
- Multi-wiki Lucene search using the /wikis/query resource with the following parameters:
- q: the Lucene query handled by the Lucene plugin (Lucene Plugin)
- wikis: a comma separated list of wikis where to perform the search.
Miscellaneous
- XWiki's multiwiki feature (a.k.a "virtual mode") now works with the HSQLDB database
- It's now possible to configure the LDAP timeout. See xwiki.authentication.ldap.timeout property in xwiki.cfg file.
- New available Rendering syntax: APT
- Technical pages of the IRCBot Application are now hidden and the application now registers itself in the Application panel:
Important Bug Fixes
- Fixed failure to import Office documents when using Filesystem Attachments.
- Fixed regression that caused "share by email" and "reset password" functions to fail to send any email.
See the full list of JIRA issues fixed in this release.
For Developers
Deprecated and Retired projects
- The userdirectorty and usertools plugins have been retired since they were unmaintained and mostly replaced by other features such as the Invitation module.
Upgrades
The following dependencies have been upgraded:
Miscellaneous
- New org.xwiki.rendering.block.CompositeBlock introduce to allow passing several Blocks as one Block
- New $services.model.getEntityReferenceValue method that returns the value configured for a specific entity type
- Many classes in the REST API Server module that were not meant to be part of the public API have been moved to internal packages. This was done to correct a mistake that was done when the REST API module was initially developed.
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):
- Firefox
- 10.6.1
Known issues
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.
Issues specific to XWiki 4.3 Milestone 1
- Since the userdirectorty and usertools have been retired you'll need to make sure that your xwiki.cfg configuration files doesn't reference them anymore in the plugins property.
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 ExtensionRepositoryIdorg.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 retiredcom.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.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 Pageorg.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