Last modified by Thomas Mortagne on 2017/03/24

Hide last authors
Thomas Mortagne 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
5 This is the release notes for [[XWiki Commons>>http://commons.xwiki.org]], [[XWiki Rendering>>http://rendering.xwiki.org]], [[XWiki Platform>>http://platform.xwiki.org]] and [[XWiki Enterprise>>http://enterprise.xwiki.org]]. They share the same release notes as they are released together and have the same version.
6
Thomas Mortagne 40.1 7 6.4 branch is mainly dedicated to improvement and bugfixes on things introduced during 6.x and in general. This version also introduce some developer oriented improvements: allow wiki based skins to overwrite macro.vm template, allow filesystem skins indicating explicitly the skin they are inheriting from, allow any component to be injected with its ComponentDescriptor, Panels and UI extensions are now executed with the right of their author so among other things they can use APIs requiring Programming rights.
Thomas Mortagne 1.1 8
9 = New and Noteworthy (since XWiki 6.3) =
10
Thomas Mortagne 44.1 11 [[Full list of issues fixed and Dashboard for 6.4>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12791]].
Thomas Mortagne 1.1 12
Marius Dumitru Florea 34.1 13 == New Parameters for Document Tree Macro ==
14
15 We added 3 new parameters to the [[Document Tree Macro>>extensions:Extension.Document Tree Macro]]:
Thomas Mortagne 35.1 16
Marius Dumitru Florea 34.1 17 * **filterByClass**: show only the documents that have an object of the specified type. The value of this parameter is the full name of an XWiki document that holds a class definition. For example, 'Blog.CategoryClass' can be used to show only the documents that represent blog categories.
18 * **openTo**: the id of the node to open the tree to. All the ancestors of the specified node, up to the root of the tree, will be opened also.
19 * **showOnlyViewable**: show only the wiki, space and document nodes for which the current user has view right. If this is set to false then the wiki, space and document nodes that are not viewable by the current user are listed in the tree using their names. The user won't be able to see their content by following their links though (the user will just be aware of their existence).
20
Thomas Mortagne 14.1 21 == Miscellaneous ==
22
Vincent Massol 19.1 23 * It's [[now possible to send Registration emails in HTML>>extensions:Extension.Administration Application||anchor="HRegistration"]] (by default they're sent in plain text). This is achieved by fully supporting any MIME content in the "Validation Email Content" and "Confirmation Email Content" sections of the Registration Administration UI. For example for the "Validation Email Content" field, you could use the following template to send HTML emails:(((
24 {{code language="none"}}
25 #set ($wikiname = $request.serverName)
26 #set ($host = ${request.getRequestURL()})
27 #set ($host = ${host.substring(0, ${host.indexOf('/', ${mathtool.add(${host.indexOf('//')}, 2)})})})
28 Subject: Validate your account on ${wikiname}
29 Content-type: text/html; charset=iso-8859-1
Thomas Mortagne 14.1 30
Vincent Massol 19.1 31 <p>Hello <b>${xwiki.getUserName("XWiki.$xwikiname", false)}</b>,</p>
32 <p>This email address was used to register a new account on ${wikiname}. If you did not make the request, please ignore this message.</p>
33 <p>In order to activate your account, please follow this link:
34 ${host}${xwiki.getURL('XWiki.AccountValidation', 'view', "validkey=${validkey}&xwikiname=${xwikiname}")}</p>
35 {{/code}}
36 )))
37
Thomas Mortagne 44.1 38 See the [[full list of JIRA issues>>https://jira.xwiki.org/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?jqlQuery=project+in+%28XCOMMONS%2C+XRENDERING%2C+XWIKI%2C+XE%29+and+status+%3D+Closed+and+resolution+%3D+Fixed+and+fixVersion+%3D+%226.4-milestone-1%22&tempMax=1000]] fixed in this release.
Thomas Mortagne 14.1 39
40 = For Developers =
41
Thomas Mortagne 1.1 42 == Velocity changes ==
43
Thomas Mortagne 10.1 44 === Remove a Velocity Engine from the cache ===
45
46 ##org.xwiki.velocity.VelocityFactory## now provide an API to remove a cached Velocity Engine.
47
Vincent Massol 13.1 48 === Overriding Velocimacros in wiki-based skins ===
Thomas Mortagne 11.1 49
Vincent Massol 13.1 50 It's now possible to override the ##macros.vm## template in a wiki based skin (object property and attachment). Any modification to this template is also taken into account (the Velocity engine is recreated when the template is modified).
Thomas Mortagne 11.1 51
Thomas Mortagne 10.1 52 === Cleanup unprotected namespaces ===
53
Thomas Mortagne 1.1 54 VelocityEngine automatically get rid of the passed namespace at the end of execution unless it's protected.
55
56 In practice in means that the following:
57
Thomas Mortagne 2.1 58 {{code language="java"}}
Thomas Mortagne 1.1 59 engine.evaluate(new VelocityContext(), new StringWriter(), "namespace", "#macro(mymacro)toto#end")
60
61 Writer out = new StringWriter();
62 engine.evaluate(new VelocityContext(), out, "namespace", "#mymacro()")
63
64 System.out.println(out.toString())
65 {{/code}}
66
67 will now print
68
69 {{code language="none"}}
70 #mymacro()
71 {{/code}}
72
73 To get
74
75 {{code language="none"}}
76 toto
77 {{/code}}
78
79 you need the following
80
Thomas Mortagne 2.1 81 {{code language="java"}}
Thomas Mortagne 1.1 82 engine.startedUsingMacroNamespace("namespace")
83
84 try {
85 engine.evaluate(new VelocityContext(), new StringWriter(), "namespace", "#macro(mymacro)toto#end")
86
87 Writer out = new StringWriter();
88 engine.evaluate(new VelocityContext(), out, "namespace", "#mymacro()")
89
90 System.out.println(out.toString())
91 } finally {
92 engine.stoppedUsingMacroNamespace("namespace")
93 }
94 {{/code}}
95
Thomas Mortagne 18.1 96 == Skins system improvements ==
97
Vincent Massol 18.2 98 Support for a new ##skin.properties## configuration file has been introduced in filesystem skins.
Thomas Mortagne 18.1 99
Vincent Massol 18.2 100 Right now it supports a ##parent## property to indicate another skin to inherit from. If set to an empty value ({{code language="properties"}}parent={{/code}}) the skin will directly inherit from the WAR; if not set at all it will behave as before which means inherit from whatever is configured in ##xwiki.cfg##'s ##xwiki.defaultbaseskin## property.
Thomas Mortagne 18.1 101
Vincent Massol 20.1 102 == Component Metadata Access ==
103
104 If your Component implementation needs to get access to its component metadata (i.e. its ##ComponentDescriptor##) then it can [[get it injected automatically>>extensions:Extension.Component Module||anchor="HComponentMetadata"]]. For example:
105
106 {{code language="java"}}
107 import org.xwiki.component.descriptor.ComponentDescriptor;
108 ...
109 @Component
110 @Singleton
111 public class MyComponentImpl implements MyComponent
112 {
113 @Inject
114 private ComponentDescriptor<MyComponent> descriptor;
115
116 public void doSomething()
117 {
118 String hint = this.descriptor.getRoleHint();
119 ...
120 }
121 }
122 {{/code}}
123
Thomas Mortagne 21.1 124 == Panels executed with the rights of their author ==
125
126 It's now possible to write script requiring programming right in panels as long as you have programming right, same as wiki macros.
127
Thomas Mortagne 22.1 128 == UI extensions executed with the rights of their author ==
Thomas Mortagne 21.1 129
130 What you can execute in UI extension used to depend on current document author right, it's now based on the own ui extension author.
131
Guillaume Delhumeau 15.1 132 == Miscellaneous ==
133
Vincent Massol 18.2 134 * Added new APIs to get all the icon themes present on the wiki, and all icons that these icon themes contain.(((
Guillaume Delhumeau 15.1 135 {{code language="velocity"}}
136 $services.icon.getIconSetNames()
137 $services.icon.getIconNames()
138 $services.icon.getIconNames("Font Awesome")
139 {{/code}}
Vincent Massol 18.2 140 )))
141 * A new parameter has been added to the ##get## action and the ##plain## xpage: ##htmlHeaderAndFooter##, which add the HTML headers (##<html>##,##<head>##,##<body>##, etc...) and footers (##</body>##, ##</html>##, etc...). It could be useful to create light popups that display only the document content without any UI.
142 * XWikiAttachment now provide ##setAuthorReference## and ##getAuthorReference## APIs
Thomas Mortagne 24.1 143 * ##org.xwiki.logging.event.LogEvent## now have a getTimestamp() method returning the number of milliseconds elapsed from 1/1/1970 until logging event was created.
Vincent Massol 25.2 144 * A SOLR-based implementation of the standard REST search resource has been added
Marius Dumitru Florea 30.1 145 * The [[Solr Query>>extensions:Extension.Solr Search Query API]] parameter ##xwiki.supportedLocales## has a new default value: the list of supported locales configured for the current wiki (where you execute the search).
Vincent Massol 27.2 146 * The ##{{{@Component}}}## annotation is no longer inheritable. Thus each component implementation class must now define it and not rely on it being present in some Abstract class.
Vincent Massol 29.1 147 * The XWiki build now verifies that all components are correctly listed in ##META-INF/components.txt## files and that the threading model is explicitly defined (i.e. that either ##{{{@Singleton}}}## or ##{{{@InstantiationStrategy(ComponentInstantiationStrategy.PER_LOOKUP)}}}## is used). If not, the build fails. A new ##{{{@Component}}}## annotation parameter has been added for explicitly mentioning that a Component should not be statically registered (these components are usually used in tests). It's used as follows:(((
Thomas Mortagne 31.1 148 {{code language="java"}}
Vincent Massol 28.1 149 @Component(staticRegistration = false)
150 {{/code}}
151 )))
Guillaume Delhumeau 15.1 152
Thomas Mortagne 1.1 153 == Upgrades ==
154
155 The following dependencies have been upgraded:
156
Thomas Mortagne 44.1 157 * [[httpclient 4.3.6>>https://jira.xwiki.org/browse/XCOMMONS-681]]
158 * [[commons-codec 1.10>>https://jira.xwiki.org/browse/XCOMMONS-684]]
159 * [[Lucene and SOLR 4.10.2>>https://jira.xwiki.org/browse/XWIKI-10562]]
160 * [[Groovy 2.3.8>>https://jira.xwiki.org/browse/XCOMMONS-704]]
Thomas Mortagne 1.1 161
162 = Translations =
163
164 The following translations have been updated:
165
Thomas Mortagne 33.1 166 {{language codes="da, de, es, fr, ko, lv, pt_BR, ro, ru, sv, tr"/}}
Thomas Mortagne 1.1 167
168 = Tested Browsers & Databases =
169
Manuel Smeria 42.1 170 {{include reference="TestReports.ManualTestReportSummaryXWiki64M1"/}}
Thomas Mortagne 1.1 171
172 = Known issues =
173
Thomas Mortagne 44.1 174 * [[Bugs we know about>>https://jira.xwiki.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=category+%3D+%22Top+Level+Projects%22+AND+issuetype+%3D+Bug+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC]]
Thomas Mortagne 1.1 175
176 = Backward Compatibility and Migration Notes =
177
178 == General Notes ==
179
180 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.
181
Thomas Mortagne 3.1 182 == Issues specific to XWiki 6.4-milestone-1 ==
Thomas Mortagne 1.1 183
Thomas Mortagne 6.1 184 * VelocityEngine automatically get rid of the passed namespace at the end of execution unless it's protected. See [[Velocity section>>||anchor="HVelocitychanges"]].
Thomas Mortagne 44.1 185 * If upgrading the content in the DistributionWizard, and the upgrade is from XWiki 6.2.x or 6.3, you might get a conflict for the document Blog.BlogSheet. Unless you have done modifications to that document, please keep the new version; otherwise please keep the merged, or if not available, keep your version. For details see issue [[XWIKI-11450>>https://jira.xwiki.org/browse/XWIKI-11450]].
Thomas Mortagne 1.1 186
187 == API Breakages ==
188
Thomas Mortagne 37.1 189 WYSIWYG's MacroService API was not previously considering a multiwiki environment. Added a few new methods:
Thomas Mortagne 1.1 190
191 {{code language="none"}}
Thomas Mortagne 35.1 192 org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroService: Method 'public org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroDescriptor getMacroDescriptor(java.lang.String, java.lang.String, java.lang.String)' has been added to an interface
193 org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroService: Method 'public java.util.List getMacroDescriptors(java.lang.String, java.lang.String)' has been added to an interface
194 org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroServiceAsync: Method 'public void getMacroDescriptor(java.lang.String, java.lang.String, java.lang.String, com.google.gwt.user.client.rpc.AsyncCallback)' has been added to an interface
195 org.xwiki.gwt.wysiwyg.client.plugin.macro.MacroServiceAsync: Method 'public void getMacroDescriptors(java.lang.String, java.lang.String, com.google.gwt.user.client.rpc.AsyncCallback)' has been added to an interface
Thomas Mortagne 1.1 196 {{/code}}
Thomas Mortagne 41.1 197
198 New method require to clean the Velocity engines cache:
199
200 {{code language="none"}}
201 org.xwiki.velocity.VelocityFactory: Method 'public org.xwiki.velocity.VelocityEngine removeVelocityEngine(java.lang.String)' has been added to an interface
202 {{/code}}

Get Connected