This is the release notes for XWiki Commons, XWiki Rendering, XWiki Platform and XWiki Enterprise. They share the same release notes as they are released together and have the same version.
The focus of this release was on fixing issues introduced in 7.2 Milestone 1 with the new Nested Document/Nested Spaces features and to continue adding support for this feature in various existing features (using a tree for the Import UI instead of a list, new DB table to have performant Space queries, start of Nested Spaces support in the XWiki JS APIs, etc). Another major feature added was the new Script permission to allow forbidding Script execution to specific Users or Groups.
New and Noteworthy (since XWiki 7.2 Milestone 1)
Full list of issues fixed and Dashboard for 7.2.
Script Right
The Script Right is now set to DENY by default, meaning that if you do not have it explicitly, you will not be able to execute the scripts that you write with your user account.
However, for backward-compatibility reasons, the standard XWiki Enterprise distribution comes with the Script Right being allowed for all users at the main wiki level, so that, unless you (as an Admin) explicitly revoke the right for some users or explicitly deny it, they will be able to execute the scripts they wrote, just like before.
Hiding of the Parent-Child Relationship
Following our decision to drop the Parent-Child relationship, it's now been turned off by default in favor of Nested Documents.
Note that it's possible to go back to the previous behavior, in which the Breadcrumb was following the Parent/Child relationship, by setting the core.hierarchyMode property to parentchild in the xwiki.properties configuration file.
New Breadcrumb
The Breadcrumb has been reworked to reflect the location of a Document in the reference hierarchy. For example for a Document "CEO" inside a Document "Boarding" inside a Document "Management" inside a Document "Staff" you would have the following Breadcrumb:
New Index Tree
The Index Tree is now using the reworked Document Tree Macro and is thus now honoring the Nested Document hierarchy. For example:
Updated Edit Mode
In Edit mode, the ability to change the Parent has been removed by default since we're now honoring the Nested Document hierarchy. For example:
Miscellaneous
- Import UI move to new standard tree
- The size of the Job status cache is now configurable. See job.statusCacheSize property in xwiki.properties files.
- The Spaces macro (which lists all Spaces) is now working fine when there are Nested Spaces (some links were failing).
- The LiveTable macro is now working fine when there are Nested Spaces (some links were failing).
- The Solr Search is now able to correctly find nested documents. The Search UI still needs to be fixed though (some links may be broken and the document location/paths are not correctly displayed) but otherwise the results should be accurate.
See the full list of JIRA issues fixed in this release.
For Developers
New Space/XWikiSpace table
A new table dedicated to Spaces has been introduced, in order to have performant and scalable Space-related queries (like supporting getting paginated Space which is useful for the Document Tree macro for example).
Queries improvement
Allow executing complete SELECT queries
In HQL and XWQL it's now possible to execute full SELECT queries without Programming Right as long as you follow some rules currently defined in com.xpn.xwiki.internal.store.hibernate.query.HqlQueryUtils, which contains a list of the database field allowed in the SELECT clause. Namely:
- For the Document/XWikiDocument table: fullName, name, space, language, defaultLanguage, translation, hidden
- For the Space/XWikiSpace table: reference, name, parent, hidden
This is also true for the Named Queries located in the queries.hbm.xml file.
New Secure Query
The right to execute or not some Query is now controlled by each org.xwiki.query.QueryExecutor.
Anyone can ask the executor to check or ignore Right through the new org.xwiki.query.SecureQuery extending org.xwiki.query.Query:
- checkCurrentAuthor(): indicate if the current author right should be checked
- checkCurrentUser(): indicate if the result should be filtered based on current user Right (only implemented by SOLR right now)
JS API Improvements
- It's now possible to create a Nested Spaces Reference using XWiki's Javascript API. For example:
// Construct a Nested Space reference
var reference = new XWiki.SpaceReference('wiki', ['space1', 'space2']);
expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2');
reference = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2.page');
// Construct a non-Nested Space reference
reference = new XWiki.SpaceReference('wiki', 'space');
expect(XWiki.Model.serialize(reference)).toEqual('wiki:space');
// Try passing non-valid space parameters
expect(function() {new XWiki.SpaceReference('wiki', [])}).toThrow('Missing mandatory space name or invalid type for: []');
expect(function() {new XWiki.SpaceReference('wiki', 12)}).toThrow('Missing mandatory space name or invalid type for: [12]');
- A new XWiki.EntityReference.equals() method has been added. For example:
var reference1 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
var reference2 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
var reference3 = new XWiki.DocumentReference('wiki2', ['space1', 'space2'], 'page');
expect(reference1.equals(reference2)).toBe(true);
expect(reference1.equals(reference3)).toBe(false);
- A new XWiki.EntityReference.fromJSONObject(obejct) has been added to create a Javascript XWiki.EntityReference from a Java EntityReference directly serialized as JSON:
var reference = XWiki.EntityReference.fromJSONObject(jsonText.evalJSON());
- A new XWiki.EntityReferenceTree JS class has been added, which partially mimics the Java EntityReferenceTree Class. It's still missing features though as it was introduced mostly to make it easier to manipulate a serialized Java EntityReferenceTree.
Updated Document Tree Macro
The Document Tree Macro now supports Nested Documents and Nested Spaces modes. Specifically, the following changes have been made:
- removed the showSpaceAsDocument parameter (was introduced recently in 7.2M1)
- deprecated the showChildDocuments parameter
- added the hierarchyMode parameter with two supported values: reference (default) and parentchild
As a result, you can use the document tree macro like this:
- Nested Document Tree
- Nested Space + Page Tree
{{documentTree showSpaces="true" /}}
- Parent-Child Document Tree
{{documentTree hierarchyMode="parentchild" /}}
- Old Document Index Tree (i.e. Parent-Child mixed with space grouping)
{{documentTree hierarchyMode="parentchild" showSpaces="true" /}}
Reference Scripting API for Nested Spaces
The Script API for Entity References has been updated with new APIs to support creating Nested Spaces references. For example:
{{velocity}}
$services.model.createDocumentReference("wiki", ["space1", "space2"], "page")
$services.model.createDocumentReference("wiki", ["space1", "space2"], "page", "default")
$services.model.createSpaceReference(["space1", "space2"], $services.model.createWikiReference("wiki"))
{{/velocity}}
Miscellaneous
- Custom displayers are now executed with the Rights of the user who wrote them (i.e. author of the class document or content author of the displayer document), and not the Rights of the user who wrote the script that uses them (i.e. current context document's content author). See XWIKI-12306 for more details.
- In the Active Install Extension, a new Velocity Macro has been introduced to compute the number of Active Installs having a specific Extension. Example usage:
{{include reference="ActiveInstalls.ExtensionCount"/}}
{{velocity}}
#set ($extensionIds = [
'org.xwiki.contrib:xwiki-totem-application',
'jsimard:event-reporter-application',
'mouhb:likeapplication'
])
|=Extension Id|=Count
#foreach($extensionId in $extensionIds)
#countActiveInstallsUsingExtension($extensionId $count)
|$extensionId|$count
#end
{{/velocity}}
- Better support of non-DOCUMENT EntityReferences in DocumentReferenceConverter. It now behaves like XWiki#getDocument(EntityReference)
- The Copy/Rename/Delete UI actions are now using the Refactoring Module's Script Services.
Deprecated and Retired projects
- The OSCache-based Cache Extension has been moved to xwiki-contrib since we've been using the Infinispan implementation for a while now and the XWiki Core developers don't intend to continue supporting the OSCache-based one (it can be maintained by the Community, by whoever's interested in supporting it).
Upgrades
The following dependencies have been upgraded:
Translations
The following translations have been updated:
Tested Browsers & Databases
Failed to execute the [velocity] macro. Cause: [The execution of the [velocity] script macro is not allowed in [xwiki:TestReports.ManualTestReportSummaryXWiki72M2]. Check the rights of its last author or the parameters if it's rendered from another script.]. Click on this message for details.
org.xwiki.rendering.macro.MacroExecutionException: The execution of the [velocity] script macro is not allowed in [xwiki:TestReports.ManualTestReportSummaryXWiki72M2]. Check the rights of its last author or the parameters if it's rendered from another script.
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:178)
at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:311)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.rendering.internal.macro.include.IncludeMacro.lambda$execute$0(IncludeMacro.java:204)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.internal.macro.include.IncludeMacro.execute(IncludeMacro.java:203)
at org.xwiki.rendering.internal.macro.include.IncludeMacro.execute(IncludeMacro.java:59)
at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:311)
at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183)
at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:395)
at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:268)
at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157)
at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67)
at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96)
at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123)
at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68)
at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42)
at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1367)
at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1504)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1453)
at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1422)
at com.xpn.xwiki.api.Document.displayDocument(Document.java:787)
at jdk.internal.reflect.GeneratedMethodAccessor528.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.xwiki.velocity.internal.directive.TryCatchDirective.render(TryCatchDirective.java:86)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor310.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73)
at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54)
at jdk.internal.reflect.GeneratedMethodAccessor310.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368)
at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439)
at org.apache.velocity.Template.merge(Template.java:358)
at org.apache.velocity.Template.merge(Template.java:262)
at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225)
at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135)
at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284)
at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284)
at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267)
at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866)
at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846)
at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91)
at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85)
at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2565)
at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651)
at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:840)
Here is the list of browsers we support and how they have been tested for this release:
Here is the list of databases we support and how they have been tested for this release:
<a summary of the comparison with latest super stable version>
More details on <link to the test report>.
Known issues
Backward Compatibility and Migration Notes
General Notes
When upgrading make sure you compare your xwiki.cfg, xwiki.properties and web.xml files with the newest version since some configuration parameters may have been modified or 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.
Issues specific to XWiki 7.2 Milestone 2
<issues specific to the project>
API Breakages
The following APIs were modified since XWiki 7.1.1:
- New configuration option to change the size of the Job statuses cache:
org.xwiki.job.JobManagerConfiguration: Method 'public int getJobStatusCacheSize()' has been added to an interface
- Added missing methods to the DocumentModelBridge class, which are already implemented by XWikiDocument;
org.xwiki.bridge.DocumentModelBridge: Method 'public org.xwiki.model.reference.DocumentReference getContentAuthorReference()' has been added to an interface
- ExportURLFactoryContext, getExportURLFactoryContext() and #ExportURLFactoryActionHandler# were Young APIs. ExportURLFactoryContext been renamed to FilesystemExportContext and moved to the Filesystem URL Scheme module:
com.xpn.xwiki.web.ExportURLFactory: Method 'public com.xpn.xwiki.web.ExportURLFactoryContext getExportURLFactoryContext()' has been removed
com.xpn.xwiki.web.ExportURLFactoryActionHandler: Parameter 7 of 'public java.net.URL createURL(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, com.xpn.xwiki.XWikiContext, com.xpn.xwiki.web.ExportURLFactoryContext)' has changed its type to org.xwiki.url.filesystem.FilesystemExportContext
com.xpn.xwiki.web.ExportURLFactoryContext: Class com.xpn.xwiki.web.ExportURLFactoryContext removed