Last modified by Thomas Mortagne on 2026/10/09 15:24

Hide last authors
Sorin Burjan 1.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
Thomas Mortagne 11.2 5 Following the [[goals established for the 3.x cycle>>Main.Roadmap#HXWikiEnterprise3.xCycle]], XWiki Enterprise 3.3 delivers the first usable but experimental versions of App Within Minutes and Extension Manager features.
Sorin Burjan 1.1 6
Vincent Massol 4.1 7 = New and Noteworthy since XWiki Enterprise 3.2 =
Sorin Burjan 1.1 8
Thomas Mortagne 11.1 9 The full unabridged list of issues fixed in this release is available in our [[JIRA Dashboard>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=10590]].
Vincent Massol 8.1 10
Vincent Massol 4.1 11 == App Within Minutes (Experimental) ==
Sorin Burjan 1.2 12
Thomas Mortagne 11.3 13 {{info}}
14 This feature is experimental at this point which means you shouldn't use it in production at this stage. However we need the maximum number of feedback on this new feature in order to finalize it and to make it reach the production-ready status which we'd like to reach in 3.4 or 3.5.
15 {{/info}}
Vincent Massol 4.1 16
Vincent Massol 4.2 17 This feature offers a wizard to help you create collaborative web applications within minutes, based on XWiki's powerful structured data management system.
Sorin Burjan 1.2 18
Thomas Mortagne 11.3 19 Check the [[App Within Minutes documentation>>extensions:Extension.App Within Minutes Application.WebHome]] for more details.
Sorin Burjan 1.2 20
Vincent Massol 4.1 21 {{gallery}}
22 image:AppWithinMinutes-Step0.png
23 image:AppWithinMinutes-Step1.png
24 image:AppWithinMinutes-Step2.png
25 image:AppWithinMinutes-Step3.png
26 image:AppWithinMinutes-HomePage.png
27 {{/gallery}}
Sorin Burjan 1.2 28
Vincent Massol 4.1 29 == Extension Manager (Experimental) ==
Sorin Burjan 1.2 30
Thomas Mortagne 11.3 31 {{info}}
32 This feature is experimental at this point which means you shouldn't use it in production at this stage. However we need the maximum number of feedback on this new feature in order to finalize it and to make it reach the production-ready status which we'd like to reach in 3.4 or 3.5.
33 {{/info}}
Sorin Burjan 1.2 34
Vincent Massol 10.1 35 Allows installing extensions in a running XWiki Enterprise. There are currently more than 400 extensions on the [[XWiki Extension Repository>>extensions:Main.WebHome]].
36
Vincent Massol 4.1 37 Check the [[Extension Manager Application documentation>>extensions:Extension.Extension Manager Application]] for more details.
Sorin Burjan 1.2 38
39 [[image:em.png||class="screenshot"]]
40
41 == Link Checker ==
42
43 It's now possible to [[check the statuses of all external links found in your wiki>>extensions:Extension.Link Checker Application]].
44
45 [[image:externallinks.png||class="screenshot"]]
46
47 == FAQ Application ==
48
49 A [[new FAQ application>>extensions:Extension.FAQ Application]] is now made available (but not bundled by default in XWiki Enterprise):
50
51 [[image:extensions:Extension.FAQ [email protected]||class="screenshot"]]
52
53 == Better support for exporting CJK documents as PDF ==
54
55 CJK characters, shorthand for Chinese, Japanese and Korean, need special fonts not provided in the standard 14 fonts required by the PDF specification, nor in the FreeFonts distributed and enabled by default with XWiki. Starting with this version we also distribute three new free fonts, along with the configuration needed to enable them for their target languages.
56
57 [[image:cjk.png||class="screenshot"]]
58
59 == LDAP user membership improvements ==
60
61 Organization unit and search filter support have been added in the group membership mapping settings. To use them, replace the group DN with an organization unit DN or with any search filter.
62
63 == Attachments improvements ==
64
65 Since the filesystem attachment storage allows uploading very large files, a necessary improvement is to be able to pause and resume downloads. Starting with this version, it is possible to do so, since the ##/download/## action now respects the ##Range## HTTP header.
66
67 Several bugs with downloading attachments when the filesystem storage is enabled have also been fixed, making this feature ready for production use.
68
Vincent Massol 4.1 69 == Debian packages ==
Sorin Burjan 1.2 70
Vincent Massol 9.1 71 Debian packages and repositories are now available.
Sorin Burjan 1.2 72
Vincent Massol 4.1 73 You can add one of the following list files to ##/etc/debian/apt/source.list.d/##:
Thomas Mortagne 11.3 74
Vincent Massol 9.1 75 * http://maven.xwiki.org/stable/xwiki-stable.list : all stable releases starting with 3.3
Vincent Massol 4.1 76 * http://maven.xwiki.org/releases/xwiki-releases.list : all releases starting with 3.3 Milestone 1
Vincent Massol 9.1 77 * http://maven.xwiki.org/snapshots/xwiki-snapshots.list : all snapshots release starting with the 3.3 branch
Sorin Burjan 1.2 78
79 {{code}}
Vincent Massol 4.1 80 sudo wget http://maven.xwiki.org/stable/xwiki-stable.list -P /etc/apt/sources.list.d
Sorin Burjan 1.2 81 {{/code}}
82
Sorin Burjan 1.1 83 = For Developers =
84
Vincent Massol 6.1 85 == Script services for Application Manager and Wiki Manager ==
Sorin Burjan 1.1 86
Vincent Massol 6.1 87 There are script services now available for the old application and wiki manager plugins. You can access them via ##$services.applicationmanager## and ##$services.wikimanager##, and call all the methods previously exposed by their respective plugin APIs. For the moment the plugins are still there, with the script services just bridging them to the new preferred way of accessing APIs from Velocity scripts.
Sorin Burjan 1.1 88
Vincent Massol 6.1 89 == Cache improvements ==
Sorin Burjan 1.1 90
Vincent Massol 6.1 91 Several bugfixes and improvements have been committed, affecting the rendering cache, the cache macro, and the cache infrastructure in general. An important change is the introduction of an infinispan-based cache implementation, replacing JBossCache as the default one.
Sorin Burjan 1.1 92
Vincent Massol 6.1 93 == New xdom+xml syntax ==
94
95 The rendering now come with two reference XML based syntaxes which are the exact representation of rendering events.
96
97 Two variants are provided:
Thomas Mortagne 11.3 98
Vincent Massol 6.1 99 * 1.0: a stable syntax which represent the rendering events in the state they had when this version has been released. If anything change a new version of the syntax will be created (1.1, etc.)
100 * current: always in sync with rendering events whatever the version but also mean that it can change anytime without warning, only use that for internal use when you are sure you will render and parse with the same version of XWiki Rendering
101
102 == XE and XEM XAR changes ==
103
104 The XAR plugin by default doesn't bundle dependencies anymore, so the XE and XEM XARs now come in two variants:
105
106 * the old ##xwiki-enterprise-wiki## module has been renamed into [[##xwiki-enterprise-ui##>>https://github.com/xwiki/xwiki-enterprise/tree/xwiki-enterprise-3.3-milestone-1/xwiki-enterprise-ui]], and produces a XAR only with the documents specific to XWiki Enterprise, without dependencies;
107 * the full XAR with all the dependencies bundled in it is now produced by the [[##xwiki-enterprise-ui-all##>>https://github.com/xwiki/xwiki-enterprise/tree/xwiki-enterprise-3.3-milestone-1/xwiki-enterprise-distribution/xwiki-enterprise-ui-all]] module.
108
109 == JSR330 Provider Support ==
110
111 XWiki now [[supports JSR330 Providers>>extensions:Extension.Component Module#HRegisteringandUsingaProvider]].
112
113 They are useful for the following use cases:
Thomas Mortagne 11.3 114
Vincent Massol 6.1 115 * You wish to break a cyclic dependency
116 * You wish to lazily get a component instance (instead of it getting injected when your Component is looked up the first time)
117 * You wish to control how you return the instance you're providing for. For example you may wish to read the Component Hint from a configuration file and return the instance of the Component matching that Hint dynamically
118
119 == Component Event Improvements ==
120
121 The registration and unregistration event triggered by a component manager is now perfectly paired. Registering an existing component role and hint now trigger the unregistration event before registering the new component.
122
123 == New Disposable interface for Components ==
124
125 To prepare the future uninstallation feature of the Extension Manager, singleton components could now implements the Disposable interface. This interface require a single dispose() methods that will be call when a singleton component is unregistered from its component manager. When a singleton component has been created, this could happen in three cases:
126
Thomas Mortagne 11.3 127 * the component role and hints is explicitly unregistered
128 * another component role with same hints is registered and therefore replace the existing component
129 * the component instance is explicitly released calling the release function in the manager
130
Vincent Massol 6.1 131 Components that require a singleton component should be aware that the instance provided is now subject release and should prevent from accessing a component that have been released. This could be done by observing the registration events of the component manager. The Unregister Event is always triggered when a component is released.
132
Sorin Burjan 1.1 133 == Upgrades ==
134
135 The following dependencies have been upgraded:
136
Vincent Massol 6.1 137 * commons-lang 3.1
138 * Groovy 1.8.4
139 * LogBack 1.0
140 * Selenium 2.13.0
141 * SLF4J 1.6.4
142 * Maven AntRun Plugin 1.7
143 * Maven Shade Plugin 1.5
144 * Maven Checkstyle Plugin 2.8
145 * CSS4J 0.13
146 * JGroups 2.12.2
147 * Reflections 0.9.6
Sorin Burjan 1.1 148
149 == Miscellaneous ==
150
Vincent Massol 6.1 151 * Make it simple to add Icon Transformation mappings when using the Rendering in standalone mode
152 * Add support for being able to override components more than once TODO: Document it and linke to the documentation
153 * Bundle the Icon and WikiWord Transformations in the Rendering Standalone JAR
154 * Comments Macro is not bundled in the Rendering Standalone JAR
155 * Allow setting time to live and max entries when using the Cache macro
156 * IRC Bot application improvements
157 * Move to JBoss Infinispan as default cache implementation
158 * Application Manager and Wiki Manager plugins now expose a ScriptService and don't need to be added as plugin in xwiki.cfg file anymore. You can access they using {{code language="velocity"}}$services.applicationmanager{{/code}} and {{code language="velocity"}}$services.wikimanager{{/code}}.
159 * The Dashboard feature which was part of several applications (XWiki Enterprise Application and Administration Application) has been extracted into in a separate [[Dashboard Application>>extensions:Extension.Dashboard Application]]. There's now a new ##Dashboard## space which is visible in the list of spaces on the XE home page.
Vincent Massol 7.1 160 * Starting with XE 3.2 we had introduced caching of rendered content to improve performances but that led to a huge increase in memory needs. We've now tuned this and we've been able to keep the performance improvement and at the same time to drastically reduce the memory need.
Sorin Burjan 1.1 161
162 == Translations ==
163
164 The following translations have been updated:
165
Sergiu Dumitriu 10.3 166 {{language codes="cs, fr, it, lv, pl, pt_BR, ru, sv, uk"/}}
Sorin Burjan 1.1 167
168 = Supported Browsers =
169
170 Here's the list of supported browsers for this version (i.e. browsers that we've tested as working):
171
Sorin Burjan 1.2 172 {{browser name="iexplorer" version="8"/}}
173
174 {{browser name="iexplorer" version="9"/}}
175
176 {{browser name="firefox" version="3.6"/}}
177
178 {{browser name="firefox" version="8"/}}
179
180 {{browser name="chrome" version="15"/}}
181
Vincent Massol 5.1 182 = Supported Databases =
183
184 Here's the list of supported databases for this version (i.e. databases that we've tested as working):
Thomas Mortagne 11.3 185
Vincent Massol 5.1 186 * HSQLDB
Vincent Massol 7.1 187 * Oracle 10g and 11g (note that Oracle support was broken in XWiki Enterprise 3.2 and is now fixed in 3.3)
Vincent Massol 5.1 188 * MySQL 5.x
189
Sorin Burjan 1.1 190 = Known issues =
191
Thomas Mortagne 11.1 192 * [[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]]
Vincent Massol 5.1 193 * We've had reports that support for PostgreSQL has been broken since XWiki Enterprise 3.2. If you're using Postgre SQL we recommend you to stay on XWiki Enterprise 3.1.1 and wait for its support to be fixed in upcoming 3.3.1 or 3.4 versions.
Sorin Burjan 1.1 194
195 = Test Report =
196
Vincent Massol 7.1 197 You can check the [[manual test reports>>http://www.xwiki.org/xwiki/bin/view/TestReports/WebHome]] to learn about what was tested and the results on various browsers.
Sorin Burjan 1.1 198
199 = Backward Compatibility and Migration Notes =
200
201 == General Notes ==
202
203 {{warning}}
204 If you're running in a multiwiki setup you'll also need to define the property //xwiki.store.migration.databases=all// to your //xwiki.cfg// file or explicitly name all databases to be migrated as in //xwiki.store.migration.databases=db1,db2,...//.
205 {{/warning}}
206
207 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from all the improvements listed above.
208
209 {{warning}}
210 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.
211 {{/warning}}
212
Vincent Massol 7.1 213 == Issues specific to XWiki Enterprise 3.3 ==
Sorin Burjan 1.1 214
Vincent Massol 7.1 215 === Default Cache implementation changed ===
Sorin Burjan 1.1 216
Vincent Massol 7.1 217 As mentioned above, a new cache implementation based on the successor of JBossCache, Infinispan, has been implemented and selected as the default cache provider. Any custom code that deals with caches should be checked for eventual incompatibilities.
218
219 === Maven XAR plugin behavior changed ===
220
221 The Maven plugin used for packaging XAR modules has been changed so that by default it doesn't bundle the XAR dependencies. This is reflected in the default XE wiki, which now comes in two variants, described [[above>>#HXEandXEMXARchanges]]. If you're counting on the old behavior for your custom projects, you can configure the plugin to bundle dependencies by setting the ##includeDependencies## property to ##true##.
222
Vincent Massol 7.2 223 === Entity references are now immutable ===
Vincent Massol 7.1 224
225 EntityReference (and derived classes, DocumentReference...) has been refactored and are now immutable. This change has been introduced to prevent dangerous issues where a reference hold by an object could be changed by another one. This have a lot of consequences on the reference API and this break the backward compatibility. The following change should be noticed:
226
Thomas Mortagne 11.3 227 * all setters on EntityReference is now protected and could not be used anymore by any public code. Deriving a reference to render it mutable is hardly discouraged.
228 * EntityReference#getChild() has been removed, since a single entity may have more than one child. A EntityReference#getReversedParentChain() method has been added to allow easy iteration from the root entity to their children in a given parent chain.
229 * EntityReference#clone() has been removed, a copy-construtor is still available, but is useless since an entity is immutable, there is no need to clone it
230 * EntityReference#replaceParent(oldParent,newParent) allow creating a new entity with one of the parent in the parent chain replaced
231 * EntityReference#appendParent() allow creating a new entity with an appended root parent, this one is useless on any derived class since the parent chain could not appended in them.
232
Sorin Burjan 1.1 233 == API Breakages ==
234
Vincent Massol 9.1 235 The following APIs were modified since XWiki Enterprise 3.2:
Sorin Burjan 1.1 236
237 {{code language="none"}}
Sergiu Dumitriu 10.2 238 org.xwiki.component.annotation.ComponentAnnotationLoader: In method 'public void initialize(org.xwiki.component.manager.ComponentManager, java.lang.ClassLoader, java.util.List, java.util.List)' the number of arguments has changed
239 org.xwiki.component.manager.ComponentEventManager: Method 'public void notifyComponentRegistered(org.xwiki.component.descriptor.ComponentDescriptor, org.xwiki.component.manager.ComponentManager)' has been added to an interface
240 org.xwiki.component.manager.ComponentEventManager: Method 'public void notifyComponentUnregistered(org.xwiki.component.descriptor.ComponentDescriptor, org.xwiki.component.manager.ComponentManager)' has been added to an interface
241 org.xwiki.annotation.event.AbstractAnnotationEvent: Added abstract modifier to class
242 org.xwiki.annotation.reference.IndexedObjectReference: Accessibility of method 'public void setName(java.lang.String)' has been decreased from public to protected
243 com.xpn.xwiki.plugin.applicationmanager.ApplicationManagerPlugin: Removed org.xwiki.observation.EventListener from the set of implemented interfaces
244 com.xpn.xwiki.plugin.applicationmanager.ApplicationManagerPlugin: Method 'public java.util.List getEvents()' has been removed
245 com.xpn.xwiki.plugin.applicationmanager.ApplicationManagerPlugin: Method 'public void onEvent(org.xwiki.observation.event.Event, java.lang.Object, java.lang.Object)' has been removed
246 org.xwiki.cache.eviction.EntryEvictionConfiguration: Method 'public void setAlgotithm(org.xwiki.cache.eviction.EntryEvictionConfiguration$Algorithm)' has been removed
247 org.xwiki.model.reference.AttachmentReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
248 org.xwiki.model.reference.AttachmentReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
249 org.xwiki.model.reference.ClassPropertyReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
250 org.xwiki.model.reference.ClassPropertyReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
251 org.xwiki.model.reference.DocumentReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
252 org.xwiki.model.reference.DocumentReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
253 org.xwiki.model.reference.DocumentReference: Method 'public void setWikiReference(org.xwiki.model.reference.WikiReference)' has been removed
254 org.xwiki.model.reference.EntityReference: Method 'public org.xwiki.model.reference.EntityReference clone()' has been removed
255 org.xwiki.model.reference.EntityReference: Method 'public java.lang.Object clone()' has been removed
256 org.xwiki.model.reference.EntityReference: Method 'public org.xwiki.model.reference.EntityReference getChild()' has been removed
257 org.xwiki.model.reference.EntityReference: Method 'public java.lang.String getName()' is now final
258 org.xwiki.model.reference.EntityReference: Method 'public org.xwiki.model.reference.EntityReference getParent()' is now final
259 org.xwiki.model.reference.EntityReference: Method 'public org.xwiki.model.EntityType getType()' is now final
260 org.xwiki.model.reference.EntityReference: Method 'public void setChild(org.xwiki.model.reference.EntityReference)' has been removed
261 org.xwiki.model.reference.EntityReference: Accessibility of method 'public void setName(java.lang.String)' has been decreased from public to protected
262 org.xwiki.model.reference.EntityReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
263 org.xwiki.model.reference.EntityReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
264 org.xwiki.model.reference.ObjectPropertyReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
265 org.xwiki.model.reference.ObjectPropertyReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
266 org.xwiki.model.reference.ObjectPropertyReferenceResolver: Method 'public org.xwiki.model.reference.ObjectPropertyReference resolve(java.lang.Object, java.lang.Object[])' has been added to an interface
267 org.xwiki.model.reference.ObjectReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
268 org.xwiki.model.reference.ObjectReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
269 org.xwiki.model.reference.ObjectReferenceResolver: Method 'public org.xwiki.model.reference.ObjectReference resolve(java.lang.Object, java.lang.Object[])' has been added to an interface
270 org.xwiki.model.reference.SpaceReference: Accessibility of method 'public void setParent(org.xwiki.model.reference.EntityReference)' has been decreased from public to protected
271 org.xwiki.model.reference.SpaceReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
272 org.xwiki.model.reference.WikiReference: Accessibility of method 'public void setType(org.xwiki.model.EntityType)' has been decreased from public to protected
273 com.xpn.xwiki.api.XWiki: Method 'public com.xpn.xwiki.plugin.query.XWikiQuery createQueryFromRequest(java.lang.String)' has been removed
274 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearch(java.lang.String, java.lang.String)' has been removed
275 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearch(java.lang.String, java.lang.String, com.xpn.xwiki.plugin.query.XWikiCriteria)' has been removed
276 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearch(java.lang.String, java.lang.String, java.lang.String, com.xpn.xwiki.plugin.query.XWikiCriteria)' has been removed
277 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearchColumns(java.lang.String, com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
278 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearchColumns(java.lang.String, java.lang.String, com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
279 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearchOrder(java.lang.String, com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
280 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String displaySearchOrder(java.lang.String, java.lang.String, com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
281 com.xpn.xwiki.api.XWiki: Method 'public java.util.List search(com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
282 com.xpn.xwiki.api.XWiki: Method 'public java.lang.String searchAsTable(com.xpn.xwiki.plugin.query.XWikiQuery)' has been removed
Thomas Mortagne 11.3 283 org.xwiki.query.QueryExecutorProvider: Class org.xwiki.query.QueryExecutorProvider removed
284 {{/code}}

Get Connected