Last modified by Thomas Mortagne on 2023/10/13

Show last authors
1 = XWiki Enterprise 2.4 Release Notes =
2
3 {{box cssClass="floatinginfobox" title="**Contents**"}}
4 {{toc/}}
5 {{/box}}
6
7 = New and Noteworthy =
8
9 == Search ==
10
11 === Changed default search engine ===
12
13 Lucene Search is promoted as default search. While there might still be problems, which are normally resolved by rebuilding the index, Lucene allows more powerful searches, and better ordering of the results.
14
15 image:searchlucene.png
16
17 To read about the benefits of using Lucene search over Database search go to the [[search application page>>extensions:Extension.Search Application]].
18
19 Starting with the 2.4 release you can select the wikis where to search in using the LuceneSearch page.
20
21 [[image:wikiselection.png||style="border:1px solid black;"]]
22
23 === New search configuration UI ===
24
25 image:searchadministration.png
26
27 The Search Application now has a dedicated section in the wiki administration section from which you can:
28
29 * Choose the default engine (Lucene or Database).
30 * See the status for the Lucene Search: the number of indexed elements and the number of elements waiting in the queue.
31 * Control the Lucene index by indexing the whole farm, indexing the wiki or customizing the index to your specific preferences.
32
33 For more information check out the [[documentation page>>extensions:Extension.Search Application]].
34
35 == New Template-based page creation ==
36
37 Starting with XWiki Enterprise 2.4 users and applications can provide documents that can be used as template when creating new pages. The new document (content, objects and other metadata) will be replicated from the template.
38
39 * After you have [[created the template and the template provider>>extensions:Extension.Administration Application#HEasyTemplatesCreationandAdministration28StartingwithXWikiEnterprise2.4M229]] you can then start creating pages from this template:
40
41 image:1gcreatedocument.jpg
42
43 * "Wanted Links" also offers the choice to create the new document from the available templates ( "My Template" template in the image below):
44
45 image:1ipopup.jpg
46
47 Find more details about the template creation and administration on the [[documentation page>>extensions:Extension.Administration Application#HEasyTemplatesCreationandAdministration28StartingwithXWikiEnterprise2.4M229]].
48
49 == New Invitation Manager application ==
50
51 The Invitation Manager application allows users to send emails, inviting friends and colleagues to join a wiki. You will be able to configure your wiki to send emails through an open mail relay on the server or through an email account of your choosing.
52
53 image:InvitationSending.png
54
55 Read more about this application and learn how to configure it by visiting the [[application page>>extensions:Extension.Invitation Application]].
56
57 == WYSIWYG improvements ==
58
59 === Insert external image ===
60
61 You can now insert an external image in the edited page while in WYSIWYG mode. The external image is specified by its location on the web, i.e. its URL. To do this go to //Image > Insert Image...// menu and select the //External// tab:
62
63 image:XWIKI-5202.png
64
65 === Insert macros ===
66
67 You may insert macros with a single click from the tool bar:
68
69 [[image:insertMacroFromToolBar.png]]
70
71 === Paste with filtered styles ===
72
73 A //paste with filtered styles// button has also been added to the tool bar:
74
75 [[image:pasteIconOnToolBar.png]]
76
77 The Wysiwyg editor import from office feature now filters style by default.
78
79 == Objects and classes editor improvements ==
80
81 The object and class editor are now fully panel-less, which among other things means that you have the full object/class editors UI even in an empty wiki without having to import the needed XE xar.
82
83 [[image:objecteditor.png||style="border:1px solid black;" width="500"]]
84
85 Adding objects or class properties is done with AJAX calls, which means faster response times, no interruptions, no data loss.
86
87 The class editor also adds better refactoring capabilities:
88
89 * Reorder class properties
90 * Delete a class property
91 * Selectively disable and re-enable class properties, which allows making pseudo-read-only properties
92
93 [[image:classeditor.png||style="border:1px solid black;" width="500"]]
94
95 There are also many other small ergonomics improvements to discover.
96
97 == JMX Administration Console ==
98
99 * XWiki is now using [[JMX to provide runtime Monitoring information>>Documentation.AdminGuide.Monitoring]].
100 * The first usage implemented is about monitoring the JBoss cache and the Velocity Macro caches, as shown below:
101
102 image:[email protected]
103
104 == Watchlist improvements ==
105
106 * Allow to remove elements in the watchlist from the user profile
107 * In virtual mode, added a wikis section in //elements in your watchlist//
108
109 [[image:watchlist.png||style="border:1px solid black;"]]
110
111 == Rendering cache ==
112
113 You can now provide a list of pages for which to cache the result. See the ##core.renderingcache.*## properties in ##xwiki.properties## to control it.
114
115 It's also possible to force a page to refresh by using ##refresh=1## parameter in the URL.
116
117 == New Code macro configuration ==
118
119 It's now possible to indicate which Pygments style to use with the default highlighter based on Pygments.
120
121 See [[the code macro documentation>>extensions:Extension.Code Macro]] for more details.
122
123 == Security improvements ==
124
125 * Added support for HttpOnly flag for session cookies (XSS protection measure)
126 * Fixed some XSS issues
127 * Improved file access sandboxing
128
129 == Performance improvements ==
130
131 * Scripts are //defered// by default, which means that ##<script>## tags will no longer block the page loading until the scripts are downloaded and executed, but will be downloaded in parallel and executed after the full DOM was loaded, right before the document becomes //ready//.
132
133 {{warning}}This is an important change which might break the functionality of custom scripts. Since pulled scripts are executed after the full DOM was loaded, scripts that expect to be executed in place, for example scripts that use ##document.write##, or inline scripts which expect a JS library to be loaded, will fail, or might even make the document unusable. You can instruct the skin extension manager not to ##defer## problematic scripts, using, for example. ##$xwiki.ssx.use('Some.Extension', {'defer': false}##, but a better solution is to fix the code so that it works when being defered.{{/warning}}
134
135 == Chart macro improvements ==
136
137 * Chart macro now supports more than 26 columns.
138
139 == Script improvements ==
140
141 * Make the Query Manager use the Script Service to expose services to scripts. See [[Query Guide>>Documentation.DevGuide.QueryGuide]] for more details.
142 * Make possible to directly return the Block based result of a script macro. It's supported for all JSR 223 macro which means all script macro script Velocity macro for now. See [[Script Macro>>extensions:Extension.Script Macro]] for more details.
143 * Prevent nested script macros by default: It's now impossible for the output of a script macro to become another script macro for security reasons. See [[Script Macro>>extensions:Extension.Script Macro]] for more details.
144 * Provide a way to escape regexp literal string from velocity
145 {{code language="none"}}$regextool.quote("some[literal]text"){{/code}}
146
147 == Javascript improvements ==
148
149 * Start writing a Javascript mirror of the XWiki data model: ##Document.getURL##
150 * New ##suggestDocuments## behavior for input fields
151
152 == REST improvements ==
153
154 * Isolate REST API JAXB model classes in a separate module
155
156 == Dependencies upgrade ==
157
158 * Doxia 1.1.3
159 * JODConverter 3.0 beta3
160 * JBossCache 3.2.5.GA
161 * Groovy 1.7.3
162 * Script.aculo.us 1.8.3
163 * Jython 2.5.2b1
164 * Hibernate Validator 4.0.2
165 * JGroups 2.8
166 * JFreeChart 1.0.13
167
168 == Translations ==
169
170 * WYSIWYG newly supported language: Russian
171 * All the translations have been updated
172
173 = Known issues =
174
175 * [[Bugs we know about>>https://jira.xwiki.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=category+in+%28%22XWiki.org+Top+Level+Projects%22%2C+%22XWiki+Plugins%2C+Applications+%26+Skins%22%29+AND+issuetype+%3D+Bug+AND+resolution+%3D+Unresolved+ORDER+BY+updated+DESC]]
176
177 = Backward Compatibility and Migration Notes =
178
179 == Important non-compatible changes ==
180
181 {{warning}}
182 ERROR: org.xwiki.bridge.DocumentAccessBridge: Method 'public void setCurrentUser(java.lang.String)' has been added to an interface
183 ERROR: org.xwiki.officeimporter.openoffice.OpenOfficeManager: Return type of method 'public net.sf.jodconverter.OfficeDocumentConverter getDocumentConverter()' has been changed to org.artofsolving.jodconverter.OfficeDocumentConverter
184 ERROR: org.xwiki.query.xwql.AliasGenerator: Class org.xwiki.query.xwql.AliasGenerator removed
185 ERROR: org.xwiki.query.xwql.InvalidQueryException: Class org.xwiki.query.xwql.InvalidQueryException removed
186 ERROR: org.xwiki.query.xwql.QueryAnalizer: Class org.xwiki.query.xwql.QueryAnalizer removed
187 ERROR: org.xwiki.query.xwql.QueryContext: Class org.xwiki.query.xwql.QueryContext removed
188 ERROR: org.xwiki.query.xwql.QueryContext$DocumentInfo: Class org.xwiki.query.xwql.QueryContext$DocumentInfo removed
189 ERROR: org.xwiki.query.xwql.QueryContext$ObjectInfo: Class org.xwiki.query.xwql.QueryContext$ObjectInfo removed
190 ERROR: org.xwiki.query.xwql.QueryContext$PropertyInfo: Class org.xwiki.query.xwql.QueryContext$PropertyInfo removed
191 ERROR: org.xwiki.query.xwql.QueryTranslator: Class org.xwiki.query.xwql.QueryTranslator removed
192 ERROR: org.xwiki.query.xwql.XWQLQueryExecutor: Class org.xwiki.query.xwql.XWQLQueryExecutor removed
193 ERROR: org.xwiki.query.xwql.hql.ObjectPrinter: Class org.xwiki.query.xwql.hql.ObjectPrinter removed
194 ERROR: org.xwiki.query.xwql.hql.Printer: Class org.xwiki.query.xwql.hql.Printer removed
195 ERROR: org.xwiki.query.xwql.hql.PropertyPrinter: Class org.xwiki.query.xwql.hql.PropertyPrinter removed
196 ERROR: org.xwiki.query.xwql.hql.TreePrinter: Class org.xwiki.query.xwql.hql.TreePrinter removed
197 ERROR: org.xwiki.query.xwql.hql.XWQLtoHQLTranslator: Class org.xwiki.query.xwql.hql.XWQLtoHQLTranslator removed
198 ERROR: org.xwiki.query.jpql.JPQLParser: Class org.xwiki.query.jpql.JPQLParser removed
199 ERROR: org.xwiki.velocity.VelocityEngine: Method 'public void clearMacroNamespace(java.lang.String)' has been added to an interface
200 ERROR: org.xwiki.velocity.VelocityEngine: Method 'public void startedUsingMacroNamespace(java.lang.String)' has been added to an interface
201 ERROR: org.xwiki.velocity.VelocityEngine: Method 'public void stoppedUsingMacroNamespace(java.lang.String)' has been added to an interface
202 ERROR: org.xwiki.model.ModelContext: Method 'public void setCurrentEntityReference(org.xwiki.model.reference.EntityReference)' has been added to an interface
203 ERROR: org.xwiki.rendering.scaffolding.RenderingTestCase: In method 'public RenderingTestCase(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)' the number of arguments has changed
204 ERROR: org.xwiki.rendering.listener.DefaultAttachement: Class org.xwiki.rendering.listener.DefaultAttachement removed
205 ERROR: org.xwiki.rendering.transformation.MacroTransformationContext: Method 'public org.xwiki.rendering.internal.transformation.MacroTransformation getMacroTransformation()' has been removed
206 ERROR: org.xwiki.rendering.transformation.MacroTransformationContext: Method 'public void setMacroTransformation(org.xwiki.rendering.internal.transformation.MacroTransformation)' has been removed
207 ERROR: org.xwiki.rendering.transformation.Transformation: Method 'public void transform(org.xwiki.rendering.block.Block, org.xwiki.rendering.transformation.TransformationContext)' has been added to an interface
208 ERROR: org.xwiki.rendering.transformation.TransformationManager: Method 'public void performTransformations(org.xwiki.rendering.block.Block, org.xwiki.rendering.transformation.TransformationContext)' has been added to an interface
209 ERROR: org.xwiki.rendering.macro.script.AbstractJSR223ScriptMacro: Method 'protected java.lang.String evaluate(org.xwiki.rendering.macro.script.JSR223ScriptMacroParameters, java.lang.String, org.xwiki.rendering.transformation.MacroTransformationContext)' has been removed
210 {{/warning}}
211
212 === Pulled scripts are defered by default ===
213
214 This might break custom scripts, please check the correct behavior before upgrading a production server. Use Firebug in Firefox to catch errors, watch the error console, configure IE to notify all script errors.
215
216 === Nested script macros are forbidden ===
217
218 Now it's impossible to nest scripting macros, which is a good protection against many potential attacks. While the obvious case of direct nesting is easy to notice, there are other cases which are not as obvious:
219
220 {{code}}
221 {{velocity}}
222 {{include document="Some Document With Scripts" /}}
223 {{/velocity}}
224 {{/code}}
225
226 If the included document contains script macros, they will no longer be executed.
227
228 {{code}}
229 {{velocity}}
230 $doc.display('someProperty')
231 {{/velocity}}
232 {{/code}}
233
234 If the property contains script macros, for example in the content of a blog post, they will no longer be executed.
235
236 == General Notes ==
237
238 {{warning}}
239 Always make sure you compare your ##xwiki.cfg## file with the newest version since some configuration parameters were added. Note 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.
240 {{/warning}}

Get Connected