Wiki source code of Release Notes for XWiki 6.4-milestone-2
Last modified by Manuel Leduc on 2024/10/24
Show last authors
author | version | line-number | content |
---|---|---|---|
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 | |||
7 | This milestone brings mainly UI improvements in the Menu application, Mail application and Flamingo skin, while offering developers the ability to write LESS in Skin Extensions, a cool icon picker and new ConfigurableClass and Mail Sender API features. | ||
8 | |||
9 | = New and Noteworthy (since XWiki 6.4-milestone-1) = | ||
10 | |||
11 | [[Full list of issues fixed and Dashboard for 6.4>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12791]]. | ||
12 | |||
13 | == Menu Application == | ||
14 | |||
15 | Taking advantage of the ability to have LESS inside our [[StyleSheetExtensions>>extensions:Extension.Skin Extension Plugin||anchor="HUseLESS"]], we improved the [[Menu Application>>extensions:Extension.Menu Application]], on Flamingo based skins, making it responsive and also adapting its styling according to the active [[Flamingo Theme>>extensions:Extension.Flamingo Theme Application]]. | ||
16 | Colibri based skins preserve the initial styling. | ||
17 | |||
18 | {{gallery}} | ||
19 | image:menu_flamingo_charcoal.png | ||
20 | image:menu_flamingo_united.png | ||
21 | image:menu_flamingo_darkly.png | ||
22 | image:menu_flamingo_simplex.png | ||
23 | image:menu_flamingo_charcoal_responsive.png | ||
24 | {{/gallery}} | ||
25 | |||
26 | == Mail Feature == | ||
27 | |||
28 | * The mail feature has a new Category in the Admin UI (see the [[Mail Application>>extensions:Extension.Mail Application]] for details).((( | ||
29 | {{image reference="emailcategory.png"/}} | ||
30 | ))) | ||
31 | * There's now the possibility to configure default BCC addresses which will be added by default to all emails sent using the [[Mail Sender API>>extensions:Extension.Mail Sender API]].((( | ||
32 | {{image reference="emailsend.png"/}} | ||
33 | ))) | ||
34 | * The [[Mail Sender API>>extensions:Extension.Mail Sender API]] now checks for permission before sending emails, when using it from scripts (i.e. when using the Mail Sender Script Service). There are currently 2 possible strategies that you configure in your ##xwiki.properties## file((( | ||
35 | {{code language="none"}} | ||
36 | #-# [Since 6.4M2] | ||
37 | #-# Defines which authorization checks are done when sending mails using the Mail Sender Script Service. | ||
38 | #-# Example of valid values: | ||
39 | #-# - "programmingrights": the current document must have Programming Rights | ||
40 | #-# - "alwaysallow": no check is performed. This is useful when running XWiki in a secure environment where we | ||
41 | #-# want to allow all users to be able to send emails through the Script Service. | ||
42 | #-# The default is: | ||
43 | # mail.sender.scriptServiceCheckerHint = programmingrights | ||
44 | {{/code}} | ||
45 | ))) | ||
46 | |||
47 | == Flamingo == | ||
48 | |||
49 | We partially restored the behaviour of the top level menu from version 6.2, with some improvements: | ||
50 | |||
51 | * for tablet and desktop | ||
52 | ** the menu label is a link used for navigation | ||
53 | ** the toggle (arrow / caret) is used for opening the drop down menu, but should be better separated from the label | ||
54 | * on phones the behaviour remains the same: taping on the label opens the menu | ||
55 | |||
56 | {{gallery}} | ||
57 | image:charcoal-default.png | ||
58 | image:charcoal-hover-link.png | ||
59 | image:charcoal-hover-toggle.png | ||
60 | image:charcoal-open.png | ||
61 | {{/gallery}} | ||
62 | |||
63 | The history table, under each page, is now responsive to the screen size: | ||
64 | |||
65 | {{image reference="responsive-history.png" /}} | ||
66 | |||
67 | == Miscellaneous == | ||
68 | |||
69 | * The selected tree node is now highlighted even when links are enabled:((( | ||
70 | {{image reference="highlightSelectedTreeNode.png" /}} | ||
71 | ))) | ||
72 | * A list of icons supported by XWiki have been created, with mapping for Silk and Font Awesome. Which means that we now propose a list of icons that are both present in Silk and Font Awesome. | ||
73 | * The list of columns in the UserDirectory customization screen is now sorted alphabetically | ||
74 | * The accuracy of the attachment content type detection has been improved. If the file name extension is unknown then we attempt to detect the content type from the first bytes of the file content. You can check this by attaching a text file without the 'txt' file name extension. | ||
75 | |||
76 | 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-2%22&tempMax=1000]] fixed in this release. | ||
77 | |||
78 | = For Developers = | ||
79 | |||
80 | == Mail Sender Permissions == | ||
81 | |||
82 | There's now a [[pluggable permission checker>>extensions:Extension.Mail Sender API||anchor="HPluggablePermissionChecker"]] used for checking if a mail should be sent, when using the Mail Sender Script Service. Two implementations are provided (see above) but you can also provide your own implementation by implementing the ##org.xwiki.mail.script.ScriptServicePermissionChecker## component role: | ||
83 | |||
84 | {{code language="java"}} | ||
85 | @Role | ||
86 | @Unstable | ||
87 | public interface ScriptServicePermissionChecker | ||
88 | { | ||
89 | /** | ||
90 | * @param message the message to check for authorization | ||
91 | * @exception MessagingException if the message is not allowed to be sent | ||
92 | */ | ||
93 | void check(MimeMessage message) throws MessagingException; | ||
94 | } | ||
95 | {{/code}} | ||
96 | |||
97 | For example you could imagine implementing checks on the size of the email or who the recipients are, run the content of the mail through some filter, etc. | ||
98 | |||
99 | == Icon Picker == | ||
100 | |||
101 | An [[icon picker>>extensions:Extension.Icon Theme Application||anchor="#HIconPicker"]] has been created to help users selecting an image in the list of supported icons. | ||
102 | |||
103 | ((( | ||
104 | {{image reference="icon-picker.png"/}} | ||
105 | ))) | ||
106 | |||
107 | This picker is already used in [[Application Within Minutes>>extensions:Extension.App Within Minutes Application]] for the application's icon selection. | ||
108 | |||
109 | == Skin Extensions == | ||
110 | |||
111 | [[Now you can use LESS in your Skin Extensions!>>extensions:Extension.Skin Extension Plugin||anchor="HUseLESS"]]. You just need to set the new property "Content Type" to LESS inside your Skin Extension object: | ||
112 | |||
113 | ((( | ||
114 | {{image reference="contentTypeLESS.png"/}}. | ||
115 | ))) | ||
116 | |||
117 | == Admin ConfigurableClass == | ||
118 | |||
119 | The [[##ConfigurableClass## mechanism>>extensions:Extension.Administration Application||anchor="HMakingyourapplicationconfigurablewithConfigurableClass"]] has been improved to be able to contribute new categories in the Admin UI. For example the "Email" Category in the following screenshot is contributed through a ##ConfigurableClass##: | ||
120 | |||
121 | {{image reference="emailcategory.png"/}} | ||
122 | |||
123 | It was configured using: | ||
124 | |||
125 | {{image reference="emailconfigurableclass.png"/}} | ||
126 | |||
127 | == Upgrades == | ||
128 | |||
129 | The following dependencies have been upgraded: | ||
130 | |||
131 | * [[JGroups 3.6.1>>https://jira.xwiki.org/browse/XWIKI-11523]] | ||
132 | * [[Pygments 2.0.1>>https://jira.xwiki.org/browse/XWIKI-11522]] | ||
133 | * [[Joda-Time 2.6>>https://jira.xwiki.org/browse/XWIKI-11516]] | ||
134 | * [[Bootstrap 3.3.1>>https://jira.xwiki.org/browse/XWIKI-11381]] | ||
135 | * [[Bootswatch 3.3.1+2>>https://jira.xwiki.org/browse/XWIKI-11569]] | ||
136 | |||
137 | == Miscellaneous == | ||
138 | |||
139 | * It's now possible to know what namespace a ComponentManager instance is associated with by casting it to ##org.xwiki.component.manager.NamespacedComponentManager##. See [[Component Module documentation>>http://extensions.xwiki.org/xwiki/bin/view/Extension/Component+Module||anchor="HNamespacedComponentManager"]]. | ||
140 | * Added getCurrentWikiDescriptor() method to the wiki API and script service to be consistent with the existing getCurrentWikiId() method | ||
141 | * The ClassLoader automatically set as Thread ClassLoader is now dynamic meaning that any modification of the context wiki will automatically change the actual Thread ClassLoader. It used to be set to whatever was the wiki in the URL at ExecutionContext init. | ||
142 | * [[A new CSS class>>Documentation.DevGuide.FrontendResources.SpecialCSSClasses.WebHome||anchor="HClassesfortheresponsiveness"]] have been added in Flamingo, to handle responsive tables. | ||
143 | * The #sheetTitle Velocity macro supports a new use case: displaying the sheet title if the current document doesn't have an object of some type:((( | ||
144 | {{code language="none"}} | ||
145 | #sheetTitle('The sheet used to display objects of type Space.MyClass', 'Space.MyClass') | ||
146 | {{/code}} | ||
147 | ))) | ||
148 | |||
149 | = Translations = | ||
150 | |||
151 | The following translations have been updated: | ||
152 | |||
153 | {{language codes="fr"/}} | ||
154 | |||
155 | {{comment}} | ||
156 | |||
157 | = Tested Browsers & Databases = | ||
158 | |||
159 | {{include reference="TestReports.ManualTestReportSummaryXWiki64M2"/}} | ||
160 | |||
161 | = Performances tests compared to <last super stable version> = | ||
162 | |||
163 | <a summary of the comparison with latest super stable version> | ||
164 | |||
165 | More details on <link to the test report>. | ||
166 | |||
167 | {{/comment}} | ||
168 | |||
169 | = Known issues = | ||
170 | |||
171 | * [[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]] | ||
172 | |||
173 | = Backward Compatibility and Migration Notes = | ||
174 | |||
175 | == General Notes == | ||
176 | |||
177 | 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. | ||
178 | |||
179 | == API Breakages == | ||
180 | |||
181 | The following APIs were modified since XWiki 6.3: | ||
182 | |||
183 | * It's very unlikely that this class is implemented by anything else and it does not make much sense to not have this method, since this is not really a cache behind it but a Map that keep engines forever it may create a memory leak on a big farm running for a long time((( | ||
184 | {{code language="none"}} | ||
185 | org.xwiki.velocity.VelocityFactory: Method 'public org.xwiki.velocity.VelocityEngine removeVelocityEngine(java.lang.String)' has been added to an interface | ||
186 | {{/code}} | ||
187 | ))) | ||
188 | |||
189 | * This shouldn't be a backward incompatible change since it's a method addition on an Annotation.((( | ||
190 | {{code language="none"}} | ||
191 | org.xwiki.component.annotation.Component: Method 'public boolean staticRegistration()' has been added to an interface | ||
192 | {{/code}} | ||
193 | ))) | ||
194 | |||
195 | * Young API, this method needs to be available for consistency with the getMainWikiDescriptor/Id pair of methods((( | ||
196 | {{code language="none"}} | ||
197 | org.xwiki.wiki.descriptor.WikiDescriptorManager: Method 'public org.xwiki.wiki.descriptor.WikiDescriptor getCurrentWikiDescriptor()' has been added to an interface | ||
198 | {{/code}} | ||
199 | ))) | ||
200 | |||
201 | * Young API, adding a method to check permissions for sending mail and a method to configure default BCC addresses to use when sending mail.((( | ||
202 | {{code language="none"}} | ||
203 | org.xwiki.mail.MailSenderConfiguration: Method 'public java.util.List getBCCAddresses()' has been added to an interface | ||
204 | org.xwiki.mail.MailSenderConfiguration: Method 'public java.lang.String getScriptServicePermissionCheckerHint()' has been added to an interface | ||
205 | {{/code}} | ||
206 | ))) | ||
207 | |||
208 | * Young API, this method should not have been made public.((( | ||
209 | {{code language="none"}} | ||
210 | org.xwiki.mail.script.MimeMessageWrapper: In method 'public MimeMessageWrapper(org.xwiki.mail.internal.ExtendedMimeMessage, javax.mail.Session, org.xwiki.mail.MailSender, org.xwiki.context.Execution, org.xwiki.component.manager.ComponentManager)' the number of arguments has changed | ||
211 | org.xwiki.mail.script.MimeMessageWrapper: Accessibility of method 'public MimeMessageWrapper(org.xwiki.mail.internal.ExtendedMimeMessage, javax.mail.Session, org.xwiki.mail.MailSender, org.xwiki.context.Execution, org.xwiki.component.manager.ComponentManager)' has been decreased from public to package | ||
212 | {{/code}} | ||
213 | ))) | ||
214 | |||
215 | * WYSIWYG's MacroService API was not previously considering a multiwiki environment.((( | ||
216 | {{code language="none"}} | ||
217 | 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 | ||
218 | 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 | ||
219 | 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 | ||
220 | 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 | ||
221 | {{/code}} | ||
222 | ))) | ||
223 | |||
224 | * Add new methods to the Icon Set Module((( | ||
225 | {{code language="none"}} | ||
226 | org.xwiki.icon.IconManager: Method 'public java.util.List getIconNames()' has been added to an interface | ||
227 | org.xwiki.icon.IconManager: Method 'public java.util.List getIconNames(java.lang.String)' has been added to an interface | ||
228 | org.xwiki.icon.IconSetManager: Method 'public java.util.List getIconSetNames()' has been added to an interface | ||
229 | {{/code}} | ||
230 | ))) | ||
231 | |||
232 | * LESS refactoring.((( | ||
233 | {{code language="none"}} | ||
234 | org.xwiki.lesscss.LessCompilerScriptService: Method 'public boolean clearCacheFromFileSystemSkin(java.lang.String)' has been removed | ||
235 | org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.ColorTheme getColorThemeFromSkinFile(java.lang.String)' has been changed to org.xwiki.lesscss.colortheme.ColorTheme | ||
236 | org.xwiki.lesscss.LessCompilerScriptService: Return type of method 'public org.xwiki.lesscss.ColorTheme getColorThemeFromSkinFile(java.lang.String, java.lang.String)' has been changed to org.xwiki.lesscss.colortheme.ColorTheme | ||
237 | org.xwiki.lesscss.ColorTheme: Class org.xwiki.lesscss.ColorTheme removed | ||
238 | org.xwiki.lesscss.ColorThemeCache: Class org.xwiki.lesscss.ColorThemeCache removed | ||
239 | org.xwiki.lesscss.LESSCache: Class org.xwiki.lesscss.LESSCache removed | ||
240 | org.xwiki.lesscss.LESSColorThemeConverter: Class org.xwiki.lesscss.LESSColorThemeConverter removed | ||
241 | org.xwiki.lesscss.LESSCompiler: Class org.xwiki.lesscss.LESSCompiler removed | ||
242 | org.xwiki.lesscss.LESSCompilerException: Class org.xwiki.lesscss.LESSCompilerException removed | ||
243 | org.xwiki.lesscss.LESSSkinFileCache: Class org.xwiki.lesscss.LESSSkinFileCache removed | ||
244 | org.xwiki.lesscss.LESSSkinFileCompiler: Class org.xwiki.lesscss.LESSSkinFileCompiler removed | ||
245 | {{/code}} | ||
246 | ))) |