Wiki source code of Release Notes for XWiki 6.1 RC 1
Last modified by Thomas Mortagne on 2017/03/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 introduce new script APIs related to logging, security, rendering and continue the work on new Flamingo skin. | ||
8 | |||
9 | = New and Noteworthy (since XWiki 6.1 milestone 2) = | ||
10 | |||
11 | [[Full list of issues fixed and Dashboard for 6.1>>https://jira.xwiki.org/secure/Dashboard.jspa?selectPageId=12290]]. | ||
12 | |||
13 | == Flamingo Skin == | ||
14 | |||
15 | * The preview action has been implemented:((( | ||
16 | {{image reference="preview.png" width="60%"/}} | ||
17 | ))) | ||
18 | * The user's avatar is now displayed in the main menu:((( | ||
19 | {{image reference="navbar.png" width="60%"/}} | ||
20 | ))) | ||
21 | * 'Share by email' menu entry is moved from 'Page' submenu to 'More actions' submenu:((( | ||
22 | {{image reference="moreActions.png"/}} | ||
23 | ))) | ||
24 | * Buttons have now gradients:((( | ||
25 | {{image reference="gradients.png"/}} | ||
26 | ))) | ||
27 | * Annotations are back!((( | ||
28 | {{image reference="flamingo-annotations.png" width="60%"/}} | ||
29 | ))) | ||
30 | * A lot of polishing have been made too, in order to have a skin usable in production. | ||
31 | |||
32 | 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.1-rc-1%22&tempMax=1000]] fixed in this release. | ||
33 | |||
34 | = For Developers = | ||
35 | |||
36 | == Log from a script == | ||
37 | |||
38 | A new API to get a SLF4J Logger has been added to the ##logging## script service. | ||
39 | |||
40 | {{code language="velocity"}} | ||
41 | $services.logging.getLogger('My script').info('Hello {}', 'world') | ||
42 | {{/code}} | ||
43 | |||
44 | == New contextual authorization manager role == | ||
45 | |||
46 | A new role is now available to ease the replacement of the old Right Service (com.xpn.xwiki.user.api.XWikiRightService). | ||
47 | Compared to the old service, the component does not manage authentication which should have been ensured previously if needed. (No redirection to login is ever done) | ||
48 | The new component has a similar interface to the AuthorizationManager, but it take care of all external context aspects, like the currently executed macro block, the rendering context restrictions, the dropping of rights, etc... | ||
49 | This new role should be used from now on by any component that needs to check rights for the current user, in the current context. | ||
50 | |||
51 | == New security authorization script service == | ||
52 | |||
53 | A new script service is now available to access the default AuthorizationManager and the ContextualAuthorizationManager. | ||
54 | |||
55 | Here is some sample: | ||
56 | |||
57 | {{code language="velocity"}} | ||
58 | #if ($services.security.authorization.hasAccess("edit")) | ||
59 | ... show some UI that require edit access on the current document by the current user ... | ||
60 | #end | ||
61 | #if ($services.security.authorization.hasAccess("edit", "xwiki:Sandbox.TestPage1")) | ||
62 | ... show some UI that require edit access on Sandbox.TestPage1 document by the current user ... | ||
63 | #end | ||
64 | #if ($services.security.authorization.hasAccess("edit", "xwiki:XWiki.User1", "xwiki:Sandbox.TestPage1")) | ||
65 | ... show some UI that require edit access on Sandbox.TestPage1 document by XWiki.User1 ... | ||
66 | #end | ||
67 | {{/code}} | ||
68 | |||
69 | {{code language="velocity"}} | ||
70 | $services.security.authorization.checkAccess("edit") | ||
71 | ... do some task that require edit access ... | ||
72 | {{/code}} | ||
73 | |||
74 | In this second sample, the macro will fail with an AccessDeniedException if the right is not allowed. | ||
75 | |||
76 | == Access to BlockMatchers from velocity scripts == | ||
77 | |||
78 | To be able to use the ##Block.getBlocks(BlockMatcher, Block.Axes)## method on the rendering blocks in the documents XDOM from velocity, a converter has been introduced that maps string expressions to BlockMatcher objects. The current implementation only supports mapping to ClassBlockMatchers, and allows to get all blocks of a given type from the XDOM. | ||
79 | |||
80 | {{code language="velocity"}} | ||
81 | #foreach($headerBlock in $doc.getDocument().getXDOM().getBlocks("class:HeaderBlock", "DESCENDANT")) | ||
82 | ... do something with the header block ... | ||
83 | {{/code}} | ||
84 | |||
85 | == Upgrades == | ||
86 | |||
87 | The following dependencies have been upgraded: | ||
88 | |||
89 | * [[commons-collections 4.0>>https://jira.xwiki.org/browse/XCOMMONS-605]] | ||
90 | * [[httpclient 4.3.4>>https://jira.xwiki.org/browse/XCOMMONS-606]] | ||
91 | * [[commons-beanutils 1.9.2>>https://jira.xwiki.org/browse/XCOMMONS-607]] | ||
92 | * [[reflections 0.9.9-RC2>>https://jira.xwiki.org/browse/XCOMMONS-608]] | ||
93 | |||
94 | == Miscellaneous == | ||
95 | |||
96 | * The [[Mail Sender API>>extensions:Extension.Mail Sender API]] now allows to send Mails from a Template. This is achieved with 2 calls: | ||
97 | ** One for setting the Subject from the Template. The following will generate a ##MimeMessage## with the subject pre-filled. The value will be that of the ##subject## xproperty from an ##XWiki.Mail## xobject in the Document pointed to by the passed ##documentReference##:((( | ||
98 | {{code language="none"}} | ||
99 | #set ($message = $services.mailsender.createMessage("template", documentReference, parameters)) | ||
100 | {{/code}} | ||
101 | ))) | ||
102 | ** One for setting the Body Part content from the Template:((( | ||
103 | {{code language="none"}} | ||
104 | $message.addPart("xwiki/template", $documentReference, {"velocityVariables" : { "var1" : "value1" }}) | ||
105 | $message.addPart("xwiki/template", $documentReference, {"velocityVariables" : { "var1" : "value1" }, "attachments" : $attachments}) | ||
106 | {{/code}} | ||
107 | ))) | ||
108 | |||
109 | = Translations = | ||
110 | |||
111 | The following translations have been updated: | ||
112 | |||
113 | {{language codes="da, de, fr"/}} | ||
114 | |||
115 | = Tested Browsers & Databases = | ||
116 | |||
117 | {{include reference="TestReports.ManualTestReportXWiki61RC1Summary"/}} | ||
118 | |||
119 | = Known issues = | ||
120 | |||
121 | * [[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]] | ||
122 | |||
123 | = Backward Compatibility and Migration Notes = | ||
124 | |||
125 | == General Notes == | ||
126 | |||
127 | 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. | ||
128 | |||
129 | == API Breakages == | ||
130 | |||
131 | The following APIs were modified since XWiki 6.0: | ||
132 | |||
133 | * Young APIs | ||
134 | |||
135 | {{code language="none"}} | ||
136 | org.xwiki.activeinstalls.server.DataManager: Method 'public com.google.gson.JsonObject countInstalls(java.lang.String, java.lang.String, java.util.Map)' has been added to an interface | ||
137 | org.xwiki.activeinstalls.server.DataManager: Method 'public long getInstallCount(java.lang.String)' has been removed | ||
138 | org.xwiki.activeinstalls.server.DataManager: Method 'public com.google.gson.JsonObject searchInstalls(java.lang.String, java.lang.String, java.util.Map)' has been added to an interface | ||
139 | org.xwiki.activeinstalls.server.script.ActiveInstallsScriptService: Method 'public long getInstallCount(java.lang.String)' has been removed | ||
140 | {{/code}} | ||
141 | |||
142 | {{code language="none"}} | ||
143 | org.xwiki.crypto.store.CertificateStore: Class org.xwiki.crypto.store.CertificateStore removed | ||
144 | org.xwiki.crypto.store.CertificateStoreException: Class org.xwiki.crypto.store.CertificateStoreException removed | ||
145 | org.xwiki.crypto.store.KeyStore: Class org.xwiki.crypto.store.KeyStore removed | ||
146 | org.xwiki.crypto.store.KeyStoreException: Class org.xwiki.crypto.store.KeyStoreException removed | ||
147 | {{/code}} | ||
148 | |||
149 | * Not supposed to be public | ||
150 | |||
151 | {{code language="none"}} | ||
152 | com.xpn.xwiki.store.XWikiHibernateBaseStore: In method 'protected void createHibernateSequenceIfRequired(java.lang.String, org.hibernate.Session)' the number of arguments has changed | ||
153 | com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Removed org.xwiki.observation.EventListener from the set of implemented interfaces | ||
154 | com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public java.util.List getEvents()' has been removed | ||
155 | com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public java.lang.String getName()' has been removed | ||
156 | com.xpn.xwiki.render.XWikiMacrosMappingRenderer: Method 'public void onEvent(org.xwiki.observation.event.Event, java.lang.Object, java.lang.Object)' has been removed | ||
157 | {{/code}} |