Show last authors
1 (% style="font-size:x-large;" %)
2
3
4
5 {{box cssClass="floatinginfobox" title="**Contents**"}}
6 {{toc/}}
7 {{/box}}
8
9 This is the first milestone of the XWiki Enterprise 4.1 version ([[Roadmap>>Main.Roadmap]]). This release brings new 3D graphs made with pure XWiki syntax, safer Groovy scripting, and better hiding of internal application related documents.
10
11 = New and Noteworthy (since XWiki Enterprise 4.0 version) =
12
13 == 3D Charting ==
14
15 We've [[added 2 new types of charts>>extensions:Extension.Chart Macro]], **bar3D** and **line3D**, which draw 3D charts.
16
17 For example the following code:
18
19 {{code}}
20 {{chart type='bar3D' source='inline' params='range:B2-B9;series:columns'}}
21 |=Date|=Value
22 |2012-02-21|1.97
23 |2012-02-26|2.96
24 |2012-03-04|3.93
25 |2012-03-11|4.84
26 |2012-03-18|5.83
27 |2012-03-25|4.5
28 |2012-04-01|3.85
29 |2012-04-08|4.87
30 {{/chart}}
31 {{/code}}
32
33 Will be rendered as this:
34
35 [[image:chart-example.png]]
36
37 == Hide Technical Documents ==
38
39 This effort was started in XWiki 4.0. However in 4.0 we had only implemented the technical solution to mark documents as hidden but we didn't get the time to use it. Now in 4.1 we've marked a lot of documents as Technical and we've modified a lot of UI screens to only display technical documents for users who ask for it.
40
41 Specifically there's a User Profile preference that you can set if you wish to see technical documents:
42
43 {{image reference="hidetechnicaldocuments.png"/}}
44
45 More precisely, the following was implemented:
46
47 * Mark a lot of documents as technical documents in the default XWiki Enterprise XAR
48 * Filter hidden documents from Lucene search results
49 * Filter hidden documents from database search results
50 * Filter hidden documents from default panels
51 * Filter hidden documents in REST APIs
52 * Filter hidden documents in LiveTable results
53
54 As a consequence, by default, a user will only about 24 documents out of 300+ that exist in the default XWiki Enterprise XAR, making it a lot nicer and simpler to apprehend.
55
56 == Improvements to the Extension Manager ==
57
58 The speed and reliability of the [[Extension Repository>>extensions:Extension.Extension Repository Application]] has been improved considerably. For example the [[XWiki.org Extension Repository>>extensions:Extension.WebHome]] is now much faster when you access it from XWiki Enterprise and you should now be able to browse and install extensions in no time.
59
60 We polished the extension log (e.g. install log) display. In case the extension job fails (in the image below the job of computing the install plan fails) we extract the error message and display it. You can view the full stack trace by clicking on the error message.
61
62 image:EM-extensionLog.png
63
64 The install and uninstall plans have been improved to display extensions like in the dependency section. This way you can follow the link of an extension to find out more about what is going to be installed or uninstalled.
65
66 image:EM-uninstallPlan.png
67
68 The install and uninstall process is now completely asynchronous. You can see below how the progress is indicated.
69
70 image:EM-asyncInstall.png
71
72 == Taming of Groovy scripts ==
73
74 Since traditionally, Groovy scripts can enter into unstoppable infinite loops, use reflection to violate security assumptions, access server resources, or even crash the virtual machine, they have been off limits to non-administrators.
75
76 In a bid to open up new scripting options to less permitted users (especially in wiki farms where getting Programming Rights is a problem since it means having those rights on the whole farm), steps have been taken to make Groovy safer.
77
78 Groovy scripts are now technically allowed to users having simple Edit rights but the Groovy Sandbox is currently very restrictive (said differently, you cannot do anything useful with it at the moment! :)). Now that we have the mechanism in place our plan is to slowly open up allowed operations.
79
80 To enable and test this feature read the document for both the [[Commons Groovy Module>>extensions:Extension.GroovyModuleCommons]] and the [[Platform Groovy Module>>extensions:Extension.GroovyModulePlatform]].
81
82 === Compilation customizers ===
83
84 Customizers can be registered to alter the Groovy script as it is compiled such as filtering System.exit() calls and adding timeout checks to loops to prevent infinite looping. Learn more: http://www.jroller.com/melix/entry/upcoming_groovy_goodness_automatic_thread
85
86 === Stop run-away Groovy scripts after a configurable timeout ===
87
88 You can now configure your wiki to stop Groovy scripts after a configurable amount of run time. For example if you wish to have a timeout of 10 seconds for your XWiki runtime, you'd configure xwiki's ##xwiki.properties## with:
89
90 {{code language="none"}}
91 groovy.compilationCustomizers=timedinterrupt
92 groovy.customizer.timedInterrupt.timeout=10
93 {{/code}}
94
95 == New support for "short form" HQL queries in the Query Manager ==
96
97 When you send a search query to the Query Manager such as {{code language="none"}}where doc.creationDate > '2008-01-01'{{/code}} It is now assumed that you meant:
98
99 {{code language="none"}}
100 select doc.fullName from XWikiDocument as doc where doc.creationDate > '2008-01-01'
101 {{/code}}
102
103 == For developers ==
104
105 * New rendering [[Compatibility Test Suite>>rendering:Main.CompatibilityTestSuite]] to make testing easier and simplify implementation of new syntax Parsers and Renderers. You can checkout the [[Compatibility report>>rendering:Main.SyntaxReport]] for all the syntaxes that are supported out of the box by XWiki.
106
107 * New API for upgrading installed XWiki Extensions.
108
109 = Bug fixes and improvements =
110
111 * Fixed wrong calculation of IDs for stats values making it impossible to upgrade a wiki to version 4.0 if statistics collection is enabled.
112 * Faster first startup time by not running a database migration when it is not needed.
113 * Simplify reverse proxy setup by making all HTTP redirects use relitive URLs.
114 * Add support for bold, italic and monospace in the TeX Renderer
115 * Was impossible to delete then recreate a subwiki with the same name, fixed.
116 * Fixed Javascript error when scrolling over Search Suggest results in Internet Explorer 6.
117 * Trying to change a document's parent from the REST service resulted in an error, fixed.
118 * It is now possible for non-administrators to execute cross-wiki XWQL queries.
119
120 See the full list of [[JIRA issues>>http://jira.xwiki.org/sr/jira.issueviews:searchrequest-printable/temp/SearchRequest.html?jqlQuery=project+in+%28XCOMMONS%2C+XRENDERING%2C+XWIKI%2C+XE%2C+XEM%29+and+status+%3D+Closed+and+resolution+%3D+Fixed+and+fixVersion+%3D+%224.1-milestone-1%22&tempMax=1000]] fixed in this release.
121
122 == For Developers ==
123
124 * Move ComponentManager deprecated methods to Legacy modules
125 * New Groovy module in xwiki-commons
126 * Add legacy module structure for XWiki Rendering
127 * Have one Maven module per XWiki Rendering syntax
128 * Separate Event Syntax from Rendering API by moving it to a Syntax module
129 * Plain syntax and Event syntax have been moved out of Rendering API nto their own modules.
130
131 == Upgrades ==
132
133 The following dependencies have been upgraded:
134
135 * Tika 1.1
136 * JGroups 3.0.10
137 * Pygments 1.5
138 * Selenium 2.21
139 * Maven AspectJ Plugin 1.4
140 * commons-io 2.3
141 * Maven Shade plugin 1.6
142
143 == Retired modules ==
144
145 The [[AutoTag plugin>>extensions:Extension.AutoTag Plugin]] has been extracted from the oldcore into [[its own module>>url:https://github.com/xwiki/xwiki-platform/tree/master/xwiki-platform-core/xwiki-platform-autotag]], and isn't distributed by default anymore. If your code depends on this plugin, you have to [[download it>>url:http://maven.xwiki.org/releases/org/xwiki/platform/xwiki-platform-autotag/]], copy it into your installation ##WEB-INF/lib##, and enable it in ##xwiki.cfg##.
146
147 = Test Report =
148
149 You can check the [[manual test report>>TestReports.ManualTestReportXE41M1]] to learn about what was tested and the results on various browsers.
150
151 == Tested Browsers ==
152
153 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>>dev:Community.BrowserSupportStrategy]]):
154
155 {{browser name="firefox" version="12.0.1"/}}
156
157 == Tested Databases ==
158
159 {{database name="hsqldb" version="2.2.8"/}}
160
161 = Known issues =
162
163 * [[Bugs we know about>>http://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]]
164
165 = General Notes =
166
167 {{info}}
168 If you're running in a multiwiki setup you'll also need to define the property //xwiki.store.migration.databases// in your //xwiki.cfg// file if you want to explicitly name some databases to be migrated as the default is now to migrate all databases. Database that are not migrated could not be accessed.
169 {{/info}}
170
171 You may also want to [[import the default wiki XAR>>Main.Download]] in order to benefit from all the improvements listed above.
172
173 {{warning}}
174 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.
175 {{/warning}}
176
177 == Issues specific to XWiki Enterprise 4.1 Milestone 1 ==
178
179 The old experimental real-time synchronization plugin for the WYSIWYG content editor has been retired. We hope that its functionality will be replaced by the real-time editing feature developed on the [[Wiki 3.0>>https://github.com/xwiki-contrib/wiki30]] project. If you want to continue using the old plugin you need to:
180
181 * take the code from [[##xwiki-contrib/retired## GitHub repo>>https://github.com/xwiki-contrib/retired/tree/master/xwiki-platform-wysiwyg-plugin-sync]]
182 * add the client and server side as dependencies to the WYSIWYG client and server side respectively
183 * modify ##WysiwygEditorFactory## to register the factory of the sync plugin
184 * rebuild the editor and update the jars and client side resources on your XWiki Enterprise instance
185
186 == API Breakages ==
187
188 The following APIs were modified since version 4.0:
189
190 {{code language="none"}}
191 org.xwiki.environment.EnvironmentConfiguration: Class org.xwiki.environment.EnvironmentConfiguration removed
192 org.xwiki.extension.job.plan.ExtensionPlan: Return type of method 'public java.util.Collection getTree()' has been changed to org.xwiki.extension.job.plan.ExtensionPlanTree
193 org.xwiki.extension.version.VersionConstraint: Method 'public boolean isCompatible(org.xwiki.extension.version.Version)' has been added to an interface
194 org.xwiki.job.AbstractJob: Changed type of field status from org.xwiki.job.internal.DefaultJobStatus to org.xwiki.job.internal.AbstractJobStatus
195 org.xwiki.job.AbstractJob: Return type of method 'protected org.xwiki.job.internal.DefaultJobStatus createNewStatus(org.xwiki.job.Request)' has been changed to org.xwiki.job.internal.AbstractJobStatus
196 org.xwiki.job.AbstractJob: Method 'protected java.lang.String getId()' has been removed
197 org.xwiki.job.AbstractRequest: Return type of method 'public java.lang.String getId()' has been changed to java.util.List
198 org.xwiki.job.Job: Method 'public void join()' has been added to an interface
199 org.xwiki.job.Job: Method 'public boolean join(long, java.util.concurrent.TimeUnit)' has been added to an interface
200 org.xwiki.job.JobManager: Method 'public org.xwiki.job.event.status.JobStatus getJobStatus(java.util.List)' has been added to an interface
201 org.xwiki.job.Request: Return type of method 'public java.lang.String getId()' has been changed to java.util.List
202 org.xwiki.job.event.JobEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
203 org.xwiki.job.event.JobFinishedEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
204 org.xwiki.job.event.JobStartedEvent: Return type of method 'public java.lang.String getJobId()' has been changed to java.util.List
205 org.xwiki.job.event.status.JobStatus: Method 'public java.util.Date getEndDate()' has been added to an interface
206 org.xwiki.job.event.status.JobStatus: Method 'public java.util.Date getStartDate()' has been added to an interface
207 com.xpn.xwiki.doc.merge.MergeUtils: Class com.xpn.xwiki.doc.merge.MergeUtils removed
208 com.xpn.xwiki.objects.ObjectInterface: Method 'public com.xpn.xwiki.objects.classes.BaseClass getXClass(com.xpn.xwiki.XWikiContext)' has been added to an interface
209 com.xpn.xwiki.plugin.autotag.AutoTagPlugin: Class com.xpn.xwiki.plugin.autotag.AutoTagPlugin removed
210 com.xpn.xwiki.plugin.autotag.AutoTagPluginAPI: Class com.xpn.xwiki.plugin.autotag.AutoTagPluginAPI removed
211 com.xpn.xwiki.plugin.autotag.FrenchStemmer: Class com.xpn.xwiki.plugin.autotag.FrenchStemmer removed
212 com.xpn.xwiki.plugin.autotag.Tag: Class com.xpn.xwiki.plugin.autotag.Tag removed
213 com.xpn.xwiki.plugin.autotag.TagCloud: Class com.xpn.xwiki.plugin.autotag.TagCloud removed
214 org.xwiki.query.QueryFilter: Method 'public java.util.List filterResults(java.util.List)' has been added to an interface
215 org.xwiki.gwt.wysiwyg.client.Images: Method 'public com.google.gwt.resources.client.ImageResource sync()' has been removed
216 org.xwiki.gwt.wysiwyg.client.Strings: Method 'public java.lang.String sync()' has been removed
217 org.xwiki.gwt.wysiwyg.client.diff.AddDelta: Class org.xwiki.gwt.wysiwyg.client.diff.AddDelta removed
218 org.xwiki.gwt.wysiwyg.client.diff.ChangeDelta: Class org.xwiki.gwt.wysiwyg.client.diff.ChangeDelta removed
219 org.xwiki.gwt.wysiwyg.client.diff.Chunk: Class org.xwiki.gwt.wysiwyg.client.diff.Chunk removed
220 org.xwiki.gwt.wysiwyg.client.diff.DeleteDelta: Class org.xwiki.gwt.wysiwyg.client.diff.DeleteDelta removed
221 org.xwiki.gwt.wysiwyg.client.diff.Delta: Class org.xwiki.gwt.wysiwyg.client.diff.Delta removed
222 org.xwiki.gwt.wysiwyg.client.diff.Diff: Class org.xwiki.gwt.wysiwyg.client.diff.Diff removed
223 org.xwiki.gwt.wysiwyg.client.diff.DiffAlgorithm: Class org.xwiki.gwt.wysiwyg.client.diff.DiffAlgorithm removed
224 org.xwiki.gwt.wysiwyg.client.diff.DiffException: Class org.xwiki.gwt.wysiwyg.client.diff.DiffException removed
225 org.xwiki.gwt.wysiwyg.client.diff.DifferentiationFailedException: Class org.xwiki.gwt.wysiwyg.client.diff.DifferentiationFailedException removed
226 org.xwiki.gwt.wysiwyg.client.diff.PatchFailedException: Class org.xwiki.gwt.wysiwyg.client.diff.PatchFailedException removed
227 org.xwiki.gwt.wysiwyg.client.diff.Revision: Class org.xwiki.gwt.wysiwyg.client.diff.Revision removed
228 org.xwiki.gwt.wysiwyg.client.diff.RevisionVisitor: Class org.xwiki.gwt.wysiwyg.client.diff.RevisionVisitor removed
229 org.xwiki.gwt.wysiwyg.client.diff.SimpleDiff: Class org.xwiki.gwt.wysiwyg.client.diff.SimpleDiff removed
230 org.xwiki.gwt.wysiwyg.client.diff.ToString: Class org.xwiki.gwt.wysiwyg.client.diff.ToString removed
231 org.xwiki.gwt.wysiwyg.client.diff.myers.DiffNode: Class org.xwiki.gwt.wysiwyg.client.diff.myers.DiffNode removed
232 org.xwiki.gwt.wysiwyg.client.diff.myers.MyersDiff: Class org.xwiki.gwt.wysiwyg.client.diff.myers.MyersDiff removed
233 org.xwiki.gwt.wysiwyg.client.diff.myers.PathNode: Class org.xwiki.gwt.wysiwyg.client.diff.myers.PathNode removed
234 org.xwiki.gwt.wysiwyg.client.diff.myers.Snake: Class org.xwiki.gwt.wysiwyg.client.diff.myers.Snake removed
235 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPlugin: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPlugin removed
236 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPluginFactory: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncPluginFactory removed
237 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncResult: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncResult removed
238 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncService: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncService removed
239 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncServiceAsync: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncServiceAsync removed
240 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncStatus: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncStatus removed
241 org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncTools: Class org.xwiki.gwt.wysiwyg.client.plugin.sync.SyncTools removed
242 org.xwiki.wysiwyg.server.plugin.sync.SyncEngine: Class org.xwiki.wysiwyg.server.plugin.sync.SyncEngine removed
243 org.xwiki.wysiwyg.server.plugin.sync.SyncException: Class org.xwiki.wysiwyg.server.plugin.sync.SyncException removed
244 {{/code}}

Get Connected