<
From version < 14.1 >
edited by Guillaume Delhumeau
on 2015/09/23
To version < 15.1 >
edited by Guillaume Delhumeau
on 2015/09/23
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -333,9 +333,110 @@
333 333  
334 334  The difference with default provider is that the readonly one won't try to create a new XWikiContext and will return null if it can't find any. It's been introduce for some low level components that were used during XWikiContext creation but in general it should be used by any component that only search for some XWikiContext property that might be null even in a valid XWikiContext.
335 335  
336 +== New Space/XWikiSpace table ==
337 +
338 +A [[new table dedicated to Spaces has been introduced>>platform:DevGuide.DatabaseSchema]], in order to have performant and scalable Space-related queries (like supporting getting paginated Space which is useful for the Document Tree macro for example).
339 +
340 +== Queries improvement ==
341 +
342 +=== Allow executing complete SELECT queries ===
343 +
344 +In HQL and XWQL it's now possible to execute full ##SELECT## queries without Programming Right as long as you follow some rules currently defined in ##com.xpn.xwiki.internal.store.hibernate.query.HqlQueryUtils##, which contains a list of the database field allowed in the SELECT clause. Namely:
345 +
346 +* For the ##Document##/##XWikiDocument## table: ##fullName##, ##name##, ##space##, ##language##, ##defaultLanguage##, ##translation##, ##hidden##
347 +* For the ##Space##/##XWikiSpace## table: ##reference##, ##name##, ##parent##, ##hidden##
348 +
349 +This is also true for the Named Queries located in the ##queries.hbm.xml## file.
350 +
351 +=== New Secure Query ===
352 +
353 +The right to execute or not some Query is now controlled by each ##org.xwiki.query.QueryExecutor##.
354 +
355 +Anyone can ask the executor to check or ignore Right through the new ##org.xwiki.query.SecureQuery## extending ##org.xwiki.query.Query##:
356 +
357 +* ##checkCurrentAuthor()##: indicate if the current author right should be checked
358 +* ##checkCurrentUser()##: indicate if the result should be filtered based on current user Right (only implemented by SOLR right now)
359 +
360 +== JS API Improvements ==
361 +
362 +* It's now possible to create a Nested Spaces Reference using XWiki's Javascript API. For example:(((
363 +{{code language="javascript"}}
364 +// Construct a Nested Space reference
365 +var reference = new XWiki.SpaceReference('wiki', ['space1', 'space2']);
366 +expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2');
367 +reference = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
368 +expect(XWiki.Model.serialize(reference)).toEqual('wiki:space1.space2.page');
369 +// Construct a non-Nested Space reference
370 +reference = new XWiki.SpaceReference('wiki', 'space');
371 +expect(XWiki.Model.serialize(reference)).toEqual('wiki:space');
372 +// Try passing non-valid space parameters
373 +expect(function() {new XWiki.SpaceReference('wiki', [])}).toThrow('Missing mandatory space name or invalid type for: []');
374 +expect(function() {new XWiki.SpaceReference('wiki', 12)}).toThrow('Missing mandatory space name or invalid type for: [12]');
375 +{{/code}}
376 +)))
377 +* A new ##XWiki.EntityReference.equals()## method has been added. For example:(((
378 +{{code language="javascript"}}
379 +var reference1 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
380 +var reference2 = new XWiki.DocumentReference('wiki', ['space1', 'space2'], 'page');
381 +var reference3 = new XWiki.DocumentReference('wiki2', ['space1', 'space2'], 'page');
382 +expect(reference1.equals(reference2)).toBe(true);
383 +expect(reference1.equals(reference3)).toBe(false);
384 +{{/code}}
385 +)))
386 +* A new ##XWiki.EntityReference.fromJSONObject(obejct)## has been added to create a Javascript ##XWiki.EntityReference## from a Java ##EntityReference## directly serialized as JSON:(((
387 +{{code language="javascript"}}
388 +var reference = XWiki.EntityReference.fromJSONObject(jsonText.evalJSON());
389 +{{/code}}
390 +)))
391 +* A new ##XWiki.EntityReferenceTree## JS class has been added, which partially mimics the Java ##EntityReferenceTree## Class. It's still missing features though as it was introduced mostly to make it easier to manipulate a serialized Java ##EntityReferenceTree##.
392 +
393 +== Updated Document Tree Macro ==
394 +
395 +The [[Document Tree Macro>>extensions:Extension.Document Tree Macro]] now supports Nested Documents and Nested Spaces modes. Specifically, the following changes have been made:
396 +
397 +* removed the ##showSpaceAsDocument## parameter (was introduced recently in 7.2M1)
398 +* deprecated the ##showChildDocuments## parameter
399 +* added the ##hierarchyMode## parameter with two supported values: ##reference## (default) and ##parentchild##
400 +
401 +As a result, you can use the document tree macro like this:
402 +
403 +* Nested Document Tree(((
404 +{{code language="none"}}
405 +{{documentTree/}}
406 +{{/code}}
407 +)))
408 +* Nested Space + Page Tree(((
409 +{{code language="none"}}
410 +{{documentTree showSpaces="true" /}}
411 +{{/code}}
412 +)))
413 +* Parent-Child Document Tree(((
414 +{{code language="none"}}
415 +{{documentTree hierarchyMode="parentchild" /}}
416 +{{/code}}
417 +)))
418 +* Old Document Index Tree (i.e. Parent-Child mixed with space grouping)(((
419 +{{code language="none"}}
420 +{{documentTree hierarchyMode="parentchild" showSpaces="true" /}}
421 +{{/code}}
422 +)))
423 +
424 +== Reference Scripting API for Nested Spaces ==
425 +
426 +The Script API for Entity References has been updated with new APIs to support creating Nested Spaces references. For example:
427 +
428 +{{code language="none"}}
429 +{{velocity}}
430 +$services.model.createDocumentReference("wiki", ["space1", "space2"], "page")
431 +$services.model.createDocumentReference("wiki", ["space1", "space2"], "page", "default")
432 +$services.model.createSpaceReference(["space1", "space2"], $services.model.createWikiReference("wiki"))
433 +{{/velocity}}
434 +{{/code}}
435 +
436 +
336 336  == Deprecated and Retired projects ==
337 337  
338 -<description of deprecated and retired projects>
439 +* The [[OSCache-based Cache Extension>>extensions:Extension.Cache OSCache]] has been [[moved to ##xwiki-contrib##>>https://github.com/xwiki-contrib/xwiki-platform-cache-oscache]] since we've been using the Infinispan implementation for a while now and the XWiki Core developers don't intend to continue supporting the OSCache-based one (it can be maintained by the Community, by whoever's interested in supporting it).
339 339  
340 340  == Upgrades ==
341 341  
... ... @@ -349,7 +349,11 @@
349 349  * [[Infinispan 7.2.3>>http://jira.xwiki.org/browse/XWIKI-12227]]
350 350  * [[HSQLDB 2.3.3>>http://jira.xwiki.org/browse/XE-1491]]
351 351  * [[JGroups 3.6.4>>http://jira.xwiki.org/browse/XWIKI-12215]]
352 -* [[Jackson 2.5.4>>http://jira.xwiki.org/browse/XCOMMONS-828]]
453 +* [[Groovy 2.4.4>>http://jira.xwiki.org/browse/XCOMMONS-831]]
454 +* [[Tika 1.9>>http://jira.xwiki.org/browse/XWIKI-12274]]
455 +* [[JRuby 1.7.21>>http://jira.xwiki.org/browse/XWIKI-12344]]
456 +* [[Jackson 2.6.0>>http://jira.xwiki.org/browse/XCOMMONS-833]]
457 +* [[Hibernate Validator 4.3.2>>http://jira.xwiki.org/browse/XWIKI-12365]]
353 353  
354 354  == Miscellaneous ==
355 355  
... ... @@ -362,7 +362,28 @@
362 362  * A new DocumentModelBridge.getContentAuthorReference() method has been added to allow accessing the content author of a document without depending on oldcore.
363 363  * Deprecate XWiki.parseContent(...) since it is was misleading and outdated. Its documentation mentioned that the passed content is parsed as velocity code, but it was actually doing much more than that and had some unwanted side-effect. Instead, use the parse/renderer that is specific to the type of content you have. See more details in [[XWIKI-12299>>http://jira.xwiki.org/browse/XWIKI-12299]].
364 364  * A new script service is available to retrieve the status of a specified job or the status of the currently running job from a specified group. See the [[Job Module>>extensions:Extension.Job Module||anchor="HScriptService"]] documentation for details.
470 +* Custom displayers are now executed with the Rights of the user who wrote them (i.e. author of the class document or content author of the displayer document), and not the Rights of the user who wrote the script that uses them (i.e. current context document's content author). See [[XWIKI-12306>>http://jira.xwiki.org/browse/XWIKI-12306]] for more details.
471 +* In the [[Active Install Extension>>extensions:Extension.Active Installs Server Application]], a new Velocity Macro has been introduced to compute the number of Active Installs having a specific Extension. Example usage:(((
472 +{{code language="none"}}
473 +{{include reference="ActiveInstalls.ExtensionCount"/}}
365 365  
475 +{{velocity}}
476 + #set ($extensionIds = [
477 + 'org.xwiki.contrib:xwiki-totem-application',
478 + 'jsimard:event-reporter-application',
479 + 'mouhb:likeapplication'
480 + ])
481 + |=Extension Id|=Count
482 + #foreach($extensionId in $extensionIds)
483 + #countActiveInstallsUsingExtension($extensionId $count)
484 + |$extensionId|$count
485 + #end
486 +{{/velocity}}
487 +{{/code}}
488 +)))
489 +* Better support of non-DOCUMENT ##EntityReferences## in ##DocumentReferenceConverter##. It now behaves like ##XWiki#getDocument(EntityReference)##
490 +* The Copy/Rename/Delete UI actions are now using the [[Refactoring Module's Script Services>>extensions:Extension.Refactoring Module]].
491 +
366 366  = Translations =
367 367  
368 368  The following translations have been updated:

Get Connected